Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        public SerializedJoinRoles(JoinRoles joinRoles)
        {
            GuildId = joinRoles.Guild.Id;
            Roles   = new List <SerializedJoinRole>();

            foreach (JoinRole joinRole in joinRoles.Roles)
            {
                Roles.Add(new SerializedJoinRole(joinRole));
            }
        }
Esempio n. 3
0
        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());
        }
Esempio n. 4
0
        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();
            }));
        }
Esempio n. 5
0
        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);
                }
            }
        }
Esempio n. 6
0
        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();
        }