private GuildData CreateNewGuildData(ulong guildId, bool setDefaults) { var data = new GuildData(config, guildId, setDefaults); data.CoinsChanged += GuildDataCoinsChanged; data.SettingsChanged += GuildDataSettingsChanged; return(data); }
public static bool RoleHasPermission(this GuildData data, SocketRole role, Permissions permission) { if (permission == Permissions.None) { return(true); } if (role.Permissions.Administrator) { return(true); } return((data.GetPermissions(role) & permission) == permission); }
public static bool UserHasPermission(this GuildData data, SocketUser user, Permissions permission) { if (permission == Permissions.None) { return(true); } if (user is SocketGuildUser guildUser) { foreach (var role in guildUser.Roles) { if (data.RoleHasPermission(role, permission)) { return(true); } } } return((data.GetPermissions(user) & permission) == permission); }
private void GuildDataCoinsChanged(GuildData guild, ulong userId) { ScheduleSaveCoins(); }
private void GuildDataPermissionsChanged(GuildData guild, ulong userId) { ScheduleSavePermissions(); }
private void GuildDataSettingsChanged(GuildData guild) { ScheduleSaveSettings(); }
public static void RemovePermission(this GuildData data, SocketEntity <ulong> entity, Permissions permission) { data.SetPermissions(entity, data.GetPermissions(entity) & (~permission)); }
public static void AddPermission(this GuildData data, SocketEntity <ulong> entity, Permissions permission) { data.SetPermissions(entity, data.GetPermissions(entity) | permission); }