コード例 #1
0
ファイル: settings.py プロジェクト: yumenetwork/Yume-Bot
 async def setting_update(self, ctx):
     for gguild in self.bot.guilds:
         guild = GuildDB.get_one(gguild.id)
         for role in gguild.roles:
             if GuildDB.exists_in_admin(role.id, ctx.guild.id):
                 GuildDB.remove_admin(role.id, ctx.guild.id)
             if role.permissions.administrator or role.permissions.manage_guild is True:
                 GuildDB.set_admin(role.id, gguild.id)
             elif role.permissions.ban_members or role.permissions.kick_members is True:
                 GuildDB.set_mod(role.id, gguild.id)
         GuildDB.update_guild(guild)
     await ctx.send("Done")
コード例 #2
0
ファイル: settings.py プロジェクト: yumenetwork/Yume-Bot
    async def role(self, ctx, value, role: discord.Role = None):
        if not role:
            return
        guild = GuildDB.get_one(ctx.message.guild.id)
        if GuildDB.exists_in_admin(role.id, ctx.guild.id):
            GuildDB.remove_admin(role.id, ctx.guild.id)
        if value.lower() == 'mod':
            GuildDB.set_mod(role.id, ctx.message.guild.id)
        elif value.lower() == 'admin':
            GuildDB.set_admin(role.id, ctx.message.guild.id)
        else:
            return

        GuildDB.update_guild(guild)
        await ctx.send("Updating...", delete_after=3)
コード例 #3
0
ファイル: settings.py プロジェクト: yumenetwork/Yume-Bot
    async def on_guild_join(self, guild):
        guildY = GuildDB.get_one(guild.id)

        for role in guild.roles:
            if GuildDB.exists_in_admin(role.id, guild.id):
                GuildDB.remove_admin(role.id, guild.id)
            if role.permissions.administrator or role.permissions.manage_guild is True:
                GuildDB.set_admin(role.id, guild.id)
            elif role.permissions.ban_members or role.permissions.kick_members is True:
                GuildDB.set_mod(role.id, guild.id)

        if guild.id == '264445053596991498':
            return
        try:
            await guild.owner.send(
                f"Thank you for adding the YumeBot to your guild!\n"
                f"In order to configure the YumeBot and to be able to use it fully"
                f" we ask you to make the command `--setting` in any channel of your guild **{guild.name}**"
                "Thank you for your understanding.\n\n"
                f"If you need help, do not hesitate to contact us on our discord: **invite.gg/yumenetwork**\n"
                f"__The YumeNetwork__")
        except discord.HTTPException:
            return
コード例 #4
0
ファイル: settings.py プロジェクト: yumenetwork/Yume-Bot
    async def setup(self, ctx):

        # Get guild param
        guild = GuildDB.get_one(ctx.message.guild.id)

        # Create check
        def check(reaction, user):
            return (user == ctx.message.author) and str(reaction.emoji)

        def msgcheck(m):
            return m.author == ctx.message.author

        # Check if already setup
        if guild.setup:
            return await ctx.send(
                "The setup has already been done. "
                "If you want to restore it you should use : **--setting reset**"
            )

        reactions = ['✅', '❌']  # Store reactions

        await ctx.send("Hey ! Let's setup your server ;) ", delete_after=3)

        # Create logging Channel
        guild.logging = True
        overwrite = {
            ctx.guild.default_role:
            discord.PermissionOverwrite(send_messages=False),
            ctx.guild.me:
            discord.PermissionOverwrite(send_messages=True)
        }

        log = discord.utils.get(ctx.guild.text_channels, name="yumebot-log")
        if not isinstance(log, discord.TextChannel):
            try:
                log = await ctx.guild.create_text_channel("yumebot-log",
                                                          overwrites=overwrite)
            except discord.Forbidden:
                await ctx.send("I don't have all the permissions required")

            except discord.HTTPException:
                print("HTTP Exception in setting yumebot-log")

            else:
                guild.log_chan = str(log.id)

        # Welcome / Leave
        msg = await ctx.send("Do you want to activate the Welcome/Leave msg ?")

        [await msg.add_reaction(reaction) for reaction in reactions]
        try:
            reaction, user = await self.bot.wait_for('reaction_add',
                                                     check=check,
                                                     timeout=120)
        except asyncio.TimeoutError:
            await ctx.send('👎', delete_after=3)
        else:
            if reaction.emoji == '✅':
                await msg.delete()
                msg = await ctx.send(
                    'Please mention a Channel !\nEx: `#general`')
                try:
                    m = await self.bot.wait_for('message',
                                                timeout=120,
                                                check=msgcheck)
                except asyncio.TimeoutError:
                    return await ctx.send('👎', delete_after=3)
                try:
                    text_channel = m.channel_mentions[0]
                except IndexError:
                    text_channel = ctx.message.channel

                guild.greet = True
                guild.greet_chan = str(text_channel.id)
            elif reaction.emoji == '❌':
                guild.greet = False
        await msg.delete()

        guild.color = False
        guild.blacklist = False
        print("send detecting")

        # Mods & Admins role
        await ctx.send('Detecting mod and admin role...', delete_after=5)
        for role in ctx.guild.roles:
            if GuildDB.exists_in_admin(role.id, ctx.guild.id):
                GuildDB.remove_admin(role.id, ctx.guild.id)
            if role.permissions.administrator or role.permissions.manage_guild is True:
                GuildDB.set_admin(role.id, ctx.message.guild.id)
            elif role.permissions.ban_members or role.permissions.kick_members is True:
                GuildDB.set_mod(role.id, ctx.message.guild.id)
        await ctx.send('Setup is now done ! Have a good time')

        guild.setup = True
        GuildDB.update_guild(guild)