public async Task StartTimerAsync(SocketGuildUser user, Discord.IRole role) { if (!Users.ContainsKey(user.Guild.Id)) { Users.Add(user.Guild.Id, user); } if (!Roles.ContainsKey(user.Guild.Id)) { Roles.Add(user.Guild.Id, role); } await user.RemoveRoleAsync(role); SetupTimer(user.Guild.Id); Timers[user.Guild.Id].Start(); }
public async Task AddNotification() { var guildUser = Context.User as SocketGuildUser; var userhasrole = guildUser.Roles.FirstOrDefault(x => x.Name == "notify"); //if they already have the role assigned if (userhasrole != null) { await ReplyAsync($"{guildUser.Mention} you already have notifications active!"); return; } var guildrole = guildUser.Guild.Roles.FirstOrDefault(x => x.Name == "notify"); Discord.IRole role = null; SocketUserMessage outmessage = null; //if role doesn't exist if (guildrole == null) { try { //try to create role and assign it role = await Context.Guild.CreateRoleAsync("notify", color : Discord.Color.DarkOrange); await ReplyAsync("Created a **notify** role as one did not already exist"); } catch (Exception e) { await ReplyAsync("Could not create a role to notify, please check permissions or manually add"); return; } } Console.WriteLine("adding role to user"); await guildUser.AddRoleAsync(role); Console.WriteLine("Added notify role to user"); outmessage = await ReplyAsync($"{guildUser.Mention} you will now be notified for upcoming streams!") as SocketUserMessage; await Context.Message.DeleteAsync(); }
public async Task DeleteNotification() { //check the user has the role var guildUser = Context.User as SocketGuildUser; var guildrole = guildUser.Roles.FirstOrDefault(x => x.Name == "notify"); SocketUserMessage outmessage = null; Discord.IRole role = guildrole; if (guildrole == null) { outmessage = await ReplyAsync("You don't have the notify role, wyd fam") as SocketUserMessage; } else { await guildUser.RemoveRoleAsync(role); outmessage = await ReplyAsync($"{guildUser.Mention} you will no longer be notified for upcoming streams!") as SocketUserMessage; } await Context.Message.DeleteAsync(); }
public Role(Discord.IRole discordRole) { Id = discordRole.Id; Name = discordRole.Name; }
public async Task MuteAsync(SocketGuildUser user, Discord.IRole role) { var protectionData = _protectionDatas.FirstOrDefault(x => x.GuildID == user.Guild.Id && x.UserID == user.Id); await protectionData.StartTimerAsync(user, role); }