private Task StoreGuildRolesAsync(SocketGuild guild) { IReadOnlyCollection <SocketRole> rolesCollection = guild.Roles; Dictionary <string, SocketRole> guildroles = CreateRoleDictionary(rolesCollection.GetEnumerator(), rolesCollection.Count); Console.Out.WriteLine($"{DateTime.UtcNow.ToString("hh:mm:ss")} [Guild Info Service]: Successfully saved roles for the guild {guild.Name}"); return(Task.Run(() => GuildRoles.Add(guild.Id, guildroles))); }
public GuildRole GetRole(GuildRoles roles, string roleName) { GuildRole role = new GuildRole(); roleName = roleName.ToUpper(); role = roles.Where(x => x.Name.ToUpper() == roleName).FirstOrDefault(); return(role); }
public GuildRoles GetRoles(TokenResponse tokenResponse, string guildId) { GuildRoles roles = new GuildRoles(); using (WebClient client = new WebClient()) { client.Headers.Add(HttpRequestHeader.Authorization, tokenResponse.Type + " " + tokenResponse.AccessToken); try { IDiscordUriBuilder uriBuilder = new DiscordUriBuilder(); string uri = uriBuilder.AddPath(roles.PathUrl.Replace("{guild}", guildId)) .Build(); string response = client.DownloadString(uri); roles = serializer.Deserialize <GuildRoles>(response); } catch (Exception) { } } return(roles); }
private Task ClearGuildRolesAsync(SocketGuild guild) { return(Task.Run(() => GuildRoles.Remove(guild.Id))); }
public override void Patch(Dictionary <string, JsonElement> Data) { //if (!Partial) return; Console.WriteLine($"Patching guild data for {this.Id}"); JsonElement temp; long tempL; #region String values Name = Data["name"].GetString(); Icon = Data["icon"].GetString(); Splash = Data["splash"].GetString(); DiscoverySplash = Data["discovery_splash"].ToString(); Region = Data["region"].ToString(); ArrayEnumerator _Features = Data["features"].EnumerateArray(); Features = new string[Data["features"].GetArrayLength()]; for (int i = 0; i < Features.Length; i++) { _Features.MoveNext(); Features[i] = _Features.Current.GetString(); } #endregion String values #region Integer values AfkTimeout = Data["afk_timeout"].GetInt32(); VerificationLevel = Data["verification_level"].GetInt32(); DefaultNotifications = Data["default_message_notifications"].GetInt32(); ExplicitContentFilter = Data["explicit_content_filter"].GetInt32(); MfaLevel = Data["mfa_level"].GetInt32(); if (Data.TryGetValue("member_count", out temp)) { MemberCount = temp.GetInt32(); } if (Data.TryGetValue("max_presences", out temp)) { MaxPresences = temp.GetInt32(); } if (Data.TryGetValue("max_members", out temp)) { MaxMembers = temp.GetInt32(); } #endregion Integer values #region Long values OwnerId = long.Parse(Data["owner_id"].GetString()); if (Data.TryGetValue("afk_channel_id", out temp) && long.TryParse(temp.GetString(), out tempL)) { AfkChannelId = tempL; } if (Data.TryGetValue("application_id", out temp) && long.TryParse(temp.GetString(), out tempL)) { ApplicationId = tempL; } if (long.TryParse(Data["system_channel_id"].GetString(), out tempL)) { SystemChannelId = tempL; } if (long.TryParse(Data["rules_channel_id"].GetString(), out tempL)) { RulesChannelId = tempL; } if (Data.TryGetValue("widget_channel_id", out temp) && long.TryParse(temp.GetString(), out tempL)) { WidgetChannelId = tempL; } #endregion Long values #region Bool values if (Data.TryGetValue("widget_enabled", out temp)) { WidgetEnabled = temp.GetBoolean(); } if (Data.TryGetValue("large", out temp)) { Large = temp.GetBoolean(); } if (Data.TryGetValue("unavailable", out temp)) { Unavailable = temp.GetBoolean(); } #endregion Bool values if (Data.TryGetValue("joined_at", out temp)) { JoinedAt = DateTime.Parse(temp.GetString()); } if (_Patched) { return; } // TODO: Create role objects Roles = new GuildRoles(this.Client, this); ArrayEnumerator _Roles = Data["roles"].EnumerateArray(); foreach (JsonElement Role in _Roles) { Roles.CreateEntry(Role); } // TODO: Create emoji objects Emojis = new GuildEmojis(this.Client, this); ArrayEnumerator _Emojis = Data["emojis"].EnumerateArray(); foreach (JsonElement Role in _Roles) { Emojis.CreateEntry(Role); } // TODO: AFK channel // TODO: System channel // TODO: Rules channel // TODO: Channels Channels = new GuildChannels(this.Client, this); ArrayEnumerator _Channels = Data["channels"].EnumerateArray(); foreach (JsonElement Channel in _Channels) { Channels.CreateEntry(Channel); } // TODO: Members Members = new GuildMembers(Client, this); ArrayEnumerator _Members = Data["members"].EnumerateArray(); foreach (JsonElement Member in _Members) { //Console.WriteLine(Member); Members.CreateEntry(Member); } // TODO: Presences // TODO: Voice states _Patched = true; }