1
1
using Discord ;
2
- using Discord . Addons . Paginator ;
3
2
using Discord . Commands ;
4
3
using Discord . WebSocket ;
5
4
using DiscordNet . Controllers ;
6
5
using DiscordNet . EmbedExtension ;
7
6
using DiscordNet . Modules . Addons ;
8
7
using Microsoft . Extensions . Caching . Memory ;
9
8
using Microsoft . Extensions . DependencyInjection ;
9
+ using Paginator ;
10
10
using System ;
11
11
using System . Linq ;
12
12
using System . Reflection ;
@@ -20,10 +20,10 @@ public class CommandHandler
20
20
private CommandService _commandService ;
21
21
private DiscordSocketClient _client ;
22
22
private IServiceProvider _services ;
23
- private MainHandler _mainHandler ;
24
- private MemoryCache cache = new MemoryCache ( new MemoryCacheOptions { ExpirationScanFrequency = TimeSpan . FromMinutes ( 3 ) } ) ;
23
+ private MainController _mainHandler ;
24
+ private MemoryCache _cache = new MemoryCache ( new MemoryCacheOptions { ExpirationScanFrequency = TimeSpan . FromMinutes ( 3 ) } ) ;
25
25
26
- public async Task InitializeAsync ( MainHandler MainHandler , IServiceProvider services )
26
+ public async Task InitializeAsync ( MainController MainHandler , IServiceProvider services )
27
27
{
28
28
_mainHandler = MainHandler ;
29
29
_client = services . GetService < DiscordSocketClient > ( ) ;
@@ -58,16 +58,15 @@ private Task HandleUpdate(Cacheable<IMessage, ulong> before, SocketMessage after
58
58
ulong ? id ;
59
59
if ( ( id = GetOurMessageIdFromCache ( before . Id ) ) != null )
60
60
{
61
- var botMessage = await channel . GetMessageAsync ( id . Value ) as IUserMessage ;
62
- if ( botMessage == null )
61
+ if ( ! ( await channel . GetMessageAsync ( id . Value ) is IUserMessage botMessage ) )
63
62
return ;
64
63
int argPos = 0 ;
65
64
if ( ! afterSocket . HasMentionPrefix ( _client . CurrentUser , ref argPos ) ) return ;
66
65
var reply = await BuildReply ( afterSocket , after . Content . Substring ( argPos ) ) ;
67
66
68
67
if ( reply . Item1 == null && reply . Item2 == null && reply . Item3 == null )
69
68
return ;
70
- var pagination = _services . GetService < PaginationService > ( ) ;
69
+ var pagination = _services . GetService < PaginatorService > ( ) ;
71
70
var isPaginatedMessage = pagination . IsPaginatedMessage ( id . Value ) ;
72
71
if ( reply . Item3 != null )
73
72
{
@@ -110,7 +109,7 @@ public async Task HandleCommandAsync(SocketUserMessage msg, int argPos)
110
109
return ;
111
110
IUserMessage message ;
112
111
if ( reply . Item3 != null )
113
- message = await ( _services . GetService < PaginationService > ( ) ) . SendPaginatedMessageAsync ( msg . Channel , reply . Item3 ) ;
112
+ message = await ( _services . GetService < PaginatorService > ( ) ) . SendPaginatedMessageAsync ( msg . Channel , reply . Item3 ) ;
114
113
else
115
114
message = await msg . Channel . SendMessageAsync ( reply . Item1 , embed : reply . Item2 ? . Build ( ) ) ;
116
115
AddCache ( msg . Id , message . Id ) ;
@@ -135,7 +134,7 @@ public async Task HandleCommandAsync(SocketUserMessage msg, int argPos)
135
134
var tuple = await _mainHandler . QueryHandler . RunAsync ( message ) ;
136
135
if ( tuple . Item2 is PaginatorBuilder pag )
137
136
{
138
- var paginated = new PaginatedMessage ( pag . Pages , "Results" , user : msg . Author , options : new AppearanceOptions { Timeout = TimeSpan . FromMinutes ( 10 ) } ) ;
137
+ var paginated = new PaginatedMessage ( pag . Pages , PaginatedMessageActions . Simplified , "Results" , user : msg . Author , options : new AppearanceOptions { TimeoutAfterLastAction = TimeSpan . FromMinutes ( 3 ) } ) ;
139
138
return ( null , null , paginated ) ;
140
139
}
141
140
else
@@ -152,16 +151,10 @@ public async Task HandleCommandAsync(SocketUserMessage msg, int argPos)
152
151
}
153
152
154
153
public void AddCache ( ulong userMessageId , ulong ourMessageId )
155
- {
156
- cache . Set ( userMessageId , ourMessageId , new MemoryCacheEntryOptions { AbsoluteExpirationRelativeToNow = TimeSpan . FromMinutes ( 10 ) } ) ;
157
- }
154
+ => _cache . Set ( userMessageId , ourMessageId , new MemoryCacheEntryOptions { AbsoluteExpirationRelativeToNow = TimeSpan . FromMinutes ( 10 ) } ) ;
158
155
159
156
public ulong ? GetOurMessageIdFromCache ( ulong messageId )
160
- {
161
- if ( cache . TryGetValue < ulong > ( messageId , out ulong id ) )
162
- return id ;
163
- return null ;
164
- }
157
+ => _cache . TryGetValue < ulong > ( messageId , out ulong id ) ? ( ulong ? ) id : null ;
165
158
166
159
public async Task < EmbedBuilder > HelpEmbedBuilderAsync ( ICommandContext context , string command = null )
167
160
{
@@ -195,7 +188,7 @@ public async Task<EmbedBuilder> HelpEmbedBuilderAsync(ICommandContext context, s
195
188
if ( cmds . Count != 0 )
196
189
{
197
190
var list = cmds . Select ( x => $ "{ ( ( x as CommandInfo ) ? . Name ?? ( x as ModuleInfo ) ? . Name ) } ") . OrderBy ( x => x ) ;
198
- sb . AppendLine ( $ "**{ mi . Name } :** { String . Join ( ", " , list ) } ") ;
191
+ sb . AppendLine ( $ "**{ mi . Name } :** { string . Join ( ", " , list ) } ") ;
199
192
}
200
193
}
201
194
}
@@ -230,7 +223,7 @@ public async Task<EmbedBuilder> HelpEmbedBuilderAsync(ICommandContext context, s
230
223
SearchResult sr = _commandService . Search ( context , command ) ;
231
224
if ( sr . IsSuccess )
232
225
{
233
- Nullable < CommandMatch > cmd = null ;
226
+ CommandMatch ? cmd = null ;
234
227
if ( sr . Commands . Count == 1 )
235
228
cmd = sr . Commands . First ( ) ;
236
229
else
@@ -252,13 +245,13 @@ public async Task<EmbedBuilder> HelpEmbedBuilderAsync(ICommandContext context, s
252
245
eb . Author . Name = $ "Help: { cmd . Value . Command . Aliases . First ( ) } ";
253
246
sb . Append ( $ "Usage: { _mainHandler . Prefix } { cmd . Value . Command . Aliases . First ( ) } ") ;
254
247
if ( cmd . Value . Command . Parameters . Count != 0 )
255
- sb . Append ( $ " [{ String . Join ( "] [" , cmd . Value . Command . Parameters . Select ( x => x . Name ) ) } ]") ;
256
- if ( ! String . IsNullOrEmpty ( cmd . Value . Command . Summary ) )
248
+ sb . Append ( $ " [{ string . Join ( "] [" , cmd . Value . Command . Parameters . Select ( x => x . Name ) ) } ]") ;
249
+ if ( ! string . IsNullOrEmpty ( cmd . Value . Command . Summary ) )
257
250
sb . Append ( $ "\n Summary: { cmd . Value . Command . Summary } ") ;
258
- if ( ! String . IsNullOrEmpty ( cmd . Value . Command . Remarks ) )
251
+ if ( ! string . IsNullOrEmpty ( cmd . Value . Command . Remarks ) )
259
252
sb . Append ( $ "\n Remarks: { cmd . Value . Command . Remarks } ") ;
260
253
if ( cmd . Value . Command . Aliases . Count != 1 )
261
- sb . Append ( $ "\n Aliases: { String . Join ( ", " , cmd . Value . Command . Aliases . Where ( x => x != cmd . Value . Command . Aliases . First ( ) ) ) } ") ;
254
+ sb . Append ( $ "\n Aliases: { string . Join ( ", " , cmd . Value . Command . Aliases . Where ( x => x != cmd . Value . Command . Aliases . First ( ) ) ) } ") ;
262
255
eb . Description = sb . ToString ( ) ;
263
256
}
264
257
else
0 commit comments