5
5
using Disqord . Gateway ;
6
6
using Disqord . Rest ;
7
7
using Hanekawa . Application ;
8
- using Hanekawa . Application . Commands . Administration ;
9
- using Hanekawa . Application . Handlers . Warnings ;
8
+ using Hanekawa . Application . Handlers . Commands . Administration ;
9
+ using Hanekawa . Application . Handlers . Services . Warnings ;
10
10
using Hanekawa . Bot . Mapper ;
11
11
using MediatR ;
12
12
using Qmmands ;
@@ -17,21 +17,18 @@ namespace Hanekawa.Bot.Commands.Slash.Administration;
17
17
[ Description ( "Administration commands" ) ]
18
18
public class AdministrationCommands : DiscordApplicationGuildModuleBase
19
19
{
20
- private readonly Metrics < AdministrationCommands > _metrics ;
20
+ private readonly Metrics _metrics ;
21
21
22
- public AdministrationCommands ( Metrics < AdministrationCommands > metrics )
23
- {
24
- _metrics = metrics ;
25
- }
22
+ public AdministrationCommands ( Metrics metrics )
23
+ => _metrics = metrics ;
26
24
27
25
[ SlashCommand ( "ban" ) ]
28
26
[ RequireBotPermissions ( Permissions . BanMembers ) ]
29
27
[ RequireAuthorPermissions ( Permissions . BanMembers ) ]
30
28
[ Description ( "Bans a user from the server" ) ]
31
29
public async Task < DiscordInteractionResponseCommandResult > BanAsync ( AutoComplete < IMember > member , string reason )
32
30
{
33
- _metrics . IncrementCounter ( ) ;
34
- using var _ = _metrics . MeasureDuration ( ) ;
31
+ using var _ = _metrics . All < AdministrationCommands > ( ) ;
35
32
var user = member . Argument . Value ;
36
33
var result = await Bot . Services . GetRequiredService < AdministrationCommandService > ( )
37
34
. BanUserAsync ( user . ToDiscordMember ( ) , Context . AuthorId , reason ) ;
@@ -44,8 +41,7 @@ public async Task<DiscordInteractionResponseCommandResult> BanAsync(AutoComplete
44
41
[ Description ( "Unbans a user from the server" ) ]
45
42
public async Task < DiscordInteractionResponseCommandResult > UnbanAsync ( AutoComplete < IMember > member , string reason )
46
43
{
47
- _metrics . IncrementCounter ( ) ;
48
- using var _ = _metrics . MeasureDuration ( ) ;
44
+ using var _ = _metrics . All < AdministrationCommands > ( ) ;
49
45
var user = member . Argument . Value ;
50
46
var result = await Bot . Services . GetRequiredService < AdministrationCommandService > ( )
51
47
. UnbanUserAsync ( user . ToGuild ( ) , user . Id , Context . AuthorId . RawValue , reason ) ;
@@ -58,8 +54,7 @@ public async Task<DiscordInteractionResponseCommandResult> UnbanAsync(AutoComple
58
54
[ Description ( "Kick a user from the server" ) ]
59
55
public async Task < DiscordInteractionResponseCommandResult > KickAsync ( AutoComplete < IMember > member , string reason )
60
56
{
61
- _metrics . IncrementCounter ( ) ;
62
- using var _ = _metrics . MeasureDuration ( ) ;
57
+ using var _ = _metrics . All < AdministrationCommands > ( ) ;
63
58
var user = member . Argument . Value ;
64
59
var result = await Bot . Services . GetRequiredService < AdministrationCommandService > ( )
65
60
. KickUserAsync ( user . ToDiscordMember ( ) , Context . AuthorId , reason ) ;
@@ -73,8 +68,7 @@ public async Task<DiscordInteractionResponseCommandResult> KickAsync(AutoComplet
73
68
public async Task < DiscordInteractionResponseCommandResult > MuteAsync ( AutoComplete < IMember > member ,
74
69
TimeSpan duration , string reason )
75
70
{
76
- _metrics . IncrementCounter ( ) ;
77
- using var _ = _metrics . MeasureDuration ( ) ;
71
+ using var _ = _metrics . All < AdministrationCommands > ( ) ;
78
72
var user = member . Argument . Value ;
79
73
var result = await Bot . Services . GetRequiredService < AdministrationCommandService > ( )
80
74
. MuteUserAsync ( user . ToDiscordMember ( ) , Context . AuthorId , reason , duration ) ;
@@ -87,8 +81,7 @@ public async Task<DiscordInteractionResponseCommandResult> MuteAsync(AutoComplet
87
81
[ Description ( "Un-mutes a user in the server" ) ]
88
82
public async Task < DiscordInteractionResponseCommandResult > UnmuteAsync ( AutoComplete < IMember > member , string reason )
89
83
{
90
- _metrics . IncrementCounter ( ) ;
91
- using var _ = _metrics . MeasureDuration ( ) ;
84
+ using var _ = _metrics . All < AdministrationCommands > ( ) ;
92
85
var user = member . Argument . Value ;
93
86
var result = await Bot . Services . GetRequiredService < AdministrationCommandService > ( )
94
87
. UnmuteUserAsync ( user . ToDiscordMember ( ) , Context . AuthorId , reason ) ;
@@ -100,8 +93,7 @@ public async Task<DiscordInteractionResponseCommandResult> UnmuteAsync(AutoCompl
100
93
[ Description ( "Warns a user in the server" ) ]
101
94
public async Task < DiscordInteractionResponseCommandResult > WarnAsync ( AutoComplete < IMember > member , string reason )
102
95
{
103
- _metrics . IncrementCounter ( ) ;
104
- using var _ = _metrics . MeasureDuration ( ) ;
96
+ using var _ = _metrics . All < AdministrationCommands > ( ) ;
105
97
var user = member . Argument . Value ;
106
98
var response = await Bot . Services . GetRequiredService < IMediator > ( )
107
99
. Send ( new WarningReceived ( user . ToDiscordMember ( ) , reason , Context . AuthorId ) ) ;
@@ -113,8 +105,7 @@ public async Task<DiscordInteractionResponseCommandResult> WarnAsync(AutoComplet
113
105
[ Description ( "Voids a warn from a user in the server" ) ]
114
106
public async Task < DiscordInteractionResponseCommandResult > VoidWarnAsync ( AutoComplete < IMember > member )
115
107
{
116
- _metrics . IncrementCounter ( ) ;
117
- using var _ = _metrics . MeasureDuration ( ) ;
108
+ using var _ = _metrics . All < AdministrationCommands > ( ) ;
118
109
var user = member . Argument . Value ;
119
110
var response = await Bot . Services . GetRequiredService < IMediator > ( )
120
111
. Send ( new WarningClear ( user . ToDiscordMember ( ) , Context . AuthorId , "Voided by moderator" ) ) ;
@@ -126,8 +117,7 @@ public async Task<DiscordInteractionResponseCommandResult> VoidWarnAsync(AutoCom
126
117
[ Description ( "List all warnings from a user in the server" ) ]
127
118
public async Task < DiscordInteractionResponseCommandResult > WarnsAsync ( AutoComplete < IMember > member )
128
119
{
129
- _metrics . IncrementCounter ( ) ;
130
- using var _ = _metrics . MeasureDuration ( ) ;
120
+ using var _ = _metrics . All < AdministrationCommands > ( ) ;
131
121
var user = member . Argument . Value ;
132
122
var response = await Bot . Services . GetRequiredService < IMediator > ( )
133
123
. Send ( new WarningList ( user . GuildId , user . Id ) ) ;
@@ -139,8 +129,7 @@ public async Task<DiscordInteractionResponseCommandResult> WarnsAsync(AutoComple
139
129
[ Description ( "Clears all warnings from a user in the server" ) ]
140
130
public async Task < DiscordInteractionResponseCommandResult > ClearWarnsAsync ( AutoComplete < IMember > member )
141
131
{
142
- _metrics . IncrementCounter ( ) ;
143
- using var _ = _metrics . MeasureDuration ( ) ;
132
+ using var _ = _metrics . All < AdministrationCommands > ( ) ;
144
133
var user = member . Argument . Value ;
145
134
var response = await Bot . Services . GetRequiredService < IMediator > ( )
146
135
. Send ( new WarningClear ( user . ToDiscordMember ( ) , Context . AuthorId ,
@@ -154,8 +143,7 @@ public async Task<DiscordInteractionResponseCommandResult> ClearWarnsAsync(AutoC
154
143
[ Description ( "Prunes a number of messages from a channel" ) ]
155
144
public async Task < DiscordInteractionResponseCommandResult > Prune ( int messageCount = 100 )
156
145
{
157
- _metrics . IncrementCounter ( ) ;
158
- using var _ = _metrics . MeasureDuration ( ) ;
146
+ using var _ = _metrics . All < AdministrationCommands > ( ) ;
159
147
var channel = Bot . GetChannel ( Context . GuildId , Context . ChannelId ) as ITextChannel ;
160
148
var messagesAsync = await channel . FetchMessagesAsync ( messageCount ) ;
161
149
var messageIds = new ulong [ messagesAsync . Count ] ;
0 commit comments