Ejemplo n.º 1
0
    async def apexstat_error(self, ctx, error):
        languageserver = await settings.collectionlanguage.find_one(
            {"guild_id": ctx.guild.id})
        if languageserver is None:
            message = await ctx.send(
                embed=languageEmbed.languageembed(self, ctx))
            await message.add_reaction('👍')

        else:
            server_language = languageserver["Language"]

            if server_language == "Thai":
                if isinstance(error, commands.MissingRequiredArgument):
                    embed = nextcord.Embed(
                        colour=0x983925,
                        description=
                        f" ⚠️``{ctx.author}`` จะต้องพิมใส่ชื่อของผู้เล่น ``{settings.COMMAND_PREFIX}apexstat (username)``"
                    )
                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed)
                    await message.add_reaction('⚠️')

            if server_language == "English":
                if isinstance(error, commands.MissingRequiredArgument):
                    embed = nextcord.Embed(
                        colour=0x983925,
                        description=
                        f" ⚠️``{ctx.author}`` need to specify a username ``{settings.COMMAND_PREFIX}apexstat (username)``"
                    )
                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed)
                    await message.add_reaction('⚠️')
Ejemplo n.º 2
0
    async def english(self, ctx):
        server = await settings.collectionlanguage.find_one(
            {"guild_id": ctx.guild.id})
        if server is None:
            newserver = {"guild_id": ctx.guild.id, "Language": "English"}

            await settings.collectionlanguage.insert_one(newserver)
            embed = nextcord.Embed(
                colour=0xFED000,
                title="Language setting",
                description=f"Language have been set to English")
            embed.set_footer(text=f"┗Requested by {ctx.author}")

            message = await ctx.send(embed=embed)
            await message.add_reaction('✅')

        else:
            await settings.collectionlanguage.update_one(
                {"guild_id": ctx.guild.id}, {"$set": {
                    "Language": "English"
                }})
            embed = nextcord.Embed(
                colour=0xFED000,
                title="Language setting",
                description=f"Language have been set to English")
            embed.set_footer(text=f"┗Requested by {ctx.author}")

            message = await ctx.send(embed=embed)
            await message.add_reaction('✅')
Ejemplo n.º 3
0
    async def thai(self, ctx):
        server = await settings.collectionlanguage.find_one(
            {"guild_id": ctx.guild.id})
        if server is None:
            newserver = {"guild_id": ctx.guild.id, "Language": "Thai"}
            await settings.collectionlanguage.insert_one(newserver)
            embed = nextcord.Embed(colour=0xFED000,
                                   title="ตั้งค่าภาษา",
                                   description=f"ภาษาได้ถูกตั้งเป็น Thai")
            embed.set_footer(text=f"┗Requested by {ctx.author}")

            message = await ctx.send(embed=embed)
            await message.add_reaction('✅')

        else:
            await settings.collectionlanguage.update_one(
                {"guild_id": ctx.guild.id}, {"$set": {
                    "Language": "Thai"
                }})
            embed = nextcord.Embed(colour=0xFED000,
                                   title="ตั้งค่าภาษา",
                                   description=f"ภาษาได้ถูกอัพเดตเป็น Thai")
            embed.set_footer(text=f"┗Requested by {ctx.author}")

            message = await ctx.send(embed=embed)
            await message.add_reaction('✅')
Ejemplo n.º 4
0
    async def eval(self, ctx, *, content):
        if content.casefold().strip() == "help":
            await ctx.send(embed=nextcord.Embed(
                title="Statement Eval - Help",
                description=
                ("This command allows you to run a single statement and see the results. For security "
                 "reasons what code you can run is very limited."),
                color=0xFBBC05,
            ), )
            return

        code = re.sub(r"^\s*(```(python|py)|`?)\s*|\s*(```|`)\s*$", "",
                      content)
        title = "✅ Eval - Success"
        color = BLUE

        code_message = f"\n```py\n>>> {code}"

        out, err, duration = await self.code_runner("eval", code)

        output = out
        if err:
            title = "❌ Eval - Exception Raised"
            color = YELLOW
            output = err

        await ctx.send(
            embed=nextcord.Embed(
                title=title,
                description=f"{code_message.strip()}\n{output}\n```",
                color=color,
            ).set_footer(text=f"Completed in {duration:0.4f} milliseconds"),
            reference=ctx.message,
            mention_author=True,
        )
Ejemplo n.º 5
0
    async def tickle(self, ctx, member: nextcord.Member = None):
        languageserver = await settings.collectionlanguage.find_one(
            {"guild_id": ctx.guild.id})
        if languageserver is None:
            message = await ctx.send(
                embed=languageEmbed.languageembed(self, ctx))
            await message.add_reaction('👍')

        else:
            if member is None:
                async with aiohttp.ClientSession() as session:
                    async with session.get(
                            "https://nekos.life/api/v2/img/tickle") as r:
                        r = await r.json()
                        embed = nextcord.Embed(colour=0xFC7EF5, title="tickle")
                        url = r['url']
                        embed.set_image(url=url)
                        embed.set_footer(text=f"┗Requested by {ctx.author}")

                        message = await ctx.send(embed=embed)
                        await message.add_reaction('❤️')
            else:
                async with aiohttp.ClientSession() as session:
                    async with session.get(
                            "https://nekos.life/api/v2/img/tickle") as r:
                        r = await r.json()
                        embed = nextcord.Embed(colour=0xFC7EF5, title="tickle")
                        url = r['url']
                        embed.set_image(url=url)
                        embed.set_footer(text=f"┗Requested by {ctx.author}")

                        message = await ctx.send(f"{member.mention}",
                                                 embed=embed)
                        await message.add_reaction('❤️')
