예제 #1
0
 public static bool HasEmbedPerms(ICommandContext Context, _Guild Guild = null, bool Error = false)
 {
     if (Context.Guild == null)
     {
         return(true);
     }
     _Bot.GuildCache.TryGetValue(Context.Guild.Id, out _CacheItem CI);
     if (CI.Bot == null)
     {
         CI.Bot = Context.Guild.GetCurrentUserAsync().GetAwaiter().GetResult();
     }
     if (CI.Bot.GuildPermissions.EmbedLinks || CI.Bot.GetPermissions(Context.Channel as IGuildChannel).EmbedLinks)
     {
         return(true);
     }
     if (Error)
     {
         string ErrorText = _Config._TransMain.Error_NoEmbedPerms.EN;
         if (Guild != null)
         {
             ErrorText = _Config._TransMain.Error_NoEmbedPerms.Get(Guild);
         }
         _Log.ThrowError(Context, "```python" + Environment.NewLine + $"{ErrorText}```", "No Embed Links Pemr");
     }
     return(false);
 }
예제 #2
0
 public static void NewGuild(ulong ID, out _Guild Guild)
 {
     Guild = new _Guild()
     {
         ID = ID, Servers = new List <_Server>(), Language = _Language.English
     };
     _Config.MCGuilds.Add(ID, Guild);
     Guild.Save();
 }
예제 #3
0
 public static void LoadGuilds()
 {
     foreach (var i in Directory.GetFiles(_Config.BotPath + "Guilds/"))
     {
         using (StreamReader reader = new StreamReader(i))
         {
             JsonSerializer serializer = new JsonSerializer();
             _Guild         Item       = (_Guild)serializer.Deserialize(reader, typeof(_Guild));
             _Config.MCGuilds.Add(Item.ID, Item);
         }
     }
 }
예제 #4
0
 /// <summary>
 /// Set ID to 0 for no guild
 /// </summary>
 public static void GetGuild(IGuild ID, out _Guild Guild)
 {
     Guild = null;
     if (ID != null)
     {
         _Config.MCGuilds.TryGetValue(ID.Id, out Guild);
         if (Guild == null)
         {
             NewGuild(ID.Id, out Guild);
         }
         if (Guild == null)
         {
             _Log.Error($"NO GUILD DATA {ID.Name} | {ID.Id}");
         }
     }
 }