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('⚠️')
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('✅')
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('✅')
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, )
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('❤️')
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)
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)
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)
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('⚠️')
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('🎨')
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('⚠️')
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('⚠️')
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}")
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)
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('⚠️')
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('😠')
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)
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)
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))
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
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)
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
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)
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('💻')
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('😤')
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)
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)
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)
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)
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)