private async Task Client_GuildUpdated(IDiscordGuild arg1, IDiscordGuild arg2) { if (arg1.Name != arg2.Name) { using (var scope = MikiApp.Instance.Services.CreateScope()) { var context = scope.ServiceProvider.GetService <MikiDbContext>(); GuildUser g = await context.GuildUsers.FindAsync(arg1.Id.ToDbLong()); g.Name = arg2.Name; await context.SaveChangesAsync(); } } }
public static async Task <IDiscordGuildUser> FindUserByMentionAsync(IDiscordGuild guild, string id) { if (!Mention.TryParse(id, out var mention)) { throw new InvalidEntityException("user"); } if (mention.Type == MentionType.USER || mention.Type == MentionType.USER_NICKNAME) { return(await guild.GetMemberAsync(mention.Id)); } throw new InvalidEntityException("user"); }
private async Task Client_JoinedGuild(IDiscordGuild arg) { IDiscordChannel defaultChannel = await arg.GetDefaultChannelAsync(); if (defaultChannel != null) { using (var context = new MikiContext()) { LocaleInstance i = await Locale.GetLanguageInstanceAsync(context, defaultChannel.Id); (defaultChannel as IDiscordTextChannel).QueueMessage(i.GetString("miki_join_message")); } } //List<string> allArgs = new List<string>(); //List<object> allParams = new List<object>(); //List<object> allExpParams = new List<object>(); //try //{ // for (int i = 0; i < arg.Members.Count; i++) // { // allArgs.Add($"(@p{i * 2}, @p{i * 2 + 1})"); // allParams.Add(arg.Members.ElementAt(i).Id.ToDbLong()); // allParams.Add(arg.Members.ElementAt(i).Username); // allExpParams.Add(arg.Id.ToDbLong()); // allExpParams.Add(arg.Members.ElementAt(i).Id.ToDbLong()); // } // using (var context = new MikiContext()) // { // await context.Database.ExecuteSqlCommandAsync( // $"INSERT INTO dbo.\"Users\" (\"Id\", \"Name\") VALUES {string.Join(",", allArgs)} ON CONFLICT DO NOTHING", allParams); // await context.Database.ExecuteSqlCommandAsync( // $"INSERT INTO dbo.\"LocalExperience\" (\"ServerId\", \"UserId\") VALUES {string.Join(",", allArgs)} ON CONFLICT DO NOTHING", allExpParams); // await context.SaveChangesAsync(); // } //} //catch (Exception e) //{ // Log.Error(e.ToString()); //} DogStatsd.Increment("guilds.joined"); }
public async Task <GuildPermission> GetPermissionsAsync(IDiscordGuildUser user) { IDiscordGuild guild = await GetGuildAsync(); GuildPermission permissions = await guild.GetPermissionsAsync(user); if (permissions.HasFlag(GuildPermission.Administrator)) { return(GuildPermission.All); } PermissionOverwrite overwriteEveryone = _packet.PermissionOverwrites .FirstOrDefault(x => x.Id == 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 = _packet.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 = _packet.PermissionOverwrites.FirstOrDefault(x => x.Id == user.Id); if (userOverwrite != null) { permissions &= ~userOverwrite.DeniedPermissions; permissions |= userOverwrite.AllowedPermissions; } return(permissions); }
private async Task Client_JoinedGuild(IDiscordGuild arg) { using (var scope = MikiApp.Instance.Services.CreateScope()) { var context = scope.ServiceProvider.GetService <DbContext>(); IDiscordChannel defaultChannel = await arg.GetDefaultChannelAsync(); if (defaultChannel != null) { LocaleInstance i = await Locale.GetLanguageInstanceAsync(context, defaultChannel.Id); (defaultChannel as IDiscordTextChannel).QueueMessage(i.GetString("miki_join_message")); } List <string> allArgs = new List <string>(); List <object> allParams = new List <object>(); List <object> allExpParams = new List <object>(); try { var members = await arg.GetMembersAsync(); for (int i = 0; i < members.Length; i++) { allArgs.Add($"(@p{i * 2}, @p{i * 2 + 1})"); allParams.Add(members.ElementAt(i).Id.ToDbLong()); allParams.Add(members.ElementAt(i).Username); allExpParams.Add(arg.Id.ToDbLong()); allExpParams.Add(members.ElementAt(i).Id.ToDbLong()); } await context.Database.ExecuteSqlCommandAsync( $"INSERT INTO dbo.\"Users\" (\"Id\", \"Name\") VALUES {string.Join(",", allArgs)} ON CONFLICT DO NOTHING", allParams); await context.Database.ExecuteSqlCommandAsync( $"INSERT INTO dbo.\"LocalExperience\" (\"ServerId\", \"UserId\") VALUES {string.Join(",", allArgs)} ON CONFLICT DO NOTHING", allExpParams); await context.SaveChangesAsync(); } catch (Exception e) { Log.Error(e.ToString()); } } }
public async Task <IDiscordUser> GetUserAsync(IDiscordGuild guild) { if (IsMention) { return(await guild.GetUserAsync(ulong.Parse(Argument .TrimStart('<') .TrimStart('@') .TrimStart('!') .TrimEnd('>')))); } else if (ulong.TryParse(Argument, out ulong id)) { return(await guild.GetUserAsync(id)); } return(await guild.GetUserAsync(Argument)); }
public static async Task Create(IDiscordGuild g) { using (var context = new MikiContext()) { context.GuildUsers.Add( new GuildUser() { Id = g.Id.ToDbLong(), Name = g.Name, Experience = 0, RivalId = 0, UserCount = g.UserCount }); await context.SaveChangesAsync(); } }
private async Task SendDiscordPW(Bot bot, IDiscordGuild g) { var shard = bot.GetShardFor(g); var client = new RestClient("https://bots.discord.pw/api/bots/160105994217586689/stats"); var guildCount = new GuildCountObject() { ShardId = shard.ShardId, ShardCount = bot.Information.ShardCount, GuildCount = shard.Guilds.Count }; string json = JsonConvert.SerializeObject(guildCount); await client .SetAuthorization(Global.Config.DiscordPwKey) .PostAsync <string>("", json); }
public async Task ReasonAsync(IDiscordGuild guild, MessageContext context, int id, [Remaining] string reason) { var warning = await _warningRepository.GetAsync(id); if (warning == null) { context.Response.AddError(_localizer["Moderation.Warn.NotFound"].WithToken("id", id)); return; } var user = await guild.GetMemberAsync(warning.UserId); warning.Reason = reason; await _warningRepository.UpdateAsync(warning); await _consoleService.UpdateWarningMessageAsync(context, warning, user, context.User); }
private async Task Client_JoinedGuild(IDiscordGuild arg) { //IDiscordChannel defaultChannel = await arg.GetDefaultChannelAsync(); //if (defaultChannel != null) //{ // defaultChannel.QueueMessageAsync(Locale.GetString(defaultChannel.Id, "miki_join_message")); //} List <string> allArgs = new List <string>(); List <object> allParams = new List <object>(); List <object> allExpParams = new List <object>(); //try //{ // var users = await arg.GetUsersAsync(); // for (int i = 0; i < users.Count; i++) // { // allArgs.Add($"(@p{i * 2}, @p{i * 2 + 1})"); // allParams.Add(users.ElementAt(i).Id.ToDbLong()); // allParams.Add(users.ElementAt(i).Username); // allExpParams.Add((await users.ElementAt(i).GetGuildAsync()).Id.ToDbLong()); // allExpParams.Add(users.ElementAt(i).Id.ToDbLong()); // } // using (var context = new MikiContext()) // { // await context.Database.ExecuteSqlCommandAsync( // $"INSERT INTO dbo.\"Users\" (\"Id\", \"Name\") VALUES {string.Join(",", allArgs)} ON CONFLICT DO NOTHING", allParams); // await context.Database.ExecuteSqlCommandAsync( // $"INSERT INTO dbo.\"LocalExperience\" (\"ServerId\", \"UserId\") VALUES {string.Join(",", allArgs)} ON CONFLICT DO NOTHING", allExpParams); // await context.SaveChangesAsync(); // } //} //catch(Exception e) //{ // Log.Error(e.ToString()); //} DogStatsd.Increment("guilds.joined"); // DogStatsd.Set("guilds", Bot.Instance.Client.Guilds.Count, Bot.Instance.Client.Guilds.Count); }
public static async Task Create(IDiscordGuild g) { using (var context = new MikiContext()) { context.GuildUsers.Add( new GuildUser() { Id = g.Id.ToDbLong(), Name = g.Name, Experience = 0, RivalId = 0, UserCount = g.UserCount, MinimalExperienceToGetRewards = 100, VisibleOnLeaderboards = true }); await context.SaveChangesAsync(); } }
public static async Task <GuildUser> CreateAsync(MikiContext context, IDiscordGuild guild) { long id = guild.Id.ToDbLong(); int userCount = (await guild.GetUsersAsync()).Count; int value = await context.LocalExperience .Where(x => x.ServerId == id) .SumAsync(x => x.Experience); var guildUser = new GuildUser(); guildUser.Name = guild.Name; guildUser.Id = id; guildUser.Experience = value; guildUser.UserCount = userCount; guildUser.LastRivalRenewed = Utils.MinDbValue; guildUser.MinimalExperienceToGetRewards = 100; GuildUser outputGuildUser = context.GuildUsers.Add(guildUser).Entity; await context.SaveChangesAsync(); return(outputGuildUser); }
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 ulong GetBotId(IDiscordGuild guild) => throw new NotImplementedException();
public virtual Task SetIdentifierAsync(IDiscordGuild guild, string defaultPrefix, string newPrefix) => throw new NotImplementedException();
public async Task SetConsoleChannelAsync(IDiscordGuild guild, MessageContext context) { await _consoleService.SetChannelId(guild.Id, context.Request.ChannelId); context.Response.AddSuccess(_localizer["Moderation.Console.ChannelChanged"]); }
private async Task InternalLeftGuild(IDiscordGuild g) { await OnGuildLeave(g); }
private async Task InternalJoinedGuild(IDiscordGuild g) { await OnGuildJoin(g); }
public GuildUpdateEvent(IDiscordGuild guild) { Guild = guild; }
public Task Unban(IDiscordGuild guild) { throw new NotImplementedException(); }
public virtual Task Ban(IDiscordGuild guild, int amount = 0, string reason = "") { throw new NotImplementedException(); }
public static async Task <IDiscordRole> GetRoleAsync(this LevelRole role, IDiscordGuild guild) { return(await guild.GetRoleAsync((ulong)role.RoleId)); }
public ValueTask OnGuildUpdate(IDiscordGuild guild) { return(_eventManager.CallAsync(new GuildUpdateEvent(guild))); }
public async Task <List <IDiscordRole> > GetRolesByName(IDiscordGuild guild, string roleName) => (await guild.GetRolesAsync()).Where(x => x.Name.ToLower() == roleName.ToLower()).ToList();
public PermissionModule(IPermissionManager permissionManager, IStringLocalizer localizer, IModuleManager moduleManager, IDiscordGuild guild) { _permissionManager = permissionManager; _localizer = localizer; _moduleManager = moduleManager; _guild = guild; }
public GuildAvailableEvent(IDiscordGuild guild) { Guild = guild; }
public ValueTask OnGuildJoin(IDiscordGuild guild) { return(_eventManager.CallAsync(new GuildAvailableEvent(guild))); }
public Task SetEnabledAll(IDiscordGuild guild, bool value) { throw new AddonRunException(); }
private async Task Client_UserJoined(IDiscordGuild arg) { await UpdateGuildUserCountAsync(arg); }
public async Task <List <Tuple <string, IDiscordMessageChannel> > > GetMessage(IDiscordGuild guild, EventMessageType type, IDiscordUser user) { long guildId = guild.Id.ToDbLong(); List <IDiscordMessageChannel> channels = await guild.GetChannels(); List <Tuple <string, IDiscordMessageChannel> > output = new List <Tuple <string, IDiscordMessageChannel> >(); using (var context = new MikiContext()) { foreach (IDiscordMessageChannel c in channels) { EventMessage messageObject = await context.EventMessages.FindAsync(c.Id.ToDbLong(), (int)type); if (messageObject == null) { continue; } if (string.IsNullOrEmpty(messageObject.Message)) { continue; } string modifiedMessage = messageObject.Message; List <IDiscordUser> allUsers = await c.GetUsersAsync(); modifiedMessage = modifiedMessage.Replace("-um", user.Mention); modifiedMessage = modifiedMessage.Replace("-uc", user.Guild.UserCount.ToString()); modifiedMessage = modifiedMessage.Replace("-u", string.IsNullOrEmpty(user.Nickname) ? user.Username : user.Nickname); modifiedMessage = modifiedMessage.Replace("-ru", allUsers[MikiRandom.Next(0, allUsers.Count)].Nickname); modifiedMessage = modifiedMessage.Replace("-now", DateTime.Now.ToShortDateString()); modifiedMessage = modifiedMessage.Replace("-s", user.Guild.Name); modifiedMessage = modifiedMessage.Replace("-om", user.Guild.Owner.Mention); modifiedMessage = modifiedMessage.Replace("-o", string.IsNullOrEmpty(user.Guild.Owner.Nickname) ? user.Guild.Owner.Username : user.Guild.Owner.Nickname); modifiedMessage = modifiedMessage.Replace("-cc", user.Guild.ChannelCount.ToString()); modifiedMessage = modifiedMessage.Replace("-vc", user.Guild.VoiceChannelCount.ToString()); output.Add(new Tuple <string, IDiscordMessageChannel>(modifiedMessage, c)); } return(output); } }