public static async Task Run(SocketSlashCommand command, DiscordSocketClient client, StorageClient storageClient, Dictionary <string, SocketSlashCommandDataOption> options, Guild guild, ISocketMessageChannel recruitingChannel, List <Team> teams) { var guildUser = (SocketGuildUser)options["username"].Value; var discordUser = guildUser.Nickname ?? guildUser.Username; // Player not exist? -> respond with error (var oldTeam, var player) = Team.FindPlayer(teams, discordUser); if (player == null) { await command.FollowupAsync($"User {discordUser} does not exist in the recruiting table", ephemeral : true); return; } oldTeam.RemovePlayer(player); // Update old team message if (oldTeam.Players.Count > 0) { await recruitingChannel.ModifyMessageAsync(oldTeam.MsgId, (message) => message.Content = oldTeam.ToMessage()); await storageClient.SaveTableRow(Team.TableName, oldTeam.Name, guild.RowKey, oldTeam); } else { await recruitingChannel.DeleteMessageAsync(oldTeam.MsgId); await storageClient.DeleteTableRow(Team.TableName, oldTeam.Name, guild.RowKey); } await command.FollowupAsync($"You have removed user {discordUser} from {oldTeam.Name}", ephemeral : true); }
public static async Task Run(SocketSlashCommand command, DiscordSocketClient client, StorageClient storageClient, Dictionary <string, SocketSlashCommandDataOption> options, Guild guild, ISocketMessageChannel recruitingChannel, List <Team> teams) { var teamName = options["team"].Value.ToString(); // Player not exist? -> respond with error var team = Team.FindTeam(teams, teamName); if (team == null) { await command.FollowupAsync($"Team {teamName} does not exist in the recruiting table", ephemeral : true); return; } // Remove old team message await recruitingChannel.DeleteMessageAsync(team.MsgId); await storageClient.DeleteTableRow(Team.TableName, team.Name, guild.RowKey); await command.FollowupAsync($"You have removed team {teamName}", ephemeral : true); }