Ejemplo n.º 6
0
    async def removeroleall(self,ctx, role: nextcord.Role):
        language = await settings.collectionlanguage.find_one({"guild_id":ctx.guild.id})
        if language is None:
            message = await ctx.send(embed=languageEmbed.languageembed(self,ctx))
            await message.add_reaction('👍')

        else:
            server_language = language["Language"]
            
            if server_language == "Thai":
                i = 0
                embed = nextcord.Embed(
                    title = "ลบยศสมาชิกทุกคน",
                    colour = 0x00FFFF,
                    description = f"กําลังดําเนินการลบยศ {role} กับสมาชิกทั้งหมด {ctx.guild.member_count}คน"
                )
                message = await ctx.send(embed=embed)

                for user in ctx.guild.members:

                    try:
                        await user.remove_roles(role)
                        time.sleep(0.5)
                        i +=1

                    except nextcord.Forbidden:
                        pass

                embed = nextcord.Embed(
                    title = "ลบยศสมาชิกทุกคน",
                    colour = 0x00FFFF,
                    description = f"ลบยศ {role} สมาชิกทั้งหมด {i}คนสําเร็จ"
                )
                await message.edit(embed=embed)
            
            if server_language == "English":
                i = 0
                embed = nextcord.Embed(
                    title = "remove role from all members",
                    colour = 0x00FFFF,
                    description = f"Progressing to remove role {role} from {ctx.guild.member_count} members"
                )
                message = await ctx.send(embed=embed)

                for user in ctx.guild.members:

                    try:
                        await user.remove_roles(role)
                        time.sleep(0.5)
                        i +=1

                    except nextcord.Forbidden:
                        pass
                embed = nextcord.Embed(
                    title = "remove role from all members",
                    colour = 0x00FFFF,
                    description = f"successfully remove role {role} from {i} members"
                )
                await message.edit(embed=embed)
Ejemplo n.º 7
0
    async def unban(self,ctx, *, member):
        language = await settings.collectionlanguage.find_one({"guild_id":ctx.guild.id})
        if language is None:
            message = await ctx.send(embed=languageEmbed.languageembed(self,ctx))
            await message.add_reaction('👍')

        else:
            server_language = language["Language"]
            
            if server_language == "Thai":          
                banned_users = await ctx.guild.bans()
                member_name, member_discriminator = member.split('#')
                for ban_entry in banned_users:
                    user = ban_entry.user
                    if (user.name, user.discriminator)==(member_name, member_discriminator):
                        await ctx.guild.unban(user)
                        embed = nextcord.Embed(
                            colour = 0x00FFFF,
                            title = f"ปลดเเบน {member}",
                            description = f"{member} ได้ถูกปลนเเบน"
                        )
                        embed.set_footer(text=f"┗Requested by {ctx.author}")
                        await ctx.send(embed=embed)

                    else:
                        embed = nextcord.Embed(
                            colour = 0x983925,
                            title = f"ไม่พบชื่อ {member}",
                            description = "ไม่มีชื่อนี้ในรายชื่อคนที่ถูกเเบนโปรดเช็คชื่อเเละเลขข้างหลัง"

                        )
                        embed.set_footer(text=f"┗Requested by {ctx.author}")
                        await ctx.send(embed=embed)
            
            if server_language == "English":          
                banned_users = await ctx.guild.bans()
                member_name, member_discriminator = member.split('#')
                for ban_entry in banned_users:
                    user = ban_entry.user
                    if (user.name, user.discriminator)==(member_name, member_discriminator):
                        await ctx.guild.unban(user)
                        embed = nextcord.Embed(
                            colour = 0x00FFFF,
                            title = f"unban {member}",
                            description = f"{member} have been unban"
                        )
                        embed.set_footer(text=f"┗Requested by {ctx.author}")
                        await ctx.send(embed=embed)

                    else:
                        embed = nextcord.Embed(
                            colour = 0x983925,
                            title = f"No user named {member}",
                            description = "Please check spelling and number behind the name"

                        )
                        embed.set_footer(text=f"┗Requested by {ctx.author}")
                        await ctx.send(embed=embed)
Ejemplo n.º 8
0
    async def cmd_gameinfo(self, *args, member, channel, **_):
        summ_id, name = None, None  # type: str
        if not args:
            verif = load_verif()
            if str(member.id) in verif:
                summ_id = verif[str(member.id)]
            else:
                name = member.display_name
        else:
            name = " ".join(args)
        try:
            if summ_id:
                summ_info = await panth.getSummoner(summ_id)
            else:
                summ_info = await panth.getSummonerByName(name)
        except:
            raise NotFound("Impossible de trouver l'invocateur")
        try:
            spec_data = await panth.getCurrentGame(summ_info["id"])
        except:
            return await channel.send(
                "L'invocateur n'est pas en jeu actuellement")
        msg = await channel.send(embed=nextcord.Embed(
            title="Récupération des informations ..."))
        team1 = await asyncio.gather(
            *(format_player_info(participant)
              for participant in spec_data["participants"]
              if participant["teamId"] == 100))
        team2 = await asyncio.gather(
            *(format_player_info(participant)
              for participant in spec_data["participants"]
              if participant["teamId"] == 200))

        em = nextcord.Embed(title=f"Game de {summ_info['name']}")
        em.add_field(
            name="Équipe bleu",
            value=
            f"Champions bannis :\n{' '.join([(CHAMP_ID_TO_EMOJI[str(i['championId'])] if str(i['championId']) != '-1' else CHAMP_NONE_EMOJI) for i in spec_data['bannedChampions'] if i['teamId'] == 100])}",
            inline=False)
        for i, name in enumerate(
            ["Invocateurs", "Runes et Classement", "Masteries"]):
            em.add_field(name=name,
                         value='\n'.join([player[i] for player in team1]),
                         inline=True)

        em.add_field(
            name="Équipe rouge",
            value=
            f"Champions bannis :\n{' '.join([(CHAMP_ID_TO_EMOJI[str(i['championId'])] if str(i['championId']) != '-1' else CHAMP_NONE_EMOJI) for i in spec_data['bannedChampions'] if i['teamId'] == 200])}",
            inline=False)
        for i, name in enumerate(["Invocateurs", "Runes", "Masteries"]):
            em.add_field(name=name,
                         value='\n'.join([player[i] for player in team2]),
                         inline=True)

        await msg.edit(embed=em)
