ajout des annotations
This commit is contained in:
parent
d468ecc8e0
commit
1efe25d141
3 changed files with 23 additions and 8 deletions
|
@ -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)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
12
main.py
|
@ -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)
|
Reference in a new issue