async def ebot(self, ctx, *user): """Lien de l'eBot""" if not is_command_enabled('ebot'): await ctx.send(disabled_command.format(ctx)) return msg = "" args = "" link = config.URL_EBOT if is_in_group(ctx, config.ADMIN_ROLE) and user: for each_user in user: msg = msg + "{0} ".format(each_user) args = msg else: msg = "{0.message.author.mention} ".format(ctx) msg = msg + "-> Lien de l'eBot : {0}".format(link) embed = logs.create_log(self.bot.user.avatar_url, "", "User ID : {0}".format(ctx.message.author.id), static_var.hex_colors_codes['green'], ctx.message.author.name, ctx.message.author.avatar_url, "Action", "Command used", "Name", "!ebot", "Arguments", args) await self.bot.get_channel(config.COMMAND_LOGS).send(embed=embed) await ctx.send(msg)
async def report(self, ctx, *user): """Avoir des informations pour reporter un(e) joueur/équipe""" if not is_command_enabled('report'): await ctx.send(disabled_command.format(ctx)) return msg = "" args = "" link = config.URL_ADMINAFK + 'pages/participants.php' if is_in_group(ctx, config.ADMIN_ROLE) and user: for each_user in user: msg = msg + "{0} ".format(each_user) args = msg else: msg = msg + "{0.message.author.mention} ".format(ctx) msg = msg + " pour faire une demande de gotv vous devez spécifier le match incriminé ainsi que potentiellement les joueurs incriminés. Suite à cela nous vous donnerons un lien que vous devrez regarder et trouver les ticks que vous trouvez suspects (3 minimums)".format( link) await self.bot.get_channel(config.GOTV_CHANNEL).send(msg) embed = logs.create_log(self.bot.user.avatar_url, "", "User ID : {0}".format(ctx.message.author.id), static_var.hex_colors_codes['green'], ctx.message.author.name, ctx.message.author.avatar_url, "Action", "Command used", "Name", "!report", "Arguments", args) await self.bot.get_channel(config.COMMAND_LOGS).send(embed=embed)
async def on_guild_update(self, before, after): """Event : server updated""" emoji = "<:tools:472152893517070346>" embed = logs.create_log( self.bot.user.avatar_url, "", "", static_var.hex_colors_codes['orange'], "", "", "Action", "{0} Server state".format(emoji), "Content", "{0} server setting updated".format(after.name), "", "") await self.bot.get_channel(config.GENERAL_LOGS).send(embed=embed)
async def on_voice_state_update(self, member, before, after): """Event : voice state""" content = "" if before.deaf != after.deaf: if after.deaf == True: content = content + "Server has turned off his sound" else: content = content + "Server has turned on his sound" if before.self_deaf != after.self_deaf: if after.self_deaf == True: content = content + "User has turned off his sound" else: content = content + "User has turned on his sound" if before.mute != after.mute: if content != "": content = content + " and " if after.mute == True: content = content + "Server has turned off his microphone" else: content = content + "Server has turned on his microphone" if before.self_mute != after.self_mute: if content != "": content = content + " and " if after.self_mute == True: content = content + "User has turned off his microphone" else: content = content + "User has turned on his microphone" if before.afk != after.afk: if content != "": content = content + " and " if after.afk == True: content = content + "User joined AFK channel {0} from {1} channel".format( after.channel, before.channel) else: content = content + "User left AFK channel {0} to {1} channel".format( before.channel, after.channel) if before.channel != after.channel: if content != "": content = content + " and " if after.channel == None: content = "User left voice server from {} channel".format( before.channel) elif before.channel == None and after.channel != None: content = "User joined voice server on {0} channel".format( after.channel) else: content = "User joined {0} channel from {1} channel".format( after.channel, before.channel) emoji = "<:loud_sound:472137635163406347>" embed = logs.create_log(self.bot.user.avatar_url, "", "User ID : {0}".format(member.id), static_var.hex_colors_codes['orange'], member.name, member.avatar_url, "Action", "{0} Voice state".format(emoji), "Content", content, "", "") await self.bot.get_channel(config.GENERAL_LOGS).send(embed=embed)
async def on_member_join(self, member): """Event : user joined the server""" emoji = "<:wave:472141177475563542>" embed = logs.create_log(self.bot.user.avatar_url, "", "User ID : {0}".format(member.id), static_var.hex_colors_codes['green'], member.name, member.avatar_url, "Action", "{0} User state".format(emoji), "Content", "User joined", "", "") await self.bot.get_channel(config.GENERAL_LOGS).send(embed=embed)
async def on_guild_role_create(self, role): """Event : role created""" emoji = "<:new:472152627765968936>" embed = logs.create_log(self.bot.user.avatar_url, "", "", static_var.hex_colors_codes['green'], "", "", "Action", "{0} Role state".format(emoji), "Content", "{0} role created".format(role.mention), "", "") await self.bot.get_channel(config.GENERAL_LOGS).send(embed=embed)
async def on_guild_role_delete(self, role): """Event : role deleted""" await asyncio.sleep(1) audit_log_entries = role.guild.audit_logs( action=discord.AuditLogAction.role_delete, limit=1) async for entry in audit_log_entries: emoji = "<:x:472152627765968936>" embed = logs.create_log( self.bot.user.avatar_url, "", "", static_var.hex_colors_codes['red'], "", "", "Action", "{0} Role state".format(emoji), "Content", "@{0} role deleted".format(entry.before.name), "", "") await self.bot.get_channel(config.GENERAL_LOGS).send(embed=embed)
async def on_message_edit(self, before, after): """Event : message edited""" if len(after.content) < 220: after_content = after.content else: after_content = after.content[:250] after_content = after_content + "..." if len(before.content) < 220: before_content = before.content else: before_content = before.content[:250] before_content = before_content + "..." if before.content != after.content: emoji = "<:tools:472152893517070346>" embed = logs.create_log(self.bot.user.avatar_url, "", "User ID : {0}".format(after.author.id), static_var.hex_colors_codes['orange'], after.author, after.author.avatar_url, "Action", "{0} Message edited".format(emoji), "Before", before_content, "After", after_content) await self.bot.get_channel(config.GENERAL_LOGS).send(embed=embed) """Event : message pinned""" if before.pinned != after.pinned: emoji = "<:tools:472152893517070346>" if after.pinned == True: pinned_state = "Message pinned" else: pinned_state = "Message unpinned" embed = logs.create_log(self.bot.user.avatar_url, "", "User ID : {0}".format(after.author.id), static_var.hex_colors_codes['orange'], after.author, after.author.avatar_url, "Action", "{0} Message state".format(emoji), "State", pinned_state, "Content", after_content) await self.bot.get_channel(config.GENERAL_LOGS).send(embed=embed)
async def on_member_ban(self, guild, user): """Event : user banned""" await asyncio.sleep(1) audit_log_entries = guild.audit_logs(action=discord.AuditLogAction.ban, limit=1) async for entry in audit_log_entries: emoji = "<:hammer:472142338089549835>" embed = logs.create_log( self.bot.user.avatar_url, "", "User ID : {0}".format(entry.user.id), static_var.hex_colors_codes['red'], entry.user.name, entry.user.avatar_url, "Action", "{0} User banned".format(emoji), "User", user.name, "Content", "The user has been banned from the server") await self.bot.get_channel(config.GENERAL_LOGS).send(embed=embed)
async def on_message_delete(self, message): """Event : message deleted""" if len(message.content) < 220: content = message.content else: content = message.content[:250] content = content + "..." emoji = "<:warning:472139637142323231>" embed = logs.create_log( self.bot.user.avatar_url, "", "User ID : {0}".format(message.author.id), static_var.hex_colors_codes['red'], message.author.name, message.author.avatar_url, "Action", "{0} Message deleted".format(emoji), "Message information", "Message sent by {0} deleted in {1}".format( message.author.mention, message.channel.mention), "Content", content) await self.bot.get_channel(config.GENERAL_LOGS).send(embed=embed)
async def on_member_update(self, before, after): """Event : user updated""" if before.nick != after.nick or before.avatar_url != after.avatar_url or set( before.roles) != set(after.roles): title_before = "" content_before = "" title_after = "" content_after = "" if before.nick != after.nick: title_before = "Old nickname" content_before = "{0}".format(before.nick) title_after = "New nickname" content_after = "{0}".format(after.nick) elif before.avatar_url != after.avatar_url: title_before = "" content_before = "" title_after = "New avatar" content_after = "{0}".format(after.avatar_url) elif set(before.roles) != set(after.roles): if len(after.roles) > len(before.roles): diff_role = list(set(after.roles) - set(before.roles)) title_before = "User role added to {0}".format(after.name) content_before = "{0}".format(diff_role[0].mention) else: diff_role = list(set(before.roles) - set(after.roles)) title_before = "User role deleted to {0}".format( after.name) content_before = "{0}".format(diff_role[0].mention) title_after = "User role" if len(after.roles) == 2: content_after = "None" else: for i in range(2, len(after.roles)): content_after = "{0} {1}".format( content_after, after.roles[i].mention) emoji = "<:tools:472152893517070346>" embed = logs.create_log( self.bot.user.avatar_url, "", "User ID : {0}".format(after.id), static_var.hex_colors_codes['orange'], after.name, after.avatar_url, "Action", "{0} User state".format(emoji), title_before, content_before, title_after, content_after) await self.bot.get_channel(config.GENERAL_LOGS).send(embed=embed)
async def on_member_remove(self, member): """Event : user left the server""" await asyncio.sleep(1) audit_log_entries = member.guild.audit_logs( action=discord.AuditLogAction.ban, limit=1) async for entry in audit_log_entries: audit_log_entries2 = member.guild.audit_logs( action=discord.AuditLogAction.unban, limit=1) async for entry2 in audit_log_entries2: if entry.created_at < entry2.created_at: emoji = "<:wave:472141177475563542>" embed = logs.create_log(self.bot.user.avatar_url, "", "User ID : {0}".format(member.id), static_var.hex_colors_codes['red'], member.name, member.avatar_url, "Action", "{0} User state".format(emoji), "Content", "User left", "", "") await self.bot.get_channel(config.GENERAL_LOGS ).send(embed=embed)
async def gotv(self, ctx, *user): """Comment regarder une démo ?""" if not is_command_enabled('gotv'): await ctx.send(disabled_command.format(ctx)) return msg = "" args = "" if is_in_group(ctx, config.ADMIN_ROLE) and user: for each_user in user: msg = msg + "{0} ".format(each_user) args = msg else: msg = "{0.message.author.mention} ".format(ctx) msg = msg + "Pour regarder une démo :\n 1)Télécharge la démo\n 2)Dézippe la démo grâce à winrar par exemple\n 3)Dépose le fichier <nom>.dem dans un dossier sans accent par exemple ton bureau\n 4)Lance CS:GO\n 5)Appuye simultanément sur `Shift` et `F2`\n 6)Appuye sur Load...\n 7)Sélectionne le fichier <nom>.dem\n 8)Le jeu va lancer la démo" embed = logs.create_log(self.bot.user.avatar_url, "", "User ID : {0}".format(ctx.message.author.id), static_var.hex_colors_codes['green'], ctx.message.author.name, ctx.message.author.avatar_url, "Action", "Command used", "Name", "!gotv", "Arguments", args) await self.bot.get_channel(config.COMMAND_LOGS).send(embed=embed) await ctx.send(msg)
async def matchs(self, ctx, *user): """Avoir des informations sur les matchs en cours""" if not is_command_enabled('matchs'): await ctx.send(disabled_command.format(ctx)) return msg = "" args = "" if is_in_group(ctx, config.ADMIN_ROLE) and user: for each_user in user: msg = msg + "{0} ".format(each_user) args = msg else: msg = "{0.message.author.mention} ".format(ctx) bdd.db_connect(config.EBOT_HOSTNAME, config.EBOT_PORT, config.EBOT_DBNAME, config.EBOT_USERNAME, config.EBOT_PASSWORD) result = bdd.db_select() bdd.db_disconnect() matchs = [] status = "" for row in result: if 1 < int(row['status']) < 13: matchs.append(row) if not matchs: msg = msg + "-> Il n'y a aucun match en cours" else: msg = msg + "-> Matchs en cours : ```" for each_match in matchs: if int(each_match['enable']) == 0: status = "Stop" else: status = "Live" if each_match['teama_name'] is None: team_a = each_match['team_a_name'] else: team_a = each_match['teama_name'] if each_match['teamb_name'] is None: team_b = each_match['team_b_name'] else: team_b = each_match['teamb_name'] match = '{0} ({1}) vs {2} ({3})'.format( team_a, each_match['score_a'], team_b, each_match['score_b']) msg = msg + match i = 0 while i < 70 - (len(match) + 20): msg = msg + ' ' i = i + 1 msg = msg + '{0}({1})\n'.format( static_var.ebot_status[int(each_match['status'])], status) msg = msg + "```" embed = logs.create_log(self.bot.user.avatar_url, "", "User ID : {0}".format(ctx.message.author.id), static_var.hex_colors_codes['green'], ctx.message.author.name, ctx.message.author.avatar_url, "Action", "Command used", "Name", "!matchs", "Arguments", args) await self.bot.get_channel(config.COMMAND_LOGS).send(embed=embed) await ctx.send(msg)