1
1
import { Message , Client , User , GuildMember } from 'discord.js' ;
2
- import { prefixes , trustedRoleId } from './env' ;
2
+ import { botAdmins , prefixes , trustedRoleId } from './env' ;
3
3
4
4
export interface CommandRegistration {
5
5
aliases : string [ ] ;
@@ -21,13 +21,21 @@ export class Bot {
21
21
const content = msg . content
22
22
. substring ( triggerWithPrefix . length + 1 )
23
23
. trim ( ) ;
24
- this . getByTrigger (
24
+
25
+ const command = this . getByTrigger (
25
26
triggerWithPrefix . substring ( matchingPrefix . length ) ,
26
- )
27
- ?. listener ( msg , content )
28
- . catch ( err => {
29
- this . client . emit ( 'error' , err ) ;
30
- } ) ;
27
+ ) ;
28
+
29
+ if (
30
+ ! command ||
31
+ ( this . adminCommands . includes ( command ) &&
32
+ ! this . isAdmin ( msg . author ) )
33
+ ) {
34
+ return ;
35
+ }
36
+ command . listener ( msg , content ) . catch ( err => {
37
+ this . client . emit ( 'error' , err ) ;
38
+ } ) ;
31
39
}
32
40
} ) ;
33
41
}
@@ -49,6 +57,10 @@ export class Bot {
49
57
return member ?. permissions . has ( 'ManageMessages' ) ?? false ;
50
58
}
51
59
60
+ isAdmin ( user : User ) {
61
+ return botAdmins . includes ( user . id ) ;
62
+ }
63
+
52
64
getTrustedMemberError ( msg : Message ) {
53
65
if ( ! msg . guild || ! msg . member || ! msg . channel . isTextBased ( ) ) {
54
66
return ":warning: you can't use that command here." ;
0 commit comments