async def mute(cmd, message, args): channel = message.channel server = message.server if not message.mentions: await cmd.bot.send_message(message.channel, cmd.help()) return user_q = message.mentions[0] overwrite = discord.PermissionOverwrite() overwrite.send_messages = False if message.author is not user_q: if check_man_msg(message.author, channel) and check_man_roles( message.author, channel): if args: try: timeout_period = int(args[0]) except: embed = discord.Embed( color=0xDB0000, title='❗ Invalid number of seconds for the timeout.') await cmd.bot.send_message(message.channel, None, embed=embed) return else: timeout_period = None for chan in server.channels: if str(chan.type).lower() == 'text': if check_write(user_q, chan): await cmd.bot.edit_channel_permissions( chan, user_q, overwrite) embed = discord.Embed(color=0x66CC66, title='✅ ' + user_q.name + ' muted.') await cmd.bot.send_message(message.channel, None, embed=embed) if timeout_period: await asyncio.sleep(timeout_period) for chan in server.channels: if str(chan.type).lower() == 'text': if not check_write(user_q, chan): await cmd.bot.delete_channel_permissions( chan, user_q) embed = discord.Embed(color=0x66CC66, title='✅ ' + user_q.name + ' can write again.') await cmd.bot.send_message(message.channel, None, embed=embed) else: out_content = discord.Embed( type='rich', color=0xDB0000, title= '⛔ Insufficient Permissions. Requires Manage Messages and Manage Roles Permissions.' ) await cmd.bot.send_message(message.channel, None, embed=out_content)
async def unmute(cmd, message, args): channel = message.channel server = message.server if not message.mentions: await cmd.bot.send_message(message.channel, cmd.help()) return user_q = message.mentions[0] if message.author is not user_q: if check_man_msg(message.author, channel) and check_man_roles( message.author, channel): for chan in server.channels: if str(chan.type).lower() == 'text': if not check_write(user_q, chan): await cmd.bot.delete_channel_permissions(chan, user_q) embed = discord.Embed(color=0x66CC66, title=':white_check_mark: ' + user_q.name + ' can write again.') await cmd.bot.send_message(message.channel, None, embed=embed) else: out_content = discord.Embed( type='rich', color=0xDB0000, title= ':no_entry: Insufficient Permissions. Manage Messages and Manage Roles Permissions Required.' ) await cmd.bot.send_message(message.channel, None, embed=out_content)
async def announcementchannel(cmd, message, args): if not check_admin(message.author, message.channel): # user is no server admin embed = discord.Embed(title='⛔ Unpermitted. Server Admin Only.', color=0xDB0000) else: if message.channel_mentions: # argument exists and is a channel newchannel = message.channel_mentions[0] if check_write(message.server.get_member(cmd.bot.user.id), newchannel): # channel can be written to -> turn on announcements and set channelid cmd.db.set_settings(message.server.id, 'Announcement', True) cmd.db.set_settings(message.server.id, 'AnnouncementChannel', newchannel.id) embed = discord.Embed( title='✅ Announcements will be posted to #' + newchannel.name, color=0x66CC66) else: embed = discord.Embed(title='⛔ Missing write permissions for this channel', color=0xDB0000) else: if len(args) == 0: # no argument given, announcements will be turned off cmd.db.set_settings(message.server.id, 'Announcement', False) embed = discord.Embed(title='✅ Announcements turned OFF for this server', color=0x66CC66) embed.add_field(name='Note:', value='Use "' + Prefix + 'announcementchannel #channel_name" to turn them back on.') else: # given argument is not a channel embed = discord.Embed(title=':x: "' + args[0] + '" is not a channel', color=0xDB0000) embed.add_field(name='Note:', value='Enter a channel in this format: "#channel_name" or leave blank to turn announcements off.') await cmd.bot.send_message(message.channel, None, embed=embed)
async def mute(cmd, message, args): channel = message.channel server = message.server if not message.mentions: await cmd.bot.send_message(message.channel, cmd.help()) return user_q = message.mentions[0] overwrite = PermissionOverwrite() overwrite.send_messages = False if message.author is not user_q: if check_man_msg(message.author, channel) and check_man_roles( message.author, channel): try: for chan in server.channels: if str(chan.type).lower() == 'text': if check_write(user_q, chan): await cmd.bot.edit_channel_permissions( chan, user_q, overwrite) await cmd.bot.send_message( message.channel, 'Execution Successful.\nUser **' + user_q.name + '** was muted') except Exception as e: cmd.log.error(e) await cmd.bot.send_message(message.channel, str(e)) else: response = await cmd.bot.send_message( message.channel, 'Only a user with the **Manage Messages and Manage Roles** privilege can use this command. :x:' ) await asyncio.sleep(10) await cmd.bot.delete_message(response)
async def blind(cmd, message, args): channel = message.channel server = message.server if not message.mentions: await cmd.bot.send_message(message.channel, cmd.help()) return user_q = message.mentions[0] overwrite = discord.PermissionOverwrite() overwrite.read_messages = False if message.author is not user_q: if check_man_msg(message.author, channel) and check_man_roles( message.author, channel): for chan in server.channels: if not chan.is_default: if str(chan.type).lower() == 'text': if check_write(user_q, chan): await cmd.bot.edit_channel_permissions( chan, user_q, overwrite) embed = discord.Embed(color=0x66CC66, title='✅ ' + user_q.name + ' Was Blinded!') await cmd.bot.send_message(message.channel, None, embed=embed) else: out_content = discord.Embed( color=0xDB0000, title= '⛔ Insufficient Permissions. Users with Ban permissions only.') await cmd.bot.send_message(message.channel, None, embed=out_content)