예제 #1
0
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!')
예제 #2
0
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`'
    )
예제 #3
0
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`")
예제 #4
0
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`")
예제 #5
0
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)
예제 #6
0
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)
예제 #7
0
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)
예제 #8
0
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)
예제 #9
0
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)
예제 #10
0
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`')