static void Main(string[] args) { if (!File.Exists("settings.json")) { File.Create("settings.json").Close(); } settings = JsonConvert.DeserializeObject <SettingsJSON>(File.ReadAllText("settings.json")); new Program().MainAsync().GetAwaiter().GetResult(); }
private async Task MessageReceivedAsync(SocketMessage message) { if (message.Author.Id == _client.CurrentUser.Id) { return; } if (message.Channel is SocketDMChannel) { if (message.Content.Split(' ').Length == 2) { settings = JsonConvert.DeserializeObject <SettingsJSON>(File.ReadAllText("settings.json")); using (var request = new xNet.HttpRequest()) { try { string[] data = message.Content.Split(' '); request.UserAgent = Http.ChromeUserAgent(); request.Cookies = new CookieDictionary(); request.AddHeader("XF-Api-Key", settings.xfToken); var response = request.Post(settings.xfUri + "/api/auth", "login="******"&password="******"application/x-www-form-urlencoded").ToString(); XenforoJSON response_data = JsonConvert.DeserializeObject <XenforoJSON>(response); if (response.Contains("success") && response_data != null && response_data.success != null && response_data.User != null) { int max_group = response_data.User.user_group_id; foreach (int group in (int[])response_data.User.secondary_group_ids) { int place = Array.IndexOf(settings.groupsHierarchy, group); max_group = max_group > place ? max_group : place; } var user = message.Author as SocketGuildUser; SocketRole role = user.Guild.GetRole(settings.groups[max_group].dsRoleId); // TODO: можете также работать с данными полученного класса, например, для выдачи роли стаффа или добавления в какую-нибудь рассылку await user.AddRoleAsync(role); await message.Author.SendMessageAsync("Успешно"); } else { await message.Author.SendMessageAsync("Неверный логин и/или пароль"); } } catch (Exception ex) { await message.Author.SendMessageAsync("Во время авторизации возникла ошибка: " + ex.Message); } } } } else if (message.Content == "!auth") { await message.Author.SendMessageAsync("Для авторизации в системе и получения соответствущей вам роли, отправьте в текущий диалог свой логин и пароль от форума MYPASTE.COM в формате log{пробел}pass"); } }