async def on_message(self, message): if message.author == self.user: return if message.content.startswith(prefix + 'help'): help_channel = doc['CHANNELS']['help_channel'] # NOTE:- If help channel id is wrong then discord will display it as #deleted-channel await self.send_message( message.channel, 'Hello {}'.format(message.author.mention) + ', please visit <#' + help_channel + '> for a complete list of commands') # CHAT EMOTES # TODO get more Chat Emotes await chatemotes.main(self, message) # MUSIC PLAYER--------------- if message.content.startswith(prefix + 'load'): await musicplayer.load(self, message) if message.content.startswith(prefix + 'play '): await musicplayer.play(self, message) if message.content.startswith(prefix + 'pause'): await musicplayer.pause(self, message) if message.content.startswith(prefix + 'resume'): await musicplayer.resume(self, message) if message.content.startswith(prefix + 'stop'): await musicplayer.stop(self, message) if message.content.startswith(prefix + 'playlist'): await musicplayer.playlist(self, message) # GUESS GAME------------------------------ if message.content.startswith(prefix + 'guess'): # Game Status updating now_playing = discord.Game(name='Guessing Game') await self.change_status(game=now_playing, idle=False) # call guessgame.py module await guessgame.guess(self, message) # Game Status updating now_playing = discord.Game(name='') await self.change_status(game=now_playing, idle=False) # TRIVIA GAME---------------------------- # TODO the strings are not compared correctly. Need to fix. if message.content.startswith(prefix + 'quiz'): # Game Status updating now_playing = discord.Game(name='Trivia Quiz') await self.change_status(game=now_playing, idle=False) await triviagame.quiz(self, message) # Game Status updating now_playing = discord.Game(name='') await self.change_status(game=now_playing, idle=False) # OSU! API-------------------- # TODO implement other osu!API Functions if message.content.startswith(prefix + 'stats'): my_string = message.content # osu module await self.send_message(message.channel, osu.stats(my_string)) if message.content.startswith(prefix + 'top'): my_string = message.content await self.send_message( message.channel, 'Fetching the requested data. Please wait...\n\n') # osu module await self.send_message(message.channel, osu.top(my_string)) # 8 BALL---------------------- if message.content.startswith(prefix + '8ball'): await eightball.main(self, message)
async def on_message(self, message): """ Called when a message is created and sent to a server. :param message: A Message of the current message. """ # OSU LINK SCANNER hook -----------------------> await osu.parse_message(message.content, message) # HELP COMMAND -----------------------------------> if message.content.startswith(self.prefix + 'help'): await self.send_message(message.channel, 'Hello {}, I have PMed you a list of commands.'. format(message.author.mention)) with open('./static/help.txt') as h_text: a = h_text.read() await self.send_message(message.author, a) # CHAT EMOTICONS ---------------------------> if message.content.startswith(self.prefix + 'kappa'): await self.send_file(destination=message.channel, fp='./static/kappa.png', filename='kappa.png') if message.content.startswith(self.prefix + 'feelsbadman'): await self.send_file(destination=message.channel, fp='./static/feelsbadman.png', filename='feelsbadman.png') if message.content.startswith(self.prefix + 'feelsgoodman'): await self.send_file(destination=message.channel, fp='./static/feelsgoodman.png', filename='feelsgoodman.png') if message.content.startswith(self.prefix + 'lapz'): await self.send_file(destination=message.channel, fp='./static/lapz.png', filename='lapz.png') # MUSIC PLAYER------------------------------------> if message.content.startswith(self.prefix + 'load'): await musicplayer.load(self, message) if message.content.startswith(self.prefix + 'play '): await musicplayer.play(self, message) if message.content.startswith(self.prefix + 'pause'): await musicplayer.pause(self, message) if message.content.startswith(self.prefix + 'resume'): await musicplayer.resume(self, message) if message.content.startswith(self.prefix + 'stop'): await musicplayer.stop(self, message) if message.content.startswith(self.prefix + 'next'): await musicplayer.next_song(self, message) # Manually disconnect voice -------------------------> if message.content.startswith(self.prefix + 'dqvoice'): await self.voice.disconnect() # Diagnostics --------------------------------------> if message.content.startswith(self.prefix + 'logid'): await self.send_message(message.channel, 'Hello {}, the log channel is set to <#{}>.' .format(message.author.mention, self.log_channel_id)) # --------------->>-UTILITY FUNCTIONS-<<------------------ # Number Guessing Game ----------------------------> if message.content.startswith(self.prefix + 'guess'): await guess(self, message) # TIC TAC TOE Game ------------------------------> if message.content.startswith(self.prefix + 'ttt'): tictactoe = games.TicTacToe() tictactoe.lapz_instance = self tictactoe.message = message tictactoe.ids = message.author.id tictactoe.name = str(message.author) await tictactoe.start_game() # ROCK PAPER SCISSORS Game ----------------------> if message.content.startswith(self.prefix + 'rps'): rps = games.RPS(message.author, message.author.id) rps.lapz_instance = self rps.message = message await rps.main() # TRIVIA Quiz Game -----------------------------------> if message.content.startswith(self.prefix + 'quizlist'): await quizlist(self, message) if message.content.startswith(self.prefix + 'startquiz'): await quiz(self, message) # ACCEPT SERVER INVITES ----------------------------> if message.content.startswith(self.prefix + 'invite'): msg = message.content[8:] try: await self.accept_invite(msg) await self.send_message(message.channel, '`Invite accepted. Thank you for inviting me.`') except discord.NotFound: await self.send_message(message.channel, '`Invite not found.`') except discord.HTTPException: await self.send_message(message.channel, '`Accepting the invite failed.`') # SERVER LIST: Fetches a list of connected servers along with server id --> if message.content.startswith(self.prefix + 'serverlist'): a = '' for server in self.servers: name = str(server) s_id = str(server.id) a += '\n`' + name + '` `' + s_id + '`' await self.send_message(message.channel, 'I am connected to:' + a) # LEAVE A SERVER --------------------> if message.content.startswith(self.prefix + 'leave'): if message.author.id == self.admin_ids: msg = message.content[7:] server_id = discord.Object(id=msg) try: for server in self.servers: if msg == server.id: await self.leave_server(server=server_id) return except discord.HTTPException: await self.send_message(message.channel, '`An error occurred when trying to leave the server.`') else: await self.send_message(message.channel, '`Administrator function.`') # OSU API FUNCTIONS -------------------------------> if message.content.startswith(self.prefix + 'stats'): my_string = message.content await self.send_message(message.channel, osu.stats(my_string)) if message.content.startswith(self.prefix + 'top'): my_string = message.content await self.send_message(message.channel, 'Fetching the requested data. Please wait...\n\n') await self.send_message(message.channel, osu.top(my_string)) # 8 Ball ------------------------------------------> if message.content.startswith(self.prefix + '8ball'): await eightball(self, message) # Who am I? and Who Is? ----------------------------> if message.content.startswith(self.prefix + 'whoami'): await whoami(self, message) if message.content.startswith(self.prefix + 'whois'): await whois(self, message) # TWITCH stream checker----------------------------> if message.content.startswith(self.prefix + 'twitch'): cont = message.content[8:] await self.send_message(message.channel, twitch(cont)) # TRANSLATOR----------------------------> if message.content.startswith(self.prefix + 'translate'): """ ?translate hello :chinese """ cont = message.content[11:] parts = cont.split('>') msg = parts[0] lang = parts[1] trans = translate(msg, lang) await self.send_message(message.channel, trans) # Giphy GIF Search --------------------------------> if message.content.startswith(self.prefix + 'giphy'): querry = str(message.content[7:]) querry_format = querry.replace(' ', '+') print('GIPHY SEARCH FOR: ' + querry_format) await giphy(self, message, querry_format) # CLEAN CHANNEL -----------------------------------> if message.content.startswith(self.prefix + 'clean'): """ Deletes the messages sent by lapzbot in a particular channel """ try: async for entry in self.logs_from(message.channel, limit=100): if entry.author == self.user: await self.delete_message(entry) except discord.Forbidden: await self.send_message(message.channel, 'Error: I do not have permissions to get channel logs') return except discord.NotFound: await self.send_message(message.channel, 'Error: The channel you are requesting for doesnt exist.') return except discord.HTTPException: await self.send_message(message.channel, 'Error: The request to get logs failed.') return await self.send_message(message.channel, 'Cleaned :sweat_drops:.')
async def on_message(self, message): if message.author == self.user: return if message.content.startswith(prefix + 'help'): help_channel = doc['CHANNELS']['help_channel'] # NOTE:- If help channel id is wrong then discord will display it as #deleted-channel await self.send_message(message.channel, 'Hello {}'.format(message.author.mention) + ', please visit <#' + help_channel + '> for a complete list of commands') # CHAT EMOTES # TODO get more Chat Emotes await chatemotes.main(self, message) # MUSIC PLAYER--------------- if message.content.startswith(prefix + 'load'): await musicplayer.load(self, message) if message.content.startswith(prefix + 'play '): await musicplayer.play(self, message) if message.content.startswith(prefix + 'pause'): await musicplayer.pause(self, message) if message.content.startswith(prefix + 'resume'): await musicplayer.resume(self, message) if message.content.startswith(prefix + 'stop'): await musicplayer.stop(self, message) if message.content.startswith(prefix + 'playlist'): await musicplayer.playlist(self, message) # GUESS GAME------------------------------ if message.content.startswith(prefix + 'guess'): # Game Status updating now_playing = discord.Game(name='Guessing Game') await self.change_status(game=now_playing, idle=False) # call guessgame.py module await guessgame.guess(self, message) # Game Status updating now_playing = discord.Game(name='') await self.change_status(game=now_playing, idle=False) # TRIVIA GAME---------------------------- # TODO the strings are not compared correctly. Need to fix. if message.content.startswith(prefix + 'quiz'): # Game Status updating now_playing = discord.Game(name='Trivia Quiz') await self.change_status(game=now_playing, idle=False) await triviagame.quiz(self, message) # Game Status updating now_playing = discord.Game(name='') await self.change_status(game=now_playing, idle=False) # OSU! API-------------------- # TODO implement other osu!API Functions if message.content.startswith(prefix + 'stats'): my_string = message.content # osu module await self.send_message(message.channel, osu.stats(my_string)) if message.content.startswith(prefix + 'top'): my_string = message.content await self.send_message(message.channel, 'Fetching the requested data. Please wait...\n\n') # osu module await self.send_message(message.channel, osu.top(my_string)) # 8 BALL---------------------- if message.content.startswith(prefix + '8ball'): await eightball.main(self, message)