Ejemplo n.º 9
0
    async def clear_error(self,ctx, error):
        language = await settings.collectionlanguage.find_one({"guild_id":ctx.guild.id})
        if language is None:
            message = await ctx.send(embed=languageEmbed.languageembed(self,ctx))
            await message.add_reaction('👍')

        else:
            server_language = language["Language"]
            
            if server_language == "Thai":
                if isinstance(error, commands.MissingRequiredArgument):
                    embed = nextcord.Embed(
                        colour = 0x983925,
                        title = "จํานวนข้อความที่ต้องการที่จะลบ",
                        description = f" ⚠️``{ctx.author}`` จะต้องใส่จํานวนของข้อความที่จะลบหลังจากคําสั่ง ``{settings.COMMAND_PREFIX}clear [จํานวน]``"
                    )
                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed ) 
                    await message.add_reaction('⚠️')

                if isinstance(error, commands.MissingPermissions):
                    embed = nextcord.Embed(
                        colour = 0x983925,
                        title = "คุณไม่มีสิทธิ์ลบข้อความ",
                        description = f"⚠️ ``{ctx.author}`` ไม่สามารถใช้งานคำสั่งนี้ได้ คุณจำเป็นต้องมีสิทธิ์ ``ลบข้อความ`` ก่อนใช้งานคำสั่งนี้"
                    )

                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed ) 
                    await message.add_reaction('⚠️')
            
            if server_language == "English":
                if isinstance(error, commands.MissingRequiredArgument):
                    embed = nextcord.Embed(
                        colour = 0x983925,
                        title = "Amount of messages",
                        description = f" ⚠️``{ctx.author}`` need to specify amount of messages to delete ``{settings.COMMAND_PREFIX}clear [จํานวน]``"
                    )
                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed ) 
                    await message.add_reaction('⚠️')

                if isinstance(error, commands.MissingPermissions):
                    embed = nextcord.Embed(
                        colour = 0x983925,
                        title = "You don't have permission",
                        description = f"⚠️ ``{ctx.author}`` You must have ``manage messages`` to be able to use this command"
                    )

                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed ) 
                    await message.add_reaction('⚠️')
Ejemplo n.º 10
0
    async def ascii(self,ctx, *, text):
        languageserver = await settings.collectionlanguage.find_one({"guild_id":ctx.guild.id})
        if languageserver is None:
            message = await ctx.send(embed=languageEmbed.languageembed(self,ctx))
            await message.add_reaction('👍')
        
        else:
            server_language = languageserver["Language"]
            
            if server_language == "Thai":
                async with aiohttp.ClientSession() as session:
                    async with session.get(f'http://artii.herokuapp.com/make?text={urllib.parse.quote_plus(text)}') as r:
                        response = await r.text()
                        if len(f'```{response}```') > 2000:
                            embed = nextcord.Embed(
                                colour = 0x983925,
                                description = f" ⚠️``{ctx.author}`` ตัวอักษรมากเกินไป ``"
                            )
                            message = await ctx.send(embed=embed ) 
                            await message.add_reaction('⚠️')
                        
                        else:
                
                            embed = nextcord.Embed(
                                colour = 0x00FFFF,
                                title = "🎨 ASCII ",
                                description = (f"```{response}```")

                            )
                            embed.set_footer(text=f"┗Requested by {ctx.author}")
                            message = await ctx.send(embed=embed)
                            await message.add_reaction('🎨')
            
            if server_language == "English": 
                async with aiohttp.ClientSession() as session:
                    async with session.get(f'http://artii.herokuapp.com/make?text={urllib.parse.quote_plus(text)}') as r:
                        response = await r.text()
                        if len(f'```{response}```') > 2000:
                            embed = nextcord.Embed(
                                colour = 0x983925,
                                description = f" ⚠️``{ctx.author}`` Too much letter ``"
                            )
                            message = await ctx.send(embed=embed ) 
                            await message.add_reaction('⚠️')
                        
                        else:
                
                            embed = nextcord.Embed(
                                colour = 0x00FFFF,
                                title = "🎨 ASCII ",
                                description = (f"```{response}```")

                            )
                            embed.set_footer(text=f"┗Requested by {ctx.author}")
                            message = await ctx.send(embed=embed)
                            await message.add_reaction('🎨')
Ejemplo n.º 11
0
    async def kick_error(self,ctx, error):
        language = await settings.collectionlanguage.find_one({"guild_id":ctx.guild.id})
        if language is None:
            message = await ctx.send(embed=languageEmbed.languageembed(self,ctx))
            await message.add_reaction('👍')

        else:
            server_language = language["Language"]
            
            if server_language == "Thai":
                if isinstance(error, commands.MissingRequiredArgument):
                    embed = nextcord.Embed(
                        colour = 0x983925,
                        title = "ชื่อสมาชิกที่จะเเตะ",
                        description = f" ⚠️``{ctx.author}`` จะต้องใส่ชื่อของสมาชิกที่จะเเตะ ``{settings.COMMAND_PREFIX}kick [@user]``"
                    )
                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed ) 
                    await message.add_reaction('⚠️')

                if isinstance(error, commands.MissingPermissions):
                    embed = nextcord.Embed(
                        colour = 0x983925,
                        title = "คุณไม่มีสิทธิ์เเตะ",
                        description = f"⚠️ ``{ctx.author}`` ไม่สามารถใช้งานคำสั่งนี้ได้ คุณจำเป็นต้องมีสิทธิ์ ``เเตะ`` ก่อนใช้งานคำสั่งนี้"
                    )
                
                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed ) 
                    await message.add_reaction('⚠️')
            
            if server_language == "English":
                if isinstance(error, commands.MissingRequiredArgument):
                    embed = nextcord.Embed(
                        colour = 0x983925,
                        title = "Specify member",
                        description = f" ⚠️``{ctx.author}`` need to specify who to kick ``{settings.COMMAND_PREFIX}kick [@user]``"
                    )
                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed ) 
                    await message.add_reaction('⚠️')

                if isinstance(error, commands.MissingPermissions):
                    embed = nextcord.Embed(
                        colour = 0x983925,
                        title = "You don't have permission",
                        description = f"⚠️ ``{ctx.author}`` You must have ``kick`` to be able to use this command"
                    )
                
                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed ) 
                    await message.add_reaction('⚠️')
