File tree 3 files changed +28
-2
lines changed
3 files changed +28
-2
lines changed Original file line number Diff line number Diff line change @@ -50,6 +50,9 @@ export const enum Identifiers {
50
50
PreconditionGuildTextOnly = 'preconditionGuildTextOnly' ,
51
51
PreconditionNSFW = 'preconditionNsfw' ,
52
52
PreconditionClientPermissions = 'preconditionClientPermissions' ,
53
+ PreconditionClientPermissionsNoClient = 'preconditionClientPermissionsNoClient' ,
54
+ PreconditionClientPermissionsNoPermissions = 'preconditionClientPermissionsNoPermissions' ,
53
55
PreconditionUserPermissions = 'preconditionUserPermissions' ,
56
+ PreconditionUserPermissionsNoPermissions = 'preconditionUserPermissionsNoPermissions' ,
54
57
PreconditionThreadOnly = 'preconditionThreadOnly'
55
58
}
Original file line number Diff line number Diff line change @@ -21,7 +21,22 @@ export class CorePrecondition extends Precondition {
21
21
const required = ( context . permissions as Permissions ) ?? new Permissions ( ) ;
22
22
const channel = message . channel as TextChannel | NewsChannel ;
23
23
24
- const permissions = message . guild ? channel . permissionsFor ( message . client . id ! ) ! : this . dmChannelPermissions ;
24
+ if ( ! message . client . id ) {
25
+ return this . error ( {
26
+ identifier : Identifiers . PreconditionClientPermissionsNoClient ,
27
+ message : 'There was no client to validate the permissions for.'
28
+ } ) ;
29
+ }
30
+
31
+ const permissions = message . guild ? channel . permissionsFor ( message . client . id ) : this . dmChannelPermissions ;
32
+
33
+ if ( ! permissions ) {
34
+ return this . error ( {
35
+ identifier : Identifiers . PreconditionClientPermissionsNoPermissions ,
36
+ message : 'I was unable to resolve my permissions in the command invocation channel.'
37
+ } ) ;
38
+ }
39
+
25
40
const missing = permissions . missing ( required ) ;
26
41
return missing . length === 0
27
42
? this . ok ( )
Original file line number Diff line number Diff line change @@ -23,7 +23,15 @@ export class CorePrecondition extends Precondition {
23
23
const required = ( context . permissions as Permissions ) ?? new Permissions ( ) ;
24
24
const channel = message . channel as TextChannel | NewsChannel ;
25
25
26
- const permissions = message . guild ? channel . permissionsFor ( message . author ) ! : this . dmChannelPermissions ;
26
+ const permissions = message . guild ? channel . permissionsFor ( message . author ) : this . dmChannelPermissions ;
27
+
28
+ if ( ! permissions ) {
29
+ return this . error ( {
30
+ identifier : Identifiers . PreconditionClientPermissionsNoPermissions ,
31
+ message : "I was unable to resolve the end-user's permissions in the command invocation channel."
32
+ } ) ;
33
+ }
34
+
27
35
const missing = permissions . missing ( required ) ;
28
36
return missing . length === 0
29
37
? this . ok ( )
You can’t perform that action at this time.
0 commit comments