public async Task CallTransactionMadeEventAsync(IDiscordGuildChannel m, User receiver, User giver, int amount) { try { TransactionPacket p = new TransactionPacket(); p.discordChannel = m; p.discordUser = await m.GetUserAsync(receiver.Id.FromDbLong()); if (giver != null) { p.giver = giver; } p.receiver = receiver; p.amount = amount; if (OnTransaction != null) { await OnTransaction?.Invoke(p); } } catch (Exception e) { Log.Warning($"Achievement check failed: {e.ToString()}"); } }
public static GuildPermission GetOverwritePermissions( IDiscordGuildUser user, IDiscordGuildChannel channel, GuildPermission basePermissions) { var permissions = basePermissions; if (permissions.HasFlag(GuildPermission.Administrator)) { return(GuildPermission.All); } if (channel.PermissionOverwrites != null) { PermissionOverwrite overwriteEveryone = channel.PermissionOverwrites .FirstOrDefault(x => x.Id == channel.GuildId); if (overwriteEveryone != null) { permissions &= ~overwriteEveryone.DeniedPermissions; permissions |= overwriteEveryone.AllowedPermissions; } PermissionOverwrite overwrites = new PermissionOverwrite(); if (user.RoleIds != null) { foreach (ulong roleId in user.RoleIds) { PermissionOverwrite roleOverwrites = channel.PermissionOverwrites .FirstOrDefault(x => x.Id == roleId); if (roleOverwrites != null) { overwrites.AllowedPermissions |= roleOverwrites.AllowedPermissions; overwrites.DeniedPermissions &= roleOverwrites.DeniedPermissions; } } } permissions &= ~overwrites.DeniedPermissions; permissions |= overwrites.AllowedPermissions; PermissionOverwrite userOverwrite = channel.PermissionOverwrites .FirstOrDefault(x => x.Id == user.Id); if (userOverwrite != null) { permissions &= ~userOverwrite.DeniedPermissions; permissions |= userOverwrite.AllowedPermissions; } } return(permissions); }
public async Task <string> Print(int currentValue, IDiscordGuild g, IDiscordGuildChannel c) { string output = ""; IDiscordGuildUser u = await g.GetSelfAsync(); if (!(await c.GetPermissionsAsync(u)).HasFlag(GuildPermission.UseExternalEmojis)) { return(""); } int iteration = MaxValue / Width; int currentIteration = iteration; for (int i = 0; i < Width; i++) { output += (currentValue >= currentIteration) ? ValueOn.GetAppropriateSection(0, Width - 1, i) : ValueOff.GetAppropriateSection(0, Width - 1, i); currentIteration += iteration; } return(output); }
public static Task <bool> HasChannelPermissionAsync(this IPermissionManager manager, IDiscordGuildChannel channel, string permissionName) => manager.HasChannelPermissionAsync(channel.Id, permissionName, channel.GuildId);
public static Task <bool> RevokeChannelPermissionAsync(this IPermissionManager manager, IDiscordGuildChannel channel, string permissionName) => manager.SetChannelPermissionAsync(channel.GuildId, channel.Id, permissionName, false);