public async Task AddRole(CommandContext ctx, DiscordRole role) { if (!await CommandHelpers.CheckPermissions(ctx, RequiredPermissions)) { return; } JoinRoles associatedJoinRoles = _joinRolesInteractions.JoinRoles.FirstOrDefault(joinRoles => joinRoles.Guild == ctx.Guild); if (associatedJoinRoles == null) { await ctx.RespondAsync("JoinRoles are not enabled for this guild"); return; } JoinRole joinRole = new JoinRole(role); if (associatedJoinRoles.Roles.Contains(joinRole)) { await ctx.RespondAsync("This role was already added"); return; } associatedJoinRoles.Roles.Add(joinRole); await ctx.RespondAsync($"Added {role.Name} to the roles to add when a person joins"); _joinRolesInteractions.SaveToFile(); }
public SerializedJoinRoles(JoinRoles joinRoles) { GuildId = joinRoles.Guild.Id; Roles = new List <SerializedJoinRole>(); foreach (JoinRole joinRole in joinRoles.Roles) { Roles.Add(new SerializedJoinRole(joinRole)); } }
public async Task ListRoles(CommandContext ctx) { if (!await CommandHelpers.CheckPermissions(ctx, RequiredPermissions)) { return; } JoinRoles associatedJoinRoles = _joinRolesInteractions.JoinRoles.FirstOrDefault(joinRoles => joinRoles.Guild == ctx.Guild); if (associatedJoinRoles == null) { await ctx.RespondAsync("JoinRoles are not enabled for this guild"); return; } await ctx.RespondAsync(associatedJoinRoles.ToString()); }
private Task ClientOnGuildMemberAdded(DiscordClient sender, GuildMemberAddEventArgs e) { return(Task.Run(() => { JoinRoles associatedRoles = JoinRoles.FirstOrDefault(x => x.Guild == e.Guild); if (associatedRoles == null || e.Member.Equals(_client.CurrentUser)) { return; } foreach (JoinRole joinRole in associatedRoles.Roles) { e.Member.GrantRoleAsync(joinRole.Role).Wait(); } GuildEventLogger.Instance .LogInfo(e.Guild, $"{e.Member.Mention} was granted the default roles by joining the server").Wait(); })); }
public void LoadJoinRoles() { JoinRoles = new List <JoinRoles>(); if (!File.Exists(JoinRolesLocalPath)) { return; } string json = File.ReadAllText(JoinRolesLocalPath); List <SerializedJoinRoles> serializedJoinRolesList = JsonConvert.DeserializeObject <List <SerializedJoinRoles> >(json); foreach (SerializedJoinRoles serializedJoinRoles in serializedJoinRolesList) { JoinRoles joinRoles = serializedJoinRoles.ToJoinRoles(); if (joinRoles != null) { JoinRoles.Add(joinRoles); } } }
public async Task Disable(CommandContext ctx) { if (!await CommandHelpers.CheckPermissions(ctx, RequiredPermissions)) { return; } JoinRoles associatedJoinRoles = _joinRolesInteractions.JoinRoles.FirstOrDefault(joinRoles => joinRoles.Guild == ctx.Guild); if (associatedJoinRoles == null) { await ctx.RespondAsync("JoinRoles are not enabled for this guild"); return; } _joinRolesInteractions.JoinRoles.Remove(associatedJoinRoles); await ctx.RespondAsync("Disabled JoinRoles for this guild"); _joinRolesInteractions.SaveToFile(); }