Skip to content

Commit 169be11

Browse files
Accept a reason for masskick & massban
Closes #253
1 parent 9afbf11 commit 169be11

File tree

2 files changed

+29
-6
lines changed

2 files changed

+29
-6
lines changed

Commands/Bans.cs

+16-3
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,18 @@ class Bans : BaseCommandModule
1010
public async Task MassBanCmd(CommandContext ctx, [RemainingText] string input)
1111
{
1212

13-
List<string> usersString = input.Replace("\n", " ").Replace("\r", "").Split(' ').ToList();
14-
List<ulong> users = usersString.Select(x => Convert.ToUInt64(x)).ToList();
13+
List<string> inputString = input.Replace("\n", " ").Replace("\r", "").Split(' ').ToList();
14+
List<ulong> users = new();
15+
string reason = "";
16+
foreach (var word in inputString)
17+
{
18+
if (ulong.TryParse(word, out var id))
19+
users.Add(id);
20+
else
21+
reason += $"{word} ";
22+
}
23+
reason = reason.Trim();
24+
1525
if (users.Count == 1 || users.Count == 0)
1626
{
1727
await ctx.RespondAsync($"{Program.cfgjson.Emoji.Error} Not accepting a massban with a single user. Please use `!ban`.");
@@ -25,7 +35,10 @@ public async Task MassBanCmd(CommandContext ctx, [RemainingText] string input)
2535

2636
foreach (ulong user in users)
2737
{
28-
taskList.Add(BanSilently(ctx.Guild, user));
38+
if (string.IsNullOrWhiteSpace(reason))
39+
taskList.Add(BanSilently(ctx.Guild, user));
40+
else
41+
taskList.Add(BanSilently(ctx.Guild, user, $"Mass ban: {reason}"));
2942
}
3043

3144
var tasks = await Task.WhenAll(taskList);

Commands/Kick.cs

+13-3
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,18 @@ public async Task KickCmd(CommandContext ctx, DiscordUser target, [RemainingText
5454
public async Task MassKickCmd(CommandContext ctx, [RemainingText] string input)
5555
{
5656

57-
List<string> usersString = input.Replace("\n", " ").Replace("\r", "").Split(' ').ToList();
58-
List<ulong> users = usersString.Select(x => Convert.ToUInt64(x)).ToList();
57+
List<string> inputString = input.Replace("\n", " ").Replace("\r", "").Split(' ').ToList();
58+
List<ulong> users = new();
59+
string reason = "";
60+
foreach (var word in inputString)
61+
{
62+
if (ulong.TryParse(word, out var id))
63+
users.Add(id);
64+
else
65+
reason += $"{word} ";
66+
}
67+
reason = reason.Trim();
68+
5969
if (users.Count == 1 || users.Count == 0)
6070
{
6171
await ctx.RespondAsync($"{Program.cfgjson.Emoji.Error} Not accepting a masskick with a single user. Please use `!ban`.");
@@ -75,7 +85,7 @@ public async Task MassKickCmd(CommandContext ctx, [RemainingText] string input)
7585
if (member is not null)
7686
{
7787

78-
taskList.Add(SafeKickAndLogAsync(member, "Mass kick", ctx.Member));
88+
taskList.Add(SafeKickAndLogAsync(member, $"Mass kick{(string.IsNullOrWhiteSpace(reason) ? "" : $": {reason}")}", ctx.Member));
7989
}
8090
}
8191
catch

0 commit comments

Comments
 (0)