Ejemplo n.º 12
0
    async def removerole_error(self,ctx, error):
        language = await settings.collectionlanguage.find_one({"guild_id":ctx.guild.id})
        if language is None:
            message = await ctx.send(embed=languageEmbed.languageembed(self,ctx))
            await message.add_reaction('👍')

        else:
            server_language = language["Language"]
            
            if server_language == "Thai":
                if isinstance(error, commands.MissingRequiredArgument):
                    embed = nextcord.Embed(
                        colour = 0x983925,
                        description = f" ⚠️``{ctx.author}`` จะต้องใส่ชื่อของคนที่ต้องการจะให้ยศเเละยศที่เอาออก ``{settings.COMMAND_PREFIX}removerole @role``"
                    )
                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed ) 
                    await message.add_reaction('⚠️')
                
                if isinstance(error, commands.MissingPermissions):
                    embed = nextcord.Embed(
                        colour = 0x983925,
                        title = "คุณไม่มีสิทธิ์เอายศออก",
                        description = f"⚠️ ``{ctx.author}`` ไม่สามารถใช้งานคำสั่งนี้ได้ คุณจำเป็นต้องมีสิทธิ์ ``เเอดมิน`` ก่อนใช้งานคำสั่งนี้"
                    )

                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed ) 
                    await message.add_reaction('⚠️')
            
            if server_language == "English":
                if isinstance(error, commands.MissingRequiredArgument):
                    embed = nextcord.Embed(
                        colour = 0x983925,
                        description = f" ⚠️``{ctx.author}`` need to specify member and specify what role to remove ``{settings.COMMAND_PREFIX}giverole @user @role``"
                    )
                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed ) 
                    await message.add_reaction('⚠️')
                
                if isinstance(error, commands.MissingPermissions):
                    embed = nextcord.Embed(
                        colour = 0x983925,
                        title = "You don't have permission",
                        description = f"⚠️ ``{ctx.author}`` You must have ``admin`` to be able to use this command"
                    )
                
                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed ) 
                    await message.add_reaction('⚠️')
Ejemplo n.º 13
0
    async def pastebin(self ,ctx, *,message):
        languageserver = await settings.collectionlanguage.find_one({"guild_id":ctx.guild.id})
        if languageserver is None:
            message = await ctx.send(embed=languageEmbed.languageembed(self,ctx))
            await message.add_reaction('👍')
        
        else:
            server_language = languageserver["Language"]
            data = {
            'api_option': 'paste',
            'api_dev_key':settings.pastebinapi,
            'api_paste_code':message,
            'api_paste_name':"Smilewinbot",
            'api_paste_expire_date': 'N',
            'api_user_key': '',
            'api_paste_format': 'python'
            }
            async with aiohttp.ClientSession() as session:
                    async with session.post("https://pastebin.com/api/api_post.php", data=data) as r:
                        r = await r.text()

            if server_language == "Thai":
                embed = nextcord.Embed(
                    colour = 0x00FFFF,
                    title = f'Pastebin link ของ {ctx.author}',
                    description = f"""
```📒 นี้คือลิงค์ Pastebin ของคุณ : 

{r}```"""
                )

                embed.set_footer(text=f"┗Requested by {ctx.author}")
                embed.timestamp = datetime.datetime.utcnow()

                message = await ctx.send(embed = embed)
                await message.add_reaction('📒')
                print(f"{ctx.author} have made a Pastebinlink : {r}")
            
            if server_language == "English":
                embed = nextcord.Embed(
                    colour = 0x00FFFF,
                    title = f'Pastebin link ของ {ctx.author}',
                    description = f"""
```📒 This is your Pastebin link : 

{r}```"""
                )

                embed.set_footer(text=f"┗Requested by {ctx.author}")
                embed.timestamp = datetime.datetime.utcnow()

                message = await ctx.send(embed = embed)
                await message.add_reaction('📒')
                print(f"{ctx.author} have made a Pastebinlink : {r}")
Ejemplo n.º 14
0
    async def coinflip(self, ctx):
        languageserver = await settings.collectionlanguage.find_one(
            {"guild_id": ctx.guild.id})
        if languageserver is None:
            message = await ctx.send(
                embed=languageEmbed.languageembed(self, ctx))
            await message.add_reaction('👍')

        else:
            server_language = languageserver["Language"]
            coin = [
                'https://i.imgur.com/Jeeym59.png',
                'https://i.imgur.com/Pq8ntth.png',
                'https://i.imgur.com/Jeeym59.png',
                'https://i.imgur.com/Pq8ntth.png',
                'https://i.imgur.com/Jeeym59.png',
                'https://i.imgur.com/Pq8ntth.png',
                'https://i.imgur.com/Jeeym59.png',
                'https://i.imgur.com/Pq8ntth.png',
                'https://i.imgur.com/Jeeym59.png',
                'https://i.imgur.com/Pq8ntth.png',
                'https://i.imgur.com/Jeeym59.png',
                'https://i.imgur.com/Pq8ntth.png',
                'https://i.imgur.com/Jeeym59.png',
                'https://i.imgur.com/Pq8ntth.png',
                'https://i.imgur.com/Jeeym59.png',
                'https://i.imgur.com/Pq8ntth.png'
            ]
            flip = random.choice(coin)
            responses = {
                "https://i.imgur.com/Jeeym59.png": ["ก้อย", "tail"],
                "https://i.imgur.com/Pq8ntth.png": ["หัว", "head"]
            }

            if server_language == "Thai":
                embed = nextcord.Embed(
                    colour=0xFED000,
                    title="ทอยเหรียญ",
                    description=
                    f"คุณ ``{ctx.author}`` ทอยได้{responses[flip][0]}")
                embed.set_image(url=flip)
                embed.set_footer(text=f"┗Requested by {ctx.author}")

                await ctx.send(embed=embed)

            if server_language == "English":
                embed = nextcord.Embed(
                    colour=0xFED000,
                    title="Coin flip",
                    description=f"``{ctx.author}`` got {responses[flip][1]}")
                embed.set_image(url=flip)
                embed.set_footer(text=f"┗Requested by {ctx.author}")

                await ctx.send(embed=embed)
