async def on_message(message): # we do not want the bot to reply to itself if message.author == client.user: return time = datetime.datetime.now() if is_command(message, ['time', 'whattime', 'what time'], False, '') or is_command( message, ['time', 'whattime', 'what time'], True, ''): await message.channel.send("It's currently {}:{}.".format( time.hour, time.minute)) if int(time.hour) > 7 and int(time.hour) < 21: await message.channel.send( "That's {} hours and {} minutes left till the night starts.". format(20 - time.hour, 60 - time.minute)) else: await message.channel.send( "That's {} hours and {} minutes left until the morning starts." .format((31 - time.hour) % 24, 60 - time.minute)) if is_command(message, ['pight', 'night', 'pay', 'day'], False, prefix) and message.author.bot: await message.channel.send(message.content)
def process_profile(message: Message, is_game_master, is_admin, is_peasant) -> Optional[List[Mailbox]]: if is_command(message, ['age', 'setage'], help=True): return [ Mailbox().respond( "Use this command to set your age in your profile", temporary=True) ] if is_command(message, ['age', 'setage']): return set_age(message) if is_command(message, ['gender', 'setgender'], help=True): return [ Mailbox().respond( "Use this command to set your gender in your profile. We left it free to fill " "anything in, but if this gets abused ya getting whipped!", temporary=True) ] if is_command(message, ['gender', 'setgender']): return set_gender(message) if is_command(message, ['setbio', 'bio'], help=True): return [ Mailbox().respond( "Use this command to set your biography in your profile.", temporary=True) ] if is_command(message, ['setbio', 'bio']): return set_bio(message) if is_command(message, ['profile', 'view_profile'], help=True): return [ Mailbox().respond( "Use this command to view your or other peoples profile.", temporary=True) ] if is_command(message, ['profile', 'view_profile']): return view_profile(message) return None
def process(message, isGameMaster = False): user_id = message.author.id message_channel = message.channel.id user_role = db_get(user_id,'role') '''testcc''' # This function is merely a temporary one, to test if the cc creation command is working properly. if is_command(message,['cc','testcc','test_cc']): members = check.users(message) if len(message.content.split(' ')) == 1 or members == False: msg = "**Incorrect syntax:** `" + prefix + "cc <name> <user> <user> <user> ...`\n\nExample: `" + prefix + "cc the_cool_ones @Randium#6521`" msg += "\n\nThe bot understands both mentions and emojis linked to players." return [Mailbox().respond(msg,True)] name = message.content.split(' ')[1] return [Mailbox().create_cc(name,user_id,members)] if is_command(message,['cc','testcc','test_cc'],True): msg = "**Usage:** `" + prefix + "cc <name> <user> <user> <user> ...`\n\nExample: `" + prefix + "cc the_cool_ones @Randium#6521`" msg += "\n\nThe bot understands both mentions and emojis linked to players." return [Mailbox().respond(msg,True)] # ============================================================= # # GAME MASTERS # # ============================================================= if isGameMaster == True: '''addrole''' # Before the game starts, a list of roles is kept track of. # That list is the list of roles that will be dealt among the participants. # If the list is greater than the amount of participants, some random roles will be left out. # The game cannot start as long as this list is incomplete. if is_command(message,['addrole']): # TODO return todo() if is_command(message,['addrole'],True): # TODO return todo() '''assign''' # This command is used at the start of the game to assign all roles. # This will actually set their "fakerole" value, which will be transferred to their actual role once the game starts. if is_command(message,['assign']): role = check.roles(message,1)[0] user = check.users(message,1)[0] if role == False: return [Mailbox().respond("No role provided! Please provide us with a role!")] if user == False: return [Mailbox().respond("No user found! Please provide us with a user!")] db_set(user,'role',role) return [Mailbox().spam("You have successfully given <@{}> the role of the `{}`!".format(user,role))] if is_command(message,['assign'],True): msg = "**Usage:** `" + prefix + "assign <user> <role>`\n\nExample: `" + prefix msg += "assign @Randium#6521 Innocent`\nGame Master only command" return [Mailbox().spam(msg)] '''day''' # This command is used to initialize the day. if is_command(message,['day']): # TODO return todo() if is_command(message,['day'],True): # TODO return todo() '''open_signup''' # This command is started when a new game can be started. # Make sure the bot has reset itself beforehand. if is_command(message,['open_signup']): # TODO return todo() if is_command(message,['open_signup'],True): # TODO return todo() '''whois''' # This command reveals the role of a player. # To prevent spoilers, the response isn't made in the message's channel, but rather in the bot spam channel. if is_command(message,['whois']): user_table = check.users(message) identities = Mailbox() if user_table == False: return [Mailbox().respond("**ERROR:** No user provided!")] for user in user_table: emoji = db_get(user,'emoji') role = db_get(user,'role') if emoji == None or role == None: identities.spam("**ERROR:** Could not find user <@{}> in database.".format(user)) else: msg = "{} - <@{}> has the role of the `{}`!".format(emoji,user,role) identities.spam(msg) return [identities] if is_command(message,['whois'],True): msg = "**Usage:** `" + prefix + "whois <user1> <user2> ...`\n\n" msg += "Example: `" + prefix + "whois @Randium#6521`\nGame Master only command" return [Mailbox().respond(msg,True)] # ============================================================= # # PARTICIPANTS # # ============================================================= if isParticipant(user_id): '''add''' # This command allows users to add users to a conspiracy. # This command will not trigger if the user doesn't own the conspiracy channel. if is_command(message,['add']): members_to_add = check.users(message) if members_to_add == False: return [Mailbox().respond("I am sorry! I couldn't find the user you were looking for!",True)] if is_owner(user_id,message.channel.id) == False: return [Mailbox().respond("I\'m sorry, you can only use this in conspiracy channels where you are the owner!")] command = Mailbox() for x in members_to_add: command.edit_cc(x,channel_id,1) return [command.respond("Insert Randium's comment here")] if is_command(message,['add'],True): # TODO return todo() '''cc''' # This command allows users to create a conspiracy channel. if is_command(message, ['cc']): if len(message.content.split(' ')) < 2: return [Mailbox().respond("**Invalid syntax:**\n\n`" + prefix + "cc <name> <user1> <user2> <user3> ...`\n\n**Example:** `" + prefix + "cc the_cool_guys @Randium#6521`")] channel_members = check.users(message) if channel_members == False: channel_members = [] if user_id not in channel_members: channel_members.append(user_id) num_cc_owned = int(db_get(user_id,'ccs')) if num_cc_owned >= max_cc_per_user: answer = Mailbox().dm("You have reached the amount of conspiracy channels one may own!", user_id) return answer.dm("If you want more conspiracy channels, please request permission from one of the Game Masters.", user_id) db_set(user_id,'ccs',number_cc_owned + 1) return Mailbox.create_cc(message.content.split(' ')[1], user_id, channel_members) if is_command(message,['cc'],True): # TODO return todo() '''info''' # This command allows users to view information about a conspiracy channel. # Says the user must be in a cc if they're not. if is_command(message,['info']): guild = message.channel.guild try: owner_id = channel_get(message.channel.id,'owner') except: return[Mailbox().respond('Sorry, but it doesn\'t look like you\'re in a CC! If you are, please alert a Game Master as soon as possible.')] if owner_id != None: owner_object = guild.get_member(int(owner_id)) embed = Embed(color=0x00cdcd, title='Conspiracy Channel Info') if owner_object != None and owner_id != None: embed.add_field(name='Channel Owner', value='<@' + owner_id + '>') embed.set_thumbnail(url=owner_object.avatar_url) elif owner_id == None: return [Mailbox().respond('Sorry, but it doesn\'t look like you\'re in a CC! If you are, please alert a Game Master as soon as possible.')] else: try: owner_name = db_get(owner_id,'name') if str(owner_name) == 'None': owner_name = 'Sorry, an error was encountered. Please alert a Game Master.' except: owner_name == 'Sorry, an error was encountered. Please alert a Game Master.' embed.add_field(name='Channel Owner', value=owner_name) embed.add_field(name='Channel Name', value=message.channel.name) embed.add_field(name='Participants', value='[Bob Roberts], [Dummy], [Randium], [BenTechy66], [Ed588]') embed.set_footer(text='Conspiracy Channel Information requested by ' + message.author.nick) return [Mailbox().embed(embed, message.channel.id)] if is_command(message,['info'],True): # TODO return todo() '''myrole''' # This command sends the user's role back to them in a DM. if is_command(message,['myrole']): return [Mailbox().dm("Your role is **{}**.".format(db_get(message.author.id,'role')), message.author.id,False,[db_get(message.author.id,'emoji')])] if is_command(message,['myrole'],True): # TODO return todo() '''remove''' # This command removes a given user from a conspiracy channel. # A user should not get removed if they're the channel owner. if is_command(message,['remove']): members_to_remove = check.users(message) if is_owner(user_id,channel_id) == False: return [Mailbox().respond("I\'m sorry, but you cannot use this command over here!")] command = Mailbox() for x in members_to_remove: if is_owner(x,channel_id) == True: return [Mailbox().respond("The owner of a CC can\'t be removed! Please try again.")] command.edit_cc(x,channel_id,0) return [command.respond("Insert Randium's comment here")] if is_command(message,['remove'],True): # TODO return todo() # ======================================================= # ROLE SPECIFIC COMMANDS # ======================================================= if personal_channel(user_id,message_channel) == True: '''give_amulet''' # This command can be executed by everyone, but only in one channel. # That's the amulet channel. # To be worked out how exactly. if is_command(message,['give_amulet']): # TODO return todo() if is_command(message,['give_amulet'],True): # TODO return todo() '''assassinate''' # Assassin's command; kill a victim if is_command(message,['assassinate','kill']) and user_role == "Assassin": # TODO return todo() if is_command(message,['assassinate','kill'],True) and user_role == "Assassin": # TODO return todo() '''aura''' # The command for aura tellers if is_command(message,['aura','tell','vision']) and user_role == "Aura Teller": # TODO return todo() if is_command(message,['aura','tell','vision'],True) and user_role == "Aura Teller": # TODO return todo() '''barber_kill''' # Barber kill - to assassinate a victim during the day if is_command(message,['assassinate','barber_kill','cut']) and user_role == "Barber": # TODO return todo() if is_command(message,['assassinate','barber_kill','cut'],True) and user_role == "Barber": # TODO return todo() '''seek''' # Crowd seeker's power if is_command(message,['crowd','seek']) and user_role == "Crowd Seeker": # TODO return todo() if is_command(message,['crowd','seek'],True) and user_role == "Crowd Seeker": # TODO return todo() '''kiss''' # Cupid's power to fall in love with someone. if is_command(message,['kiss','love','shoot']) and user_role == "Cupid": # TODO return todo() if is_command(message,['kiss','love','shoot'],True) and user_role == "Cupid": # TODO return todo() '''follow''' # The command that allows the dog to choose a side. if is_command(message,['bark','become','choose','follow']) and user_role == "Dog": # TODO return todo() if is_command(message,['bark','become','choose','follow'],True) and user_role == "Dog": # TODO return todo() '''execute''' # This command allows the executioner to choose a replacement target. if is_command(message,['choose','execute']) and user_role == "Executioner": # TODO return todo() if is_command(message,['choose','execute'],True) and user_role == "Executioner": # TODO return todo() '''undoom''' # The Exorcist's command. if is_command(message,['exercise','exorcise','undoom']) and user_role == "Exorcist": # TODO return todo() if is_command(message,['exercise','exorcise','undoom'],True) and user_role == "Exorcist": # TODO return todo() '''inspect''' # The fortune teller's command. if is_command(message,['forsee','inspect','see','tell']) and user_role == "Fortune Teller": # TODO return todo() if is_command(message,['forsee','inspect','see','tell'],True) and user_role == "Fortune Teller": # TODO return todo() '''silence''' # Grandma's command. if is_command(message,['knit','knot','silence']) and user_role == "Grandma": # TODO return todo() if is_command(message,['knit','knot','silence'],True) and user_role == "Grandma": # TODO return todo() '''hook''' # The hooker's command if is_command(message,['f**k','hook','sleep']) and user_role == "Hooker": # TODO return todo() if is_command(message,['f**k','hook','sleep'],True) and user_role == "Hooker": # TODO return todo() '''hunt''' # The huntress' command. Used to keep track of whom will be shot. if is_command(message,['hunt','shoot']) and user_role == "Huntress": # TODO return todo() if is_command(message,['hunt','shoot'],True) and user_role == "Huntress": # TODO return todo() '''unfreeze''' # The innkeeper's command if is_command(message,['melt','unfreeze']) and user_role == "Innkeeper": # TODO return todo() if is_command(message,['melt','unfreeze'],True) and user_role == "Innkeeper": # TODO return todo() '''copy''' # The Look-Alike's command if is_command(message,['copy','imitate','mirror','resemble']) and user_role == "Look-Alike": # TODO return todo() if is_command(message,['copy','imitate','mirror','resemble'],True) and user_role == "Look-Alike": # TODO return todo() '''holify''' # The Priest's command if is_command(message,['holify','sacrify','water']) and user_role == "Priest": # TODO return todo() if is_command(message,['holify','sacrify','water'],True) and user_role == "Priest": # TODO return todo() '''purify''' # The Priestess' command if is_command(message,['heal','light','purify','sacrify']) and user_role == "Priestess": # TODO return todo() if is_command(message,['heal','light','purify','sacrify'],True) and user_role == "Priestess": # TODO return todo() '''threaten''' # The Raven's command if is_command(message,['threaten','raven']) and user_role == "Raven": # TODO return todo() if is_command(message,['threaten','raven'],True) and user_role == "Raven": # TODO return todo() '''reveal''' # The Royal Knight's command if is_command(message,['end','prevent','reveal','stop']) and user_role == "Royal Knight": # TODO return todo() if is_command(message,['end','prevent','reveal','stop'],True) and user_role == "Royal Knight": # TODO return todo() '''life''' # The witch' command to use her life potion if is_command(message,['heal','life','save']) and user_role == "Witch": # TODO return todo() if is_command(message,['heal','life','save'],True) and user_role == "Witch": # TODO return todo() '''death''' # The witch' command to use her death potion if is_command(message,['death','kill','murder','poison']) and user_role == "Witch": # TODO return todo() if is_command(message,['death','kill','murder','poison'],True) and user_role == "Witch": # TODO return todo() '''çurse''' # The curse caster's command if is_command(message,['cast','corrupt','curse']) and user_role == "Curse Caster": # TODO return todo() if is_command(message,['cast','corrupt','curse'],True) and user_role == "Curse Caster": # TODO return todo() '''infect''' # The infected wolf's command if is_command(message,['cough','infect','sneeze','turn']) and user_role == "Infected Wolf": # TODO return todo() if is_command(message,['cough','infect','sneeze','turn'],True) and user_role == "Infected Wolf": # TODO return todo() '''devour''' # The Lone wolf's command if is_command(message,['chew','devour','eat','kill','munch']) and user_role == "Lone Wolf": # TODO return todo() if is_command(message,['chew','devour','eat','kill','munch'],True) and user_role == "Lone Wolf": # TODO return todo() '''disguise''' # The tanner's command if is_command(message,['change','cloth','disguise','hide']) and user_role == "Tanner": # TODO return todo() if is_command(message,['change','cloth','disguise','hide'],True) and user_role == "Tanner": # TODO return todo() '''inspect''' # The Warlock's command if is_command(message,['forsee','inspect','see','tell']) and user_role == "Priestess": # TODO return todo() if is_command(message,['forsee','inspect','see','tell'],True) and user_role == "Priestess": # TODO return todo() '''devour''' # The white werewolf's command if is_command(message,['chew','devour','eat','kill','munch']) and user_role == "White Werewolf": # TODO return todo() if is_command(message,['chew','devour','eat','kill','munch'],True) and user_role == "White Werewolf": # TODO return todo() '''wager''' # The devil's command if is_command(message,['choose','wager']) and user_role == "Devil": # TODO return todo() if is_command(message,['choose','wager'],True) and user_role == "Devil": # TODO return todo() '''enchant''' # The flute player's command if is_command(message,['enchant','flute']) and user_role == "Flute Player": # TODO return todo() if is_command(message,['enchant','flute'],True) and user_role == "Flute Player": # TODO return todo() '''unite''' # The horseman's command if is_command(message,['apocalypse','clean','unite']) and user_role == "Horseman": # TODO return todo() if is_command(message,['apocalypse','clean','unite'],True) and user_role == "Horseman": # TODO return todo() '''guess''' # The ice king's command to add a guess about a user to their list. # Note that this command could/should be usable at any time, as long as the submit command isn't if is_command(message,['add','guess','freeze']) and user_role == "Ice King": # TODO return todo() if is_command(message,['add','guess','freeze'],True) and user_role == "Ice King": # TODO return todo() '''submit''' # The ice king's command to submit the list of people of whom they have guessed their roles. if is_command(message,['guess_that','freeze_all','submit']) and user_role == "Ice King": # TODO return todo() if is_command(message,['guess_that','freeze_all','submit'],True) and user_role == "Ice King": # TODO return todo() '''powder''' # Powder a player if is_command(message,['creeper','powder']) and user_role == "Pyromancer": # TODO return todo() if is_command(message,['creeper','powder'],True) and user_role == "Pyromancer": # TODO return todo() '''abduct''' # To kidnap players if is_command(message,['abduct','add','kidnap','swamp']) and user_role == "The Thing": # TODO return todo() if is_command(message,['abduct','add','kidnap','swamp'],True) and user_role == "The Thing": # TODO return todo() '''create_swamp''' # To create a new swamp with all victims if is_command(message,['abduct_all','create_swamp','start_cliche_horror_movie']) and user_role == "The Thing": # TODO return todo() if is_command(message,['abduct_all','create_swamp','start_cliche_horror_movie'],True) and user_role == "The Thing": # TODO return todo() # ============================================================= # # EVERYONE # # ============================================================= '''age''' # Allows users to set their age. if is_command(message,['age']): # TODO return todo() if is_command(message,['age'],True): # TODO return todo() '''profile''' # This command allows one to view their own profile # When giving another player's name, view that player's profile if is_command(message,['profile']): # TODO return todo() if is_command(message,['profile'],True): # TODO return todo() '''signup''' # This command signs up the player with their given emoji, assuming there is no game going on. if is_command(message,['signup']): emojis = check.emojis(message) choice_emoji = "" if emojis == False: msg = "**Incorrect syntax:** `" + prefix + "signup <emoji>`\n\nExample: `" + prefix + "signup :smirk:`" return [Mailbox().respond(msg,True)] for emoji in emojis: if emoji_to_player(emoji) == None: choice_emoji = emoji break if isParticipant(user_id,True,True): if choice_emoji == "": return [Mailbox().respond("You are already signed up with the {} emoji! Also, your emoji was occupied.".format(db_get(user_id,'emoji')),True)] db_set(user_id,'emoji',choice_emoji) reaction = Mailbox().respond("You have successfully changed your emoji to the {} emoji!".format(choice_emoji)) return [reaction.spam("<@{}> has changed their emoji to the {} emoji.".format(user_id,choice_emoji))] if emoji == "": if len(choice_emojis) == 1: return [Mailbox().respond("I am sorry! Your chosen emoji was already occupied.",True)] return [Mailbox().respond("I am sorry, but all of your given emojis were already occupied! Such bad luck.",True)] signup(user_id,message.author.name,choice_emoji) reaction = Mailbox().respond("You have successfully signed up with the {} emoji!".format(choice_emoji)) return [reaction.spam("<@{}> has signed up with the {} emoji.".format(user_id,choice_emoji))] # Help command if is_command(message,['signup'],True): msg = "**Usage:** `" + prefix + "signup <emoji>`\n\nExample: `" + prefix + "signup :smirk:`" return [Mailbox().respond(msg,True)] if message.content.startswith(prefix): return [Mailbox().respond("Sorry bud, couldn't find what you were looking for.",True)] return []
def is_command(message, commandtable, help=False): return check.is_command(message, commandtable, help, prefix)
def process(message, isGameMaster=False, isAdmin=False, isPeasant=False): user_id = message.author.id message_channel = message.channel.id help_msg = "**List of commands:**\n" args = message.content.split(' ') # ============================================================= # # BOT COMMANDS # # ============================================================= if isPeasant == True: if check.is_command(message, ['success'], False, unip): token = args[1] choice = args[2] if box.token_status(token) != 1: return [Mailbox().respond("Wrong status, buddy.")] data = box.get_token_data(token) given_options = [int(data[3]), int(data[4]), int(data[5])] if int(choice) not in given_options: return [ Mailbox().respond("Invalid choice!", True).spam( "A webhook has given an invalid bug. This means one of the following two things;\n1. There's bug;\n2. Someone's trying to hack the bots through a webhook.\n\nBoth are not good." ) ] box.add_choice(token, choice) invt.take_item(int(box.get_token_data(token)[1]), int(choice[1:4]), int(choice[4:7])) return [ Mailbox().respond("Got it! *(I hope.)* Thanks.", True).thank(box.get_token_data(token)[11]) ] # ============================================================= # # ADMINISTRATOR # # ============================================================= if isAdmin == True: help_msg += "\n __Admin commands:__\n" if is_command(message, ['gift']): target = check.users(message) if not target: return [ Mailbox().respond( "No target provided! Please provide a target.", True) ] answer = Mailbox() for user_id in target: answer.gift(user_id) return [answer] if is_command(message, ['botanswer']): return [ Mailbox().respond( "Sounds pretty cool! How about you did something about it? *cough cough*" ) ] elif is_command(message, ['delete_category', 'start']): return [ Mailbox().respond(PERMISSION_MSG.format("Administrator"), True) ] # ============================================================= # # GAME MASTERS # # ============================================================= if isGameMaster == True: help_msg += "\n__Game Master commands:__\n" elif is_command(message, []): return [Mailbox().respond(PERMISSION_MSG.format("Game Master"), True)] # ============================================================= # # PARTICIPANTS # # ============================================================= if isParticipant(user_id): help_msg += "\n__Participant commands:__\n" user_undead = int(db_get(user_id, 'undead')) elif is_command(message, []): return [Mailbox().respond(PERMISSION_MSG.format("Participant"), True)] # ============================================================= # # EVERYONE # # ============================================================= help_msg += '\n\n' if is_command(message, ['lead']): number = check.numbers(message) if not number: return [Mailbox().respond(gen.gain_leaderboard(user_id), True)] return [ Mailbox().respond(gen.gain_leaderboard(user_id, max(number)), True) ] if is_command(message, ['lead'], True): msg = "**Usage:** Gain a list of the most active users on the server.\n\n`" + prefix + "leaderboard <number>`\n\n" msg += "**Example:** `" + prefix + "lead 10`.\nThe number is optional, and doesn't have to be given." help_msg += "`" + prefix + "leaderboard` - See an activity leaderboard.\n" if is_command(message, ['refer']): target = check.users(message, 1) if target[0] == user_id: return [ Mailbox().respond("Sorry, bud! You cannot refer yourself.") ] if not target: return [ Mailbox().respond( "No target provided! Please provide us with a target!") ] if gen.update_refer(user_id, target[0]) == True: return [ Mailbox().respond( "Alright! Expect you and <@{}> to have some extra luck getting a lootbox soon... ;)" .format(target[0])).gift(user_id).gift(target[0]) ] return [ Mailbox().respond("**ERROR:** You have already referred someone!") ] if is_command(message, ['rr', 'roulette', 'suicide']): return [roulette.surrender(True), roulette.take_shot(message)] if is_command(message, ['rr', 'roulette', 'suicide'], True): msg = "**Usage:** Play a game of Russian roulette!\n\n`" + prefix + "rr`\n\nTry it out! It's fun." return [Mailbox().respond(msg, True)] help_msg += "`" + prefix + "rr` - Play some Russian roulette!\n" if is_command(message, ['rs', 'roulscore', 'rscore']): target = check.users(message, 1) if not target: return [roulette.profile(message.author.id)] return [roulette.profile(target[0])] if is_command(message, ['rs', 'roulscore', 'rscore'], True): msg = "**Usage:** Check your current game progress.\n\n`" + prefix + "rs <user>`\n\n" msg += "**Example:** `" + prefix + "rs @Randium#6521`\nMentioning a user is optional." return [Mailbox().respond(msg, True)] help_msg += "`" + prefix + "rs` - See Russian Roulette score.\n" if roulette.is_playing(message.author): if is_command(message, ['surrender']): return [roulette.surrender(False, message.author)] if is_command(message, ['surrender'], True): msg = "**Usage:** Leave the game if you think you're gonna die.\n\n`" + prefix + "surrender`\n\nLeaving the game counts as a loss, but not as a death." help_msg += "`" + prefix + "surrender` - Leave the Russian roulette game.\n" # Profile commands profile_commands = process_profile(message=message, is_game_master=isGameMaster, is_admin=isAdmin, is_peasant=isPeasant) if profile_commands: return profile_commands help_msg += "\n`" + prefix + "age` - Set your age\n" help_msg += "`" + prefix + "bio` - Set your bio\n" help_msg += "`" + prefix + "gender` - Set your gender\n" help_msg += "`" + prefix + "profile` - View a player's profile\n" # -------------------------------------------------------------- # HELP # -------------------------------------------------------------- help_msg += "\n\n*If you have any more questions, feel free to ask any of the Game Masters!*" '''help''' if is_command(message, ['help']) and is_command(message, ['help'], True) == False: return [Mailbox().respond(help_msg, True)] if is_command(message, ['help'], True): answer = Mailbox().respond( "Hey there! `" + prefix + "help` will give you a list of commands that you can use.") answer.respond_add( "\nIf you have any questions, feel free to ask any of the Game Masters!" ) return [answer] if message.content.startswith(prefix): return [ roulette.surrender(True), Mailbox().respond( "Sorry bud, couldn't find what you were looking for.", True) ] return [roulette.surrender(True)]