async def blacklist_delete(self, ctx, value: bool): """Toggle whether delete unsuccessful tries of command use""" db.update_setting(ctx.guild.id, "delete_blacklisted", util.bool_to_int(value)) await ctx.send( f":white_check_mark: Deletion of unsuccessful command usage is now " f"**{'on' if value else 'off'}**")
async def command_eligibility(self, ctx, value: bool): """Change whether everyone can add commands, or only server managers""" db.update_setting(ctx.guild.id, "custom_commands_everyone", util.bool_to_int(value)) if value: await ctx.send("Everyone can now add custom commands!") else: await ctx.send("Adding commands now requires the `manage_server` permission!")
async def autoresponses(self, ctx, value: bool): """Disable/enable automatic responses to certain messages and easter eggs.""" db.update_setting(ctx.guild.id, "autoresponses", util.bool_to_int(value)) await ctx.send( f"Automatic message responses **{'enabled' if value else 'disabled'}**" )
async def welcome_channel(self, ctx, *, channel: ChannelSetting): """Set the welcome messages channel.""" db.update_setting(ctx.guild.id, "welcome_channel", (None if channel is None else channel.id)) if channel is None: await ctx.send("Welcome messages disabled.") else: await ctx.send(f"Welcome channel set to {channel.mention}")
async def logmessages_bans(self, ctx, *, channel: ChannelSetting): """Set channel where bans are announced.""" db.update_setting(ctx.guild.id, "bans_channel", (None if channel is None else channel.id)) if channel is None: await ctx.send("Ban messages disabled.") else: await ctx.send(f"Bans will now be logged in {channel.mention}")
async def logmessages_messages(self, ctx, *, channel: ChannelSetting): """Set channel where deleted messages are logged.""" db.update_setting(ctx.guild.id, 'deleted_messages_channel', (None if channel is None else channel.id)) if channel is None: await ctx.send("Deleted messages logs disabled.") else: await ctx.send( f"Deleted messages will now be logged in {channel.mention}")
async def case(self, ctx, boolean): """Toggle case sensitivity.""" if boolean.lower() == 'true': newvalue = 1 elif boolean.lower() == 'false': newvalue = 0 else: return await ctx.send("Invalid value, use `true` or `false`") db.update_setting(ctx.guild.id, "rolepicker_case", newvalue) await ctx.send(f"Roles are now {('' if newvalue == 1 else 'not ')}case sensitive!")
async def channel(self, ctx, channel): """Set the channel you can add roles in.""" this_channel = await util.get_textchannel(ctx, channel) if this_channel is None: return await ctx.send(":warning: Could not get this channel") db.update_setting(ctx.guild.id, "rolepicker_channel", this_channel.id) db.update_setting(ctx.guild.id, "rolepicker_enabled", 0) await ctx.send(f"Rolepicker channel set to {this_channel.mention}\n" f"Now enable the rolepicker once you want messages in the channel to be deleted.")
async def goodbye_message(self, ctx, *, message): """Change the goodbye message. Usage: >logger goodbye message <message...> >logger goodbye message default """ if message.lower() == "default": db.update_setting(ctx.guild.id, "goodbye_message", None) return await ctx.send("Goodbye message has been reset to default.") db.update_setting(ctx.guild.id, "goodbye_message", message) await ctx.send(f"New Goodbye message set.\n```{message}```Preview:") await ctx.send( util.create_goodbye_message(ctx.author, ctx.guild, message))
async def welcome_message(self, ctx, *, message): """Change the welcome message. Usage: >logger welcome message <message...> >logger welcome message default """ if message.lower() == 'default': db.update_setting(ctx.guild.id, "welcome_message", None) return await ctx.send("Welcome message has been reset to default.") welcomepreview = util.create_welcome_embed(ctx.author, ctx.guild, message) db.update_setting(ctx.guild.id, "welcome_message", message) await ctx.send(f"New welcome message set:\n```{message}```Preview:", embed=welcomepreview)
async def muterole(self, ctx, *, role): """Set the mute role. Usage: >muterole <role> >muterole remove """ if role.lower() in ["none", "remove", "delete"]: db.update_setting(ctx.guild.id, "muterole", None) return await ctx.send("Muterole removed!") thisrole = await util.get_role(ctx, role) if thisrole is None: return await ctx.send(":warning: Unknown role") db.update_setting(ctx.guild.id, "muterole", thisrole.id) await ctx.send(embed=discord.Embed( description=f"Muting someone now gives them {thisrole.mention}"))
async def autorole(self, ctx, *, role): """Set the role given automatically to new members. Usage: >autorole <role> >autorole remove """ if role.lower() in ["none", "remove", "delete", "disable"]: db.update_setting(ctx.guild.id, "autorole", None) return await ctx.send("Autorole removed!") thisrole = await util.get_role(ctx, role) if thisrole is None: return await ctx.send(":warning: Unknown role") db.update_setting(ctx.guild.id, "autorole", thisrole.id) await ctx.send(embed=discord.Embed( description= f"New members will now automatically get {thisrole.mention}"))
async def starboard_emoji(self, ctx, emoji): """Change the emoji to use for starboard.""" if emoji[0] == "<": # is custom emoji emoji_obj = await util.get_emoji(ctx, emoji) if emoji_obj is None: return await ctx.send(":warning: I don't know this emoji!") db.update_setting(ctx.guild.id, "starboard_emoji_is_custom", 1) db.update_setting(ctx.guild.id, "starboard_emoji", emoji_obj.id) await ctx.send( f"Starboard emoji updated! Now looking for {emoji} reactions (emoji id `{emoji_obj.id}`)" ) else: # unicode emoji if unicode_codes.UNICODE_EMOJI.get(emoji) is None: return await ctx.send(":warning: I don't know this emoji!") db.update_setting(ctx.guild.id, "starboard_emoji_is_custom", 0) db.update_setting(ctx.guild.id, "starboard_emoji", emoji) await ctx.send( f"Starboard emoji updated! Now looking for {emoji} reactions")
async def starboard_disable(self, ctx): """Disable the starboard.""" db.update_setting(ctx.guild.id, "starboard_toggle", 0) await ctx.send("Starboard **disabled**")
async def logmessages_levelups(self, ctx, state: bool): """Enable or disable levelup messages.""" db.update_setting(ctx.guild.id, "levelup_toggle", (1 if state else 0)) await ctx.send( f"Levelup messages **{('enabled' if state else 'disabled')}**")
async def enable(self, ctx): """Enable the rolepicker. (if disabled)""" db.update_setting(ctx.guild.id, "rolepicker_enabled", 1) await ctx.send("Rolepicker is now **enabled**")
async def disable(self, ctx): """Disable the rolepicker.""" db.update_setting(ctx.guild.id, "rolepicker_enabled", 0) await ctx.send("Rolepicker is now **disabled**")
async def welcome_embed(self, ctx, state: bool): """Toggle whether welcome messages use embed or only text.""" db.update_setting(ctx.guild.id, "welcome_embed", (1 if state else 0)) await ctx.send( f"Welcome message embeds are now **{('enabled' if state else 'disabled')}**" )
async def starboard_channel(self, ctx, channel: discord.TextChannel): """Set starboard channel""" db.update_setting(ctx.guild.id, "starboard_channel", channel.id) await ctx.send(f"Starboard channel set to {channel.mention}")
async def starboard_amount(self, ctx, amount: int): """Change the amount of stars required""" db.update_setting(ctx.guild.id, "starboard_amount", amount) await ctx.send( f"Messages now need `{amount}` stars to get to the starboard.")