// NAMIKO JOIN private async Task Client_JoinedGuild(SocketGuild arg) { DateTime now = DateTime.Now; Server server = ServerDb.GetServer(arg.Id) ?? new Server { GuildId = arg.Id, JoinDate = now }; server.LeaveDate = null; server.Prefix = AppSettings.DefaultPrefix; await ServerDb.UpdateServer(server); if (server.JoinDate.Equals(now)) { await BalanceDb.SetToasties(Client.CurrentUser.Id, 1000000, arg.Id); } SocketTextChannel ch = arg.SystemChannel ?? arg.DefaultChannel; try { await ch?.SendMessageAsync("Hi! Please take good care of me!", false, BasicUtil.GuildJoinEmbed(server.Prefix).Build()); } catch { } await WebhookClients.GuildJoinLogChannel.SendMessageAsync($"<:TickYes:577838859107303424> {Client.CurrentUser.Username} joined `{arg.Id}` **{arg.Name}**.\nOwner: `{arg.Owner.Id}` **{arg.Owner}**"); }
private async Task Client_LeftGuild(SocketGuild arg) { if (!GuildLeaveEvent) { return; } var server = ServerDb.GetServer(arg.Id); server.LeaveDate = DateTime.Now; await ServerDb.UpdateServer(server); await WebhookClients.GuildJoinLogChannel.SendMessageAsync($"<:TickNo:577838859077943306> {Client.CurrentUser.Username} left `{arg.Id}` **{arg.Name}**.\nOwner: `{arg.Owner.Id}` **{arg.Owner}**"); }
public async Task SetBotPrefix(string prefix) { if (prefix.Length < 1) { return; } var server = ServerDb.GetServer(Context.Guild.Id); server.Prefix = prefix; await ServerDb.UpdateServer(server); Program.UpdatePrefix(Context.Guild.Id, prefix); await Context.Channel.SendMessageAsync($"My prefix is now `{prefix}`"); }
// USER JOIN private async Task Client_UserJoinedWelcome(SocketGuildUser arg) { if (arg?.Guild?.Id == 417064769309245471) { return; } var server = ServerDb.GetServer(arg.Guild.Id); if (server != null && server.WelcomeChannelId != 0) { var ch = arg.Guild.GetTextChannel(server.WelcomeChannelId); if (ch != null) { await ch.SendMessageAsync(GetWelcomeMessageString(arg)); } } }
public async Task SetWelcomeChannel() { var server = ServerDb.GetServer(Context.Guild.Id); if (server.WelcomeChannelId == Context.Channel.Id) { server.WelcomeChannelId = 0; await ServerDb.UpdateServer(server); await Context.Channel.SendMessageAsync("Welcome channel removed."); return; } server.WelcomeChannelId = Context.Channel.Id; await ServerDb.UpdateServer(server); await Context.Channel.SendMessageAsync("Welcome channel set."); }
private async Task Client_ReactionAdded(Cacheable <IUserMessage, ulong> arg1, Cacheable <IMessageChannel, ulong> arg2, SocketReaction arg3) { if (arg3.MessageId != 700399700196458546) { return; } SocketTextChannel sch = (await arg2.GetOrDownloadAsync()) as SocketTextChannel; var user = sch.Guild.GetUser(arg3.UserId); var role = sch.Guild.GetRole(697234413360119808); if (RoleUtil.HasRole(user, role)) { return; } await user.AddRoleAsync(role); var chid = ServerDb.GetServer(sch.Guild.Id).WelcomeChannelId; var ch = sch.Guild.GetTextChannel(chid); await ch.SendMessageAsync(GetWelcomeMessageString(user)); }
public async Task TeamKick(IUser user, [Remainder] string str = "") { var leader = RoleUtil.GetLeaderRole(Context.Guild, Context.User); if (leader == null) { await Context.Channel.SendMessageAsync("You're not a leader! Getting ahead of yourself eh?~"); return; } var team = TeamDb.TeamByLeader(leader.Id); var userteam = RoleUtil.GetMemberRole(Context.Guild, user); var leaderteam = Context.Guild.GetRole(team.MemberRoleId); if (!userteam.Equals(leaderteam)) { await Context.Channel.SendMessageAsync($"They're not in your team! If you just want to kick them normaly use `{Program.GetPrefix(Context)}kick`"); return; } await Context.Guild.GetUser(user.Id).RemoveRoleAsync(userteam); await Context.Channel.SendMessageAsync("Ha! One less to take care of!"); ISocketMessageChannel ch = (ISocketMessageChannel)Context.Client.GetChannel(ServerDb.GetServer(Context.Guild.Id).TeamLogChannelId); await ch.SendMessageAsync($":hammer: `{Context.User}` kicked `{user}` from **{userteam.Name}**."); }
public async Task Leave([Remainder] string str = "") { var role = RoleUtil.GetMemberRole(Context.Guild, Context.User); if (role == null) { await Context.Channel.SendMessageAsync("Buuut... You're not in a team."); return; } try { await Context.Guild.GetUser(Context.User.Id).RemoveRoleAsync(role); } catch { await Context.Channel.SendMessageAsync($"I tried removing a role that is above my own role. *Coughs blood.* Discord wouldn't let me..."); return; } await Context.Channel.SendMessageAsync($@"Ha! You left **{role.Name}**! Too bad for them ¯\_(ツ)_/¯"); ISocketMessageChannel ch = (ISocketMessageChannel)Context.Client.GetChannel(ServerDb.GetServer(Context.Guild.Id).TeamLogChannelId); await ch.SendMessageAsync($"<:TickNo:577838859077943306> `{Context.User}` left **{role.Name}**."); }
public async Task Join([Remainder] string teamName) { var role = await this.SelectRole(teamName, TeamDb.Teams(Context.Guild.Id).Select(x => x.MemberRoleId), respond : false); if (role == null) { await Context.Channel.SendMessageAsync($"*~ No teams found ~*"); return; } if (InviteDb.IsInvited(role.Id, Context.User.Id)) { var user = Context.Guild.GetUser(Context.User.Id); try { await user.AddRoleAsync(role); } catch { await Context.Channel.SendMessageAsync($"I tried giving a role that is above my own role. *Coughs blood.* Discord wouldn't let me..."); return; } await InviteDb.DeleteInvite(role.Id, user.Id); await Context.Channel.SendMessageAsync($"Congratulations! You joined **{role.Name}**!"); ISocketMessageChannel ch = (ISocketMessageChannel)Context.Client.GetChannel(ServerDb.GetServer(Context.Guild.Id).TeamLogChannelId); await ch.SendMessageAsync($"<:TickYes:577838859107303424> `{Context.User}` joined **{role.Name}**."); return; } await Context.Channel.SendMessageAsync($"You're not invited to **{role.Name}**! What a shame ^^"); }
public async Task Invite([Remainder] IUser user = null) { var channel = Context.Channel; var leaderRole = RoleUtil.GetLeaderRole(Context.Guild, Context.User); if (leaderRole == null) { await channel.SendMessageAsync("You're not a team leader, silly."); return; } if (RoleUtil.IsTeamed(Context.Guild, user)) { await channel.SendMessageAsync($@"**{user.Username}** is already in a team, I guess you're too late ¯\_(ツ)_/¯"); return; } var team = TeamDb.TeamByLeader(leaderRole.Id); var teamRole = Context.Guild.GetRole(team.MemberRoleId); if (InviteDb.IsInvited(team.MemberRoleId, user.Id)) { await channel.SendMessageAsync($"You already invited **{user.Username}**, baaaaaka."); return; } await InviteDb.NewInvite(team.MemberRoleId, user.Id); await channel.SendMessageAsync($"{user.Mention} You're invited to join **{teamRole.Name}**! Type `{Program.GetPrefix(Context)}jointeam {teamRole.Name}`"); ISocketMessageChannel ch = (ISocketMessageChannel)Context.Client.GetChannel(ServerDb.GetServer(Context.Guild.Id).TeamLogChannelId); await ch.SendMessageAsync($"<:KannaHype:571690048001671238> `{Context.User}` invited `{user}` to **{teamRole.Name}**."); }
private static SocketTextChannel GetJoinLogChannel(SocketGuild guild) { return((SocketTextChannel)guild.GetChannel(ServerDb.GetServer(guild.Id).JoinLogChannelId)); }