@@ -79,10 +79,7 @@ def __check_for_updates(self):
7979 else :
8080 self .logger .info (f'BashBot is up to date' )
8181
82- async def on_message (self , message : Message ):
83- if message .author .bot :
84- return
85-
82+ async def check_permissions (self , message ):
8683 is_owner = await self .is_owner (message .author )
8784 if not is_owner :
8885 if settings ().get ('discord.enable_users_whitelist' ):
@@ -94,26 +91,40 @@ async def on_message(self, message: Message):
9491 title = f'Only whitelisted users can execute commands' ,
9592 description = f'{ first_prefix } .whitelist add { message .author .mention } '
9693 )
94+
9795 await message .channel .send (embed = embed )
98- return
96+ return False
9997
10098 if isinstance (message .channel , DMChannel ) and settings ().get ('discord.disable_dm' ):
10199 embed = Embed (
102100 title = f'Using bot on DM is disabled' ,
103101 description = 'discord.disable_dm = true'
104102 )
103+
105104 await message .channel .send (embed = embed )
106- return
105+ return False
106+
107+ return True
108+
109+ async def on_message (self , message : Message ):
110+ if message .author .bot :
111+ return
107112
108113 terminal = sessions ().by_channel (message .channel )
109114
110115 if self .is_invoke (message ):
116+ if not await self .check_permissions (message ):
117+ return
118+
111119 await self .process_commands (message )
112120 elif terminal and terminal .state == TerminalState .OPEN :
113121 prefix = extract_prefix (message .content )
114122 if not terminal .interactive and not prefix :
115123 return
116124
125+ if not await self .check_permissions (message ):
126+ return
127+
117128 # We don't remove prefix when in interactive mode
118129 content = message .content
119130 if not terminal .interactive :
0 commit comments