Ejemplo n.º 15
0
    async def movetome(self,ctx, member : nextcord.Member):
        language = await settings.collectionlanguage.find_one({"guild_id":ctx.guild.id})
        if language is None:
            message = await ctx.send(embed=languageEmbed.languageembed(self,ctx))
            await message.add_reaction('👍')

        else:
            server_language = language["Language"]

            if server_language == "Thai": 
                if ctx.author.voice and ctx.author.voice.channel:
                    await member.move_to(channel=ctx.author.voice.channel)

                    embed = nextcord.Embed(
                        colour = 0x00FFFF,
                        title = f"{member}ได้ถูกย้ายไปที่ห้องของ {ctx.author}"

                    )
                    message = await ctx.send(embed=embed)
                    await message.add_reaction('✅')
                
                else:
                    embed = nextcord.Embed(
                        colour = 0x983925,
                        description = f" ⚠️``{ctx.author}`` คุณไม่ได้อยู่ในห้องคุย"
                    )
                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed ) 
                    await message.add_reaction('⚠️')

            
            if server_language == "English": 
                if ctx.author.voice and ctx.author.voice.channel:
                    await member.move_to(channel=ctx.author.voice.channel)

                    embed = nextcord.Embed(
                        colour = 0x00FFFF,
                        title = f"{member}have been move to {ctx.author} voice chat"

                    )
                    message = await ctx.send(embed=embed)
                    await message.add_reaction('✅')

                else:
                    embed = nextcord.Embed(
                        colour = 0x983925,
                        description = f" ⚠️``{ctx.author}`` You are not connected to voice chat"
                    )
                    embed.set_footer(text=f"┗Requested by {ctx.author}")

                    message = await ctx.send(embed=embed ) 
                    await message.add_reaction('⚠️')
Ejemplo n.º 16
0
    async def trigger(self, ctx, member: nextcord.Member = None):
        languageserver = await settings.collectionlanguage.find_one(
            {"guild_id": ctx.guild.id})
        if languageserver is None:
            message = await ctx.send(
                embed=languageEmbed.languageembed(self, ctx))
            await message.add_reaction('👍')

        else:
            server_language = languageserver["Language"]

            if server_language == "Thai":
                if member is None:
                    member = ctx.author

                avatar_url = member.avatar.with_format("png")

                embed = nextcord.Embed(
                    colour=0x00FFFF,
                    title="😠 Triggered",
                    description=
                    f"ลิงค์: [คลิกที่นี้](https://some-random-api.ml/canvas/triggered/?avatar={avatar_url})"
                )

                embed.set_footer(text=f"┗Requested by {ctx.author}")
                embed.set_image(
                    url=
                    f"https://some-random-api.ml/canvas/triggered/?avatar={avatar_url}"
                )
                message = await ctx.send(embed=embed)
                await message.add_reaction('😠')

            if server_language == "English":
                if member is None:
                    member = ctx.author

                avatar_url = member.avatar.with_format("png")

                embed = nextcord.Embed(
                    colour=0x00FFFF,
                    title="😠 Triggered",
                    description=
                    f"link: [click here](https://some-random-api.ml/canvas/triggered/?avatar={avatar_url})"
                )

                embed.set_footer(text=f"┗Requested by {ctx.author}")
                embed.set_image(
                    url=
                    f"https://some-random-api.ml/canvas/triggered/?avatar={avatar_url}"
                )
                message = await ctx.send(embed=embed)
                await message.add_reaction('😠')
Ejemplo n.º 17
0
    async def poker(self, ctx):
        languageserver = await settings.collectionlanguage.find_one(
            {"guild_id": ctx.guild.id})
        if languageserver is None:
            message = await ctx.send(
                embed=languageEmbed.languageembed(self, ctx))
            await message.add_reaction('👍')
        else:
            server_language = languageserver["Language"]
            if server_language == "Thai":
                voice_state = ctx.author.voice
                if voice_state is None:
                    embed = nextcord.Embed(
                        description=
                        f"{ctx.author.mention} ต้องเข้าห้องพูดคุยก่อน",
                        colour=0x983925)
                    await ctx.send(embed=embed)

                else:
                    try:
                        link = await self.togetherControl.create_link(
                            ctx.author.voice.channel.id, 'poker')
                        await ctx.send(f"คลิกที่ลิงก์เพื่อเริ่ม:\n{link}")

                    except nextcord.ext.commands.errors.BotMissingPermissions:
                        embed = nextcord.Embed(
                            description="บอทไม่มีสิทธิ์ ``สร้างลิงค์เชิญ``",
                            colour=0x983925)
                        await ctx.send(embed=embed)

            if server_language == "English":
                voice_state = ctx.author.voice
                if voice_state is None:
                    embed = nextcord.Embed(
                        description=
                        f"{ctx.author.mention} need to join voice channel",
                        colour=0x983925)
                    await ctx.send(embed=embed)

                else:
                    try:
                        link = await self.togetherControl.create_link(
                            ctx.author.voice.channel.id, 'poker')
                        await ctx.send(f"Click on the link to start:\n{link}")

                    except nextcord.ext.commands.errors.BotMissingPermissions:
                        embed = nextcord.Embed(
                            description=
                            "Bot don't have ``CREATE_INVITE`` permission",
                            colour=0x983925)
                        await ctx.send(embed=embed)
Ejemplo n.º 18
0
 async def format_new_tweet(self, raw_data):
     """Formats a tweet into a nice discord embed"""
     tweet_data = json.loads(raw_data)
     try:
         twitter_id = tweet_data["user"]["id_str"]
     except KeyError:
         print('ValueError in formatting tweet')
         print(tweet_data)
         return
     user_name = escape_markdown(tweet_data["user"]["name"])
     twitter_at = f'@{escape_markdown(tweet_data["user"]["screen_name"])}'
     title = f'{user_name} ({twitter_at})'
     profile_image = tweet_data["user"]["profile_image_url_https"]
     text = tweet_data["text"]
     if "extended_entities" in tweet_data:
         if len(tweet_data["extended_entities"]["media"]) > 1:
             images = []
             short = pyshorteners.Shortener()
             for media in tweet_data["extended_entities"]["media"]:
                 link = twitter_image_link_formatting(
                     media["media_url_https"])
                 images.append(short.tinyurl.short(link))
             embed = discord.Embed(title=title,
                                   description=text,
                                   color=discord.Color.blue())
             embed.set_footer(text=f'Tweet by {twitter_at}',
                              icon_url=profile_image)
             tweet = (embed, images)
         else:
             if tweet_data["extended_entities"]["media"][0][
                     "type"] == 'video':
                 screen_name = tweet_data["user"]["screen_name"]
                 tweet_id = tweet_data["id_str"]
                 tweet = f'https://fxtwitter.com/{screen_name}/status/{tweet_id}'
             else:
                 link = tweet_data["extended_entities"]["media"][0][
                     "media_url_https"]
                 image_url = twitter_image_link_formatting(link)
                 tweet = discord.Embed(title=title,
                                       description=text,
                                       color=discord.Color.blue())
                 tweet.set_image(url=image_url)
                 tweet.set_footer(text=f'Tweet by {twitter_at}',
                                  icon_url=profile_image)
     else:
         tweet = discord.Embed(title=title,
                               description=text,
                               color=discord.Color.blue())
         tweet.set_footer(text=f'Tweet by {twitter_at}',
                          icon_url=profile_image)
     await self.send_new_tweet(tweet, twitter_id)
Ejemplo n.º 19
0
 async def cmd_afkmeter(self, *args, message, member, **_):
     """/afkmeter {*nom d'invocateur}"""
     count = {}
     if not args: summonerName = member.name
     else: summonerName = "".join(args)
     accountId, summonerId, iconId = await getSummoner(summonerName)
     if not accountId:
         raise NotFound("Invocateur non trouvé : {}".format(summonerName))
     try:
         colour = message.guild.get_member_named(summonerName).colour
     except:
         colour = 0xC0C0C0
     icon = "http://ddragon.canisback.com/latest/img/profileicon/" + str(
         iconId) + ".png"
     msg = await message.channel.send(
         embed=nextcord.Embed(title="Afk Meter", colour=colour).set_author(
             name=summonerName, icon_url=icon))
     matches, timelines = await getSeasonMatches(accountId, timeline=True)
     for i in range(len(matches)):
         for participant in matches[i]["participantIdentities"]:
             if str(participant["player"]["accountId"]) == str(accountId):
                 id = str(participant["participantId"])
         oldpos, afk = "None", 0
         for frame in timelines[i]["frames"]:
             try:
                 j = frame["participantFrames"][str(id)]["position"]
             except:
                 j = {"x": "None", "y": "None"}
             pos = str(j["x"]) + "," + str(j["y"])
             if pos == oldpos:
                 afk += 1
                 if afk >= 2:
                     try:
                         count[str(matches[i]["gameId"])] += 1
                     except:
                         count[str(matches[i]["gameId"])] = 2
             else:
                 afk = 0
             oldpos = pos
     txt, nb, mt = "", 0, 0
     for x, y in count.items():
         txt += "\ngame n°" + str(x) + " : **" + str(y) + "** minute(s)"
         nb += 1
         mt += y
     em = nextcord.Embed(
         title="Afk Meter :",
         description="Sur les " + str(len(matches)) +
         " dernières parties\n" + summonerName + " a AFK **" + str(nb) +
         "** games pour un total de **" + str(mt) + "** minutes\n\n" + txt,
         colour=colour)
     await msg.edit(embed=em.set_author(name=summonerName, icon_url=icon))
Ejemplo n.º 20
0
 async def player_loop(self):
     await self.client.wait_until_ready()
     while not self.client.is_closed():
         self.next.clear()
         try:
             async with timeout(300):
                 embed = nextcord.Embed(
                     title="🎧 Player",
                     description="**Idling**",
                     color=nextcord.Color.green(),
                 )
                 await self.set_embed_player(embed)
                 source = await self.queue.get()
         except asyncio.TimeoutError:
             return self.client.loop.create_task(
                 MusicPlayer.destroy(self.players, self._guild))
         if not isinstance(source, YTDLSource):
             try:
                 source = await YTDLSource.regather_stream(
                     source, loop=self.client.loop)
             except Exception:
                 await self._channel.send("🤕 Error while processing",
                                          delete_after=5)
                 continue
         source.volume = Config.volume_music
         self.current = source
         await asyncio.sleep(0.5)
         self._guild.voice_client.play(
             source,
             after=lambda _: self.client.loop.call_soon_threadsafe(self.next
                                                                   .set),
         )
         logger.info(f"player_loop(): Playing {source.title}")
         await asyncio.sleep(0.5)
         if self._guild.voice_client.is_playing():
             embed = nextcord.Embed(
                 title="🎧 Playing",
                 description=
                 f"{source.title} {source.web_url} [{source.requester.mention}]",
                 color=nextcord.Color.green(),
             )
         else:
             embed = nextcord.Embed(
                 title="🤕 Error / Skipping to next",
                 description=
                 f"{source.title} {source.web_url} [{source.requester.mention}]",
                 color=nextcord.Color.green(),
             )
         await self.set_embed_player(embed)
         await self.next.wait()
         self.current = None
Ejemplo n.º 21
0
 async def list_selector(self, ctx, item_type):
     user_lang = await self.bot.db.get_lang(ctx.author.id, ctx.guild.region)
     max_page = getattr(self.bot.data, item_type).page
     embed = discord.Embed(title=self.bot.text.list_base_title[user_lang],
                           color=0xffce9e)
     embed.description = self.get_list(item_type, 1)
     embed.set_footer(
         text=self.bot.text.showing_page[user_lang].format(1, max_page))
     msg = await ctx.send(embed=embed)
     if max_page == 1:
         return
     selector_emoji = [self.bot.data.emoji.left, self.bot.data.emoji.right]
     self.bot.loop.create_task(self.list_selector_emoji(
         msg, selector_emoji))
     page = 1
     while True:
         try:
             react, user = await self.bot.wait_for(
                 "reaction_add",
                 timeout=30,
                 check=lambda r, u: str(r.emoji) in selector_emoji and r.
                 message.id == msg.id and u == ctx.author)
         except asyncio.TimeoutError:
             try:
                 await msg.clear_reactions()
             except:
                 pass
             finally:
                 return
         try:  # 簡便のためユーザーのリアクションを削除
             await msg.remove_reaction(react, user)
         except:
             pass
         if str(react.emoji) == self.bot.data.emoji.right:
             if page == max_page:
                 page = 1
             else:
                 page += 1
         elif str(react.emoji) == self.bot.data.emoji.left:
             if page == 1:
                 page = max_page
             else:
                 page -= 1
         embed = discord.Embed(title=getattr(
             self.bot.text, f"list_{item_type}_title")[user_lang],
                               color=0xffce9e)
         embed.description = self.get_list(item_type, page)
         embed.set_footer(text=self.bot.text.showing_page[user_lang].format(
             page, max_page))
         await msg.edit(embed=embed)
Ejemplo n.º 22
0
 def to_embed(self) -> nextcord.Embed:
     if not self.champions:
         return nextcord.Embed(title="Champions",
                               description="Vous n'avez aucun champion")
     em = nextcord.Embed(title="Champions", colour=self.owner.colour)
     for level in range(self.champions[0].level, 0, -1):
         em.add_field(name=f"Niveau {level}",
                      value=''.join([
                          i.to_emoji() for i in self.champions
                          if i.level == level
                      ])[:1000],
                      inline=False)
     em.set_author(name=self.owner.name, icon_url=self.owner.avatar_url)
     return em
Ejemplo n.º 23
0
 async def identity_check(self, ctx: commands.Context,
                          user: nextcord.Member):
     """Check the identity verification status of a user."""
     identity = await self.identities.find_one({"discord_id": user.id})
     if identity is not None:
         embed = nextcord.Embed()
         embed.colour = nextcord.Colour.green()
         embed.add_field(name="MUN Username",
                         value=identity["mun_username"])
         await ctx.send(embed=embed)
     else:
         embed = nextcord.Embed()
         embed.colour = nextcord.Colour.red()
         embed.add_field(name="MUN Username", value="No username verified.")
         await ctx.send(embed=embed)
Ejemplo n.º 24
0
    async def debinary(self, ctx, *, text):
        languageserver = await settings.collectionlanguage.find_one(
            {"guild_id": ctx.guild.id})
        if languageserver is None:
            message = await ctx.send(
                embed=languageEmbed.languageembed(self, ctx))
            await message.add_reaction('👍')

        else:
            server_language = languageserver["Language"]

            if server_language == "Thai":
                async with aiohttp.ClientSession() as session:
                    async with session.get(
                            f"https://some-random-api.ml/binary?decode={text}"
                    ) as r:
                        r = await r.json()

                binary = r['text']

                embed = nextcord.Embed(colour=0x00FFFF,
                                       title="Encode Binary",
                                       description=f"""```
Binary : {text}
Normal text : {binary}```""")

                embed.set_footer(text=f"┗Requested by {ctx.author}")
                message = await ctx.send(embed=embed)
                await message.add_reaction('💻')

            if server_language == "Thai":
                async with aiohttp.ClientSession() as session:
                    async with session.get(
                            f"https://some-random-api.ml/binary?decode={text}"
                    ) as r:
                        r = await r.json()

                binary = r['text']

                embed = nextcord.Embed(colour=0x00FFFF,
                                       title="Encode Binary",
                                       description=f"""```
Binary : {text}
Normal text : {binary}```""")

                embed.set_footer(text=f"┗Requested by {ctx.author}")
                message = await ctx.send(embed=embed)
                await message.add_reaction('💻')
Ejemplo n.º 25
0
    async def kick(self,ctx, member : nextcord.Member, *, reason=None):
        language = await settings.collectionlanguage.find_one({"guild_id":ctx.guild.id})
        if language is None:
            message = await ctx.send(embed=languageEmbed.languageembed(self,ctx))
            await message.add_reaction('👍')

        else:
            server_language = language["Language"]
            
            if server_language == "Thai":
                await member.kick(reason=reason)
                if reason is None:
                    reason = "None"

                embed = nextcord.Embed(
                    color = 0x983925,
                    title = f"😤 สมาชิก {member} ถูกเตะออกจากเซิร์ฟเวอร์",
                    description = f"""
                    ผู้เเตะ : ``{ctx.author}``
                    สาเหตุ : ``{reason}``"""
            
                )

                embed.set_thumbnail(url=f"{member.avatar.url}")
                embed.set_footer(text=f"┗Requested by {ctx.author}")
        
                message = await ctx.send(embed=embed)
                await message.add_reaction('😤')
            
            if server_language == "English":
                await member.kick(reason=reason)
                if reason is None:
                    reason = "None"

                embed = nextcord.Embed(
                    color = 0x983925,
                    title = f"😤 {member} have been kicked from server",
                    description = f"""
                    Punisher : ``{ctx.author}``
                    Reason : ``{reason}``"""
            
                )

                embed.set_thumbnail(url=f"{member.avatar.url}")
                embed.set_footer(text=f"┗Requested by {ctx.author}")
        
                message = await ctx.send(embed=embed)
                await message.add_reaction('😤')
Ejemplo n.º 26
0
 async def on_member_unban(self, gld, usr):
     await asyncio.sleep(0.5)
     found_entry = None
     a = prefixes.find_one({"_id": str(gld.id)})
     chid = a["lChannel"]
     channel = self.bot.get_channel(int(chid))
     async for entry in gld.audit_logs(limit=50,
                                       action=discord.AuditLogAction.unban,
                                       after=datetime.datetime.utcnow() -
                                       datetime.timedelta(seconds=15),
                                       oldest_first=False):
         if entry.target.id == usr.id:
             found_entry = entry
             break
     if not found_entry:
         return
     e = discord.Embed(color=green, timestamp=datetime.datetime.utcnow())
     e.set_author(name=f"modbot", url=url, icon_url=url)
     e.add_field(
         name=":unlock:",
         value=
         f"{usr.mention} ({usr}) was unbanned.\nModerator: {found_entry.user.mention}",
         inline=True)
     e.add_field(name="Target",
                 value=f"<@{str(usr.id)}> ({str(usr)})",
                 inline=True)
     e.add_field(
         name="Moderator",
         value=f"<@{str(found_entry.user.id)}> ({str(found_entry.user)})",
         inline=True)
     await channel.send(embed=e)
Ejemplo n.º 27
0
 async def server(self, ctx):
     level = str(ctx.guild.premium_tier)
     region = str(ctx.guild.region)
     boosts = str(ctx.guild.premium_subscription_count)
     if not ctx.guild.premium_subscription_count:
         boosts = 'Zero'
     sregion = {
         'brazil': ':flag_br: Brazil',
         'europe': ':flag_eu: Europe',
         'hongkong': ':flag_hk: Hong Kong',
         'india': ':flag_in: India',
         'japan': ':flag_jp: Japan',
         'russia': ':flag_ru: Russia',
         'singapore': ':flag_sg: Singapore',
         'southafrica': ':flag_za: South Africa',
         'sydney': ':flag_au: Sydney',
         'us-central': ':flag_us: US Central',
         'us-east': ':flag_us: US East',
         'us-south': ':flag_us: US South',
         'us-west': ':flag_us: US West',
     }.get(region)
     embed = nextcord.Embed(title=f"ℹ Information about {ctx.guild.name}", color=0x8253c3)
     embed.add_field(name="Nitro Boost", value=f'Level {level}, {boosts} boost(s)', inline=True)
     embed.add_field(name="Owner", value=f"{ctx.guild.owner.name}#{ctx.guild.owner.discriminator}", inline=True)
     embed.add_field(name="Created On", value=f"{ctx.guild.created_at.month}/{ctx.guild.created_at.day}/{ctx.guild.created_at.year}", inline=True)
     embed.add_field(name="Member Count", value=len(ctx.guild.members), inline=True)
     embed.add_field(name="Channel Count", value=len(ctx.guild.channels), inline=True)
     embed.add_field(name="Region", value=sregion, inline=True)
     embed.set_thumbnail(url=ctx.guild.icon.url)
     embed.set_footer(text=f"{botver} by PrincessLillie#2523", icon_url='https://sks316.s-ul.eu/bsHvTCLJ')
     await ctx.send(embed=embed)
Ejemplo n.º 28
0
 async def avatar(self, ctx, *, user: nextcord.Member = None):
   if user == None:
         user = ctx.author
   embed = nextcord.Embed(title=f"🖼 {user.display_name}'s avatar",  color=user.color)
   embed.set_image(url=user.display_avatar.url)
   embed.set_footer(text=f"{botver} by PrincessLillie#2523", icon_url='https://sks316.s-ul.eu/bsHvTCLJ')
   await ctx.send(embed=embed)
Ejemplo n.º 29
0
    async def roll(self, ctx, roll="1d6"):
        embed = nextcord.Embed(title="Dice Rolls")
        try:
            sides = int(roll.split("d")[1])
            rolls = int(roll.split("d")[0])
        except Exception:
            await ctx.send(
                "Wrong format, the commands format is `[number of rolls]d[number of sides]` eg.(1d5, or 10d45)"
            )
            return

        if sides < 1:
            sides = 1
        elif sides > 1000000000000:
            sides = 1000000000000

        if rolls < 1:
            rolls = 1
        elif rolls > 100:
            rolls = 100

        total = 0

        for x in range(rolls):
            val = random.randint(1, sides)
            total += val
            embed.add_field(name=f"Dice  #{x + 1}", value=val)
        embed.set_footer(text=f"Total: {total}")
        await ctx.send(embed=embed)
Ejemplo n.º 30
0
    async def queue(self, ctx):
        voice_client = ctx.voice_client
        if not voice_client or not voice_client.is_connected():
            return await error_embed(ctx, "BOTはまだボイスチャンネルに接続していません")

        text = ""
        player = self.get_player(ctx)
        if voice_client.source is not None:
            text += f"\n再生中:\n [{voice_client.source.title}]({voice_client.source.url}) | {duration_to_text(voice_client.source.duration)}\n"
        elif player.queue.empty():
            return await error_embed(ctx, "現在予約された曲はありません")

        for i, d in enumerate(player.queue._queue):
            cache = text
            text += f"\n{i + 1}. [{d['title']}]({d['webpage_url']}) | {duration_to_text(d['duration'])}"
            # text += f"\n{i + 1}.) {d['title']} | {duration_to_text(d['duration'])}"
            if len(text) >= 4000:
                text = cache + "\n等..."
                break
        text += f"\n\n現在{len(player.queue._queue)}曲が予約されています"

        embed = discord.Embed(description=text, color=discord.Color.blurple())
        if player.loop:
            embed.set_footer(text="現在再生中の曲の繰り返し機能が有効です(loop)")
        elif player.loop_queue:
            embed.set_footer(text="予約した曲全体の繰り返し機能が有効です(loop_queue)")
        await ctx.send(embed=embed)