Un modèle personnellement utilisé pour créer Discord BOT en Python (Notes)

supposition

environnement


Python 3.6.6
Discord.py-1.2.5

Structure du répertoire


├ cogs
│   └ mainCmd.py
└ main.py

code

main.py


import discord
from discord.ext import commands
import traceback 

DiscordBot_Cogs = [
    'cogs.mainCmd'
]

class MyBot(commands.Bot):
    def __init__(self, command_prefix):
        super().__init__(command_prefix)
        for cog in DiscordBot_Cogs:
            try:
                self.load_extension(cog)
            except Exception:
                traceback.print_exc()

    async def on_ready(self):
        print('Démarrage du BOT')

if __name__ == '__main__':
    bot = MyBot(command_prefix='!?')
    bot.run('TOKEN') 

mainCmd.py


from discord.ext import commands

class MainCmdCog(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.command()
    async def cmd(self, ctx):
        await ctx.send("Reçu une commande.")

def setup(bot):
    bot.add_cog(MainCmdCog(bot))

Description et remarques

main.py

DiscordBot_Cogs = [
    'cogs.mainCmd'
]

Mettez 'cogs.mainCmd' dans la liste DiscordBot_Cogs. Lors de l'ajout d'un fichier Python (rouage) pour les commandes, suivez la méthode d'écriture de liste.

DiscordBot_Cogs = [
    'cogs.mainCmd',
    'cogs.exampleCmd'
]

Et. «cogs» est le nom du dossier et «mainCmd» est le nom du fichier sans extension.

for cog in DiscordBot_Cogs:
    try:
        self.load_extension(cog)
    except Exception:
        traceback.print_exc()

Tournez la liste précédente avec une instruction for et utilisez try & except pour enregistrer le rouage. (Une erreur se produit si le fichier n'existe pas car le nom du fichier est incorrect.)

if __name__ == '__main__':
    bot = MyBot(command_prefix='!?')
    bot.run('TOKEN') 

Caractères à ajouter au début avec les commandes BOT (!? Pour MonsterBOT, / pour le style Minecraft) mainCmd.py

@commands.command()
async def cmd(self, ctx):
    await ctx.send("Reçu une commande.")

Je viens de taper !? Cmd et j'ai reçu la commande` sur ce canal. Une commande à envoyer à ʻet BOT.

Lorsque vous utilisez un argument pour cela, procédez comme suit.

@commands.command()
async def cmd(self, ctx, *args):
    if len(args) == 0:
        await ctx.send("Il n'y a pas d'arguments.")
    if len(args) == 1:
        await ctx.send("Avec un seul argument**" + args[0] + "**Est.")
    if len(args) == 2:
        await ctx.send("Avec deux arguments**" + args[0] + "**Quand**" + args[1] + "**Est.")

Le reste devrait être augmenté.

Recommended Posts

Un modèle personnellement utilisé pour créer Discord BOT en Python (Notes)
J'ai créé un bot Discord en Python qui se traduit quand il réagit
Caractéristiques des modules d'expressions régulières qui sont souvent utilisés personnellement en Python
Un mémo que j'ai écrit un tri rapide en Python
[Question] Que se passe-t-il si vous utilisez% en python?
En Python, j'ai créé un LINE Bot qui envoie des informations sur le pollen à partir des informations de localisation.
Manipulation de chaînes avec python et pandas que j'utilise souvent
Choses à noter lors de l'initialisation d'une liste en Python
Que contient cette variable (lorsque le script Python est en cours d'exécution)
Utilisez communiquer () lors de la réception de la sortie dans un sous-processus Python
Créez un bot discord qui notifie unilatéralement avec python (seuls les requêtes et json sont utilisés)
J'ai fait un robot discord
python Extraction de condition de la liste que j'oublie souvent
[python] Remarques lors de la tentative d'utilisation de numpy avec Cython
Utilisez une macro qui s'exécute lors de l'enregistrement de python avec vscode
J'ai essayé "un programme qui supprime les déclarations en double en Python"
Quand j'ai créé un Discord Bot, mes camarades de classe ont détruit mon ordinateur
Un mémorandum que vous utiliserez souvent avec Selenium en Python
Une histoire qui a disparu quand j'ai spécifié un chemin commençant par tilda (~) en python open
Je souhaite utiliser un caractère générique que je souhaite décortiquer avec Python remove
Utilisez networkx, une bibliothèque qui gère les graphiques en python (Partie 2: Tutoriel)
Facile! Implémenter un bot Twitter qui s'exécute sur Heroku en Python
Une note à laquelle j'étais accro lors de l'émission d'un bip sous Linux
J'obtiens un attribut impossible à définir lors de l'utilisation de @property en python
Une histoire qui n'a pas fonctionné lorsque j'ai essayé de me connecter avec le module de requêtes Python
Lors de l'écriture d'un programme en Python
[Python] J'ai créé un robot qui me dit la température actuelle lorsque j'entre un nom de lieu sur LINE
J'ai créé un modèle de projet Python générique
[Python] J'ai fait un décorateur qui ne semble pas avoir d'utilité.
J'ai créé une application Web en Python qui convertit Markdown en HTML
J'ai essayé de développer un formateur qui génère des journaux Python en JSON
Un mémorandum parce que j'ai trébuché en essayant d'utiliser MeCab avec Python
[IOS] J'ai créé un widget qui affiche la tendance de Qiita dans Pythonista3. [Python]
Notes J'ai recherché la création d'outils de ligne de commande en Python
Une note utile lors de l'utilisation de Python après une longue période
Utiliser l'impression dans l'expression lambda Python2
J'ai fait un programme de gestion de la paie en Python!
Précautions lors du décapage d'une fonction en python
J'ai créé un outil de mot de passe en Python.
Un mémo sur lequel je suis tombé par hasard en faisant une citation RT sur Twitter Bot
[Note complète] Une collection de codes que j'utilise souvent mais dont je ne me souviens pas
J'ai essayé de créer une classe qui peut facilement sérialiser Json en Python
J'ai créé un Line Bot qui utilise Python pour récupérer les e-mails non lus de Gmail!
Je souhaite créer une file d'attente prioritaire pouvant être mise à jour avec Python (2.7)
J'ai enregistré PyQCheck, une bibliothèque qui peut effectuer QuickCheck avec Python, dans PyPI.
[Débutant] Que se passe-t-il si j'écris un programme qui s'exécute sur php en Python?
Notez que je comprends l'algorithme des moindres carrés. Et je l'ai écrit en Python.
Une fenêtre étrange apparaît lors de l'utilisation de la boîte de dialogue Ouvrir le répertoire dans Tkinter
[Python] J'ai créé un LINE Bot qui détecte les visages et effectue le traitement de la mosaïque.
J'ai essayé de créer un BOT de traduction qui fonctionne avec Discord en utilisant googletrans
Une note à laquelle j'étais accro lors de l'exécution de Python avec Visual Studio Code
Si vous voulez créer un bot discord avec python, utilisons un framework
Une histoire à laquelle j'étais accro après la communication SFTP avec python
Je veux créer une fenêtre avec Python
J'ai essayé de jouer à un jeu de frappe avec Python
Quand j'essaye matplotlib en Python, il dit 'cairo.Context'
J'ai écrit une classe en Python3 et Java
Un programme qui supprime les instructions en double en Python