ajout des annotations

This commit is contained in:
Mylloon 2020-10-14 03:23:14 +02:00
parent d468ecc8e0
commit 1efe25d141
3 changed files with 23 additions and 8 deletions

View file

@ -1,7 +1,6 @@
import discord import discord
from discord.ext import commands from discord.ext import commands
from random import randint, choice from random import randint, choice
from datetime import datetime
import time import time
class Commands(commands.Cog): class Commands(commands.Cog):
@ -10,6 +9,9 @@ class Commands(commands.Cog):
def __init__(self, bot): def __init__(self, bot):
self.bot = bot self.bot = bot
# dans le message envoyer : le premier chiffre est la latence du protocole Discord WebSocket,
# le deuxieme c'est le temps que le bot a pris pour faire les p'tits calculs,
# le troisième c'est le temps que le bot a pris pour réagir au message
@commands.command() @commands.command()
async def ping(self, ctx, *, question = '0'): async def ping(self, ctx, *, question = '0'):
"""Affiche mon ping.\n ➡ Syntaxe: .ping [help]""" """Affiche mon ping.\n ➡ Syntaxe: .ping [help]"""
@ -102,13 +104,14 @@ class Commands(commands.Cog):
@commands.command(aliases = ['infos']) @commands.command(aliases = ['infos'])
async def info(self, ctx): async def info(self, ctx):
"""Donne des infos sur le bot.\n ➡ Syntaxe: .info/infos""" """Donne des infos sur le bot.\n ➡ Syntaxe: .info/infos"""
embed = discord.Embed(url = 'https://github.com/Mylloon', color = randint(0, 0xFFFFFF)) embed = discord.Embed(url = 'https://github.com/Mylloon', color = randint(0, 0xFFFFFF)) # pub gratuite
embed.set_author(name='Bot Licence L1', icon_url=ctx.author.avatar_url) embed.set_author(name='Bot Licence L1', icon_url=ctx.author.avatar_url)
total_online = len({m.id for m in self.bot.get_all_members() if m.status is discord.Status.online}) total_online = len({m.id for m in self.bot.get_all_members() if m.status is discord.Status.online}) # liste utilisateurs de tous les serveurs où le bot est, en ligne
total_unique = len(self.bot.users) total_unique = len(self.bot.users) # pareil mais en comptants les hors lignes aussi
# liste des différents canaux
voice_channels = [] voice_channels = []
text_channels = [] text_channels = []
for guild in self.bot.guilds: for guild in self.bot.guilds:
@ -118,11 +121,11 @@ class Commands(commands.Cog):
text = len(text_channels) text = len(text_channels)
voice = len(voice_channels) voice = len(voice_channels)
embed.add_field(name='Développeur', value='Mylloon#7869') embed.add_field(name='Développeur', value='Mylloon#7869') # pub encore
embed.add_field(name='Serveurs', value=len(self.bot.guilds)) embed.add_field(name='Serveurs', value=len(self.bot.guilds))
embed.add_field(name='Membres', value=f'{total_unique} au total\n{total_online} en ligne') embed.add_field(name='Membres', value=f'{total_unique} au total\n{total_online} en ligne')
embed.add_field(name='Channels', value=f'{text} textuelles\n{voice} vocales') embed.add_field(name='Channels', value=f'{text} textuelles\n{voice} vocales')
embed.set_footer(text=f'Basé sur discord.py {discord.__version__}') embed.set_footer(text=f'Basé sur discord.py {discord.__version__}') # ca peut être utile de connaitre quel version le bot utilise sans devoir se connecter a distance au serveur qui fait tourner le bot
await ctx.send(embed=embed) await ctx.send(embed=embed)

View file

@ -2,6 +2,8 @@ import discord
from discord.ext import commands from discord.ext import commands
from random import randint from random import randint
# il y a deja une commande help de base mais celle ci est + jolie
class Help(commands.Cog): class Help(commands.Cog):
"""Listes des commandes et/ou catégories.""" """Listes des commandes et/ou catégories."""
@ -16,10 +18,12 @@ class Help(commands.Cog):
halp=discord.Embed(title = 'Liste des catégories et commandes non catégorisées', halp=discord.Embed(title = 'Liste des catégories et commandes non catégorisées',
description = 'Utilisez `.help *Catégorie*` pour en savoir plus sur eux !', description = 'Utilisez `.help *Catégorie*` pour en savoir plus sur eux !',
color = randint(0, 0xFFFFFF)) color = randint(0, 0xFFFFFF))
# liste des cogs
cogs_desc = '' cogs_desc = ''
for x in self.bot.cogs: for x in self.bot.cogs:
cogs_desc += (f'{x} - {self.bot.cogs[x].__doc__}\n') cogs_desc += (f'{x} - {self.bot.cogs[x].__doc__}\n')
halp.add_field(name = 'Catégories', value = cogs_desc[0:len(cogs_desc)-1], inline = False) halp.add_field(name = 'Catégories', value = cogs_desc[0:len(cogs_desc)-1], inline = False)
# liste des commandes dans main.py
cmds_desc = '' cmds_desc = ''
for y in self.bot.walk_commands(): for y in self.bot.walk_commands():
if not y.cog_name and not y.hidden: if not y.cog_name and not y.hidden:

12
main.py
View file

@ -4,20 +4,25 @@ import discord
from discord.ext import commands from discord.ext import commands
from setup import token from setup import token
# on décide du prefix
# on dit d'ignorer les majuscules/minuscules quand on tape une commande
# plus d'infos sur l'intent ici : https://discordpy.readthedocs.io/en/latest/intents.html (j'ai pas encore tout compris c'est nouveau)
client = commands.Bot(command_prefix = ".", case_insensitive = True, intents = discord.Intents.all()) client = commands.Bot(command_prefix = ".", case_insensitive = True, intents = discord.Intents.all())
@client.event @client.event
async def on_connect(): async def on_connect():
print("Le bot est en ligne.") print("Le bot est en ligne.")
# le status du bot
@client.event @client.event
async def on_ready(): async def on_ready():
await client.change_presence(status = discord.Status.online, activity = discord.Activity(name = "devenir fort en info", type = discord.ActivityType.playing)) await client.change_presence(status = discord.Status.online, activity = discord.Activity(name = "devenir fort en info", type = discord.ActivityType.playing))
print("Bot chargé à 100%.") print("Bot chargé à 100%.")
@client.event @client.event
async def on_raw_reaction_add(payload): async def on_raw_reaction_add(payload): # check toutes les nouvelles réactions
if payload.message_id == 765470422149365760: if payload.message_id == 765470422149365760: # on check si on réagis au message que l'on veut
# en fonction de la réaction on donne le role
if payload.emoji.name == '🟡': if payload.emoji.name == '🟡':
role = discord.utils.get(payload.member.guild.roles, name="L1A1") role = discord.utils.get(payload.member.guild.roles, name="L1A1")
await payload.member.add_roles(role) await payload.member.add_roles(role)
@ -37,6 +42,7 @@ async def on_raw_reaction_add(payload):
role = discord.utils.get(payload.member.guild.roles, name="L1C2") role = discord.utils.get(payload.member.guild.roles, name="L1C2")
await payload.member.add_roles(role) await payload.member.add_roles(role)
# meme systeme qu'au dessus sauf que c'est plus compliqué de choppé le membre pour lui retirer son rôle
@client.event @client.event
async def on_raw_reaction_remove(payload): async def on_raw_reaction_remove(payload):
if payload.message_id == 765470422149365760: if payload.message_id == 765470422149365760:
@ -71,6 +77,7 @@ async def on_raw_reaction_remove(payload):
role = discord.utils.get(guild.roles, name="L1C2") role = discord.utils.get(guild.roles, name="L1C2")
await member.remove_roles(role) await member.remove_roles(role)
# on importe les modules complémentaires situé dans cogs/
try: try:
client.load_extension("cogs.commands") client.load_extension("cogs.commands")
except Exception as error: except Exception as error:
@ -82,4 +89,5 @@ try:
except Exception as error: except Exception as error:
print(error) print(error)
# pour lancer le bot
client.run(token) client.run(token)