示例#1
0
        public async Task fmGetMembersAsync()
        {
            if (guildService.CheckIfDM(Context))
            {
                await ReplyAsync("Command is not supported in DMs.").ConfigureAwait(false);

                return;
            }

            IGuildUser serverUser = (IGuildUser)Context.Message.Author;

            if (!serverUser.GuildPermissions.BanMembers && !serverUser.GuildPermissions.Administrator && !await adminService.HasCommandAccessAsync(Context.User, UserType.Admin).ConfigureAwait(false))
            {
                await ReplyAsync("You are not authorized to use this command. Only users with the 'Ban Members' permission, server admins or FMBot admins can use this command.").ConfigureAwait(false);

                return;
            }

            Dictionary <string, string> serverUsers = await guildService.FindAllUsersFromGuildAsync(Context);

            if (serverUsers.Count == 0)
            {
                await ReplyAsync("No members found on this server.");

                return;
            }

            string reply = "The " + serverUsers.Count + " Last.FM users on this server are: \n";

            foreach (KeyValuePair <string, string> fmbotUser in serverUsers.OrderBy(o => o.Key))
            {
                reply += "`" + fmbotUser.Value + "` - " + fmbotUser.Key + "\n";

                if (reply.Length > 1950)
                {
                    await Context.User.SendMessageAsync(reply).ConfigureAwait(false);

                    reply = "";
                }
            }

            await Context.User.SendMessageAsync(reply).ConfigureAwait(false);

            await ReplyAsync("Check your DMs!").ConfigureAwait(false);
        }