async def on_raw_reaction_add(payload): message_id = payload.message_id servers = rw_json.open_json('servers.json') ROLE_MESSAGE_ID = servers[str(payload.guild_id)]['role_message_id'] if message_id == int(ROLE_MESSAGE_ID): guild_id = payload.guild_id guild = discord.utils.find(lambda g: g.id == guild_id, bot.guilds) if payload.emoji.name == '🟧': # I had to use this since I used bot message and built-in emoji for choosing role role = discord.utils.get(guild.roles, name='SMP') elif payload.emoji.name == '🟦': # I had to use this since I used bot message and built-in emoji for choosing role role = discord.utils.get(guild.roles, name='SD') else: role = None print(f'Role not found for {payload.emoji.name}') if role is not None: member = discord.utils.find(lambda m: m.id == payload.user_id, guild.members) if member is not None: await member.add_roles(role) print(f'Done! {member} added to role {role}') else: print('Member not found!') else: print('Role not found!')
async def _set_channel(ctx): servers = rw_json.open_json('servers.json') channel_aliases = list(servers[str( ctx.guild.id)]['channels_aliases'].keys()) await ctx.send( f'`Your custom channels aliases are : {channel_aliases}. You can find them by typing .get_channel channel_alias`' )
async def _get_channel(ctx, alias): servers = rw_json.open_json('servers.json') this_server = servers[str(ctx.guild.id)] if alias in this_server['channels_aliases']: channel = bot.get_channel(int(this_server['channels_aliases'][alias])) await ctx.send(f'{channel.mention} is your {alias} channel') else: await ctx.send(f"`You haven't set a channel as {alias} channel`")
async def _delete_channel(ctx, alias): servers = rw_json.open_json('servers.json') if alias in servers[str(ctx.guild.id)]['channels_aliases'].keys(): del servers[str(ctx.guild.id)]['channels_aliases'][alias] rw_json.write_json('servers.json', servers) await ctx.send(f'`You are no longer have {alias} channel now`') else: await ctx.send(f"`You haven't set a channel as {alias} channel`")
async def on_guild_join(guild): servers = rw_json.open_json('servers.json') servers[str(guild.id)] = { 'server_id': str(guild.id), 'server_name': str(guild.name), 'prefix': '.', 'channels_aliases': dict() } rw_json.write_json('servers.json', servers)
async def _choose_role(ctx): servers = rw_json.open_json('servers.json') msg = string_cmd.get_response('choose_role') message = await ctx.send(msg) message_id = message.id servers[str(ctx.guild.id)]['role_message_id'] = str(message_id) await message.add_reaction('🟦') await message.add_reaction('🟧') rw_json.write_json('servers.json', servers)
async def _send_channel(ctx, alias, *, message): servers = rw_json.open_json('servers.json') try: channel_id = servers[str(ctx.guild.id)]['channels_aliases'][alias] if channel_id != '' or channel_id is not None: channel = bot.get_channel(int(channel_id)) await channel.send(message) else: response = f"`Key not found in json for {alias} channel`" await ctx.send(response) except: response = f"`You haven't set a channel as {alias} channel. Please enter a channel and type .set_channel {alias}`" await ctx.send(response)
async def changeprefix(ctx, prefix): servers = rw_json.open_json('servers.json') servers[str(ctx.guild.id)]['prefix'] = prefix rw_json.write_json('servers.json', servers)
async def on_guild_remove(guild): servers = rw_json.open_json('servers.json') servers.pop(str(guild.id)) rw_json.write_json('servers.json', servers)
async def _set_channel(ctx, alias): servers = rw_json.open_json('servers.json') servers[str(ctx.guild.id)]['channels_aliases'][alias] = str(ctx.channel.id) rw_json.write_json('servers.json', servers) await ctx.send(f'`You have set this channel as {alias} channel`')