Eine persönlich verwendete Vorlage zum Erstellen von Discord BOT in Python (Notizen)

Annahme

Umgebung


Python 3.6.6
Discord.py-1.2.5

Verzeichnisaufbau


├ 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('BOT starten')

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("Erhielt einen Befehl.")

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

Beschreibung und Hinweise

main.py

DiscordBot_Cogs = [
    'cogs.mainCmd'
]

Fügen Sie "cogs.mainCmd" in die Liste "DiscordBot_Cogs" ein. Befolgen Sie beim Hinzufügen einer Python-Datei (cog) für Befehle die Listenschreibmethode.

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

Und. cogs ist der Ordnername und mainCmd ist der Dateiname ohne Erweiterung.

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

Drehen Sie die vorherige Liste mit einer for-Anweisung und registrieren Sie das Zahnrad mit try & exception. (Ein Fehler tritt auf, wenn die Datei nicht vorhanden ist, weil der Dateiname falsch ist.)

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

Zeichen, die am Anfang mit BOT-Befehlen hinzugefügt werden sollen (!? Für MonsterBOT, / für Minecraft-Stil) mainCmd.py

@commands.command()
async def cmd(self, ctx):
    await ctx.send("Erhielt einen Befehl.")

Ich habe gerade !? Cmd eingegeben und denBefehl auf diesem Kanal erhalten. Ein Befehl zum Senden anund BOT.

Wenn Sie hierfür ein Argument verwenden, gehen Sie wie folgt vor.

@commands.command()
async def cmd(self, ctx, *args):
    if len(args) == 0:
        await ctx.send("Es gibt keine Argumente.")
    if len(args) == 1:
        await ctx.send("Mit einem Argument**" + args[0] + "**Ist.")
    if len(args) == 2:
        await ctx.send("Mit zwei Argumenten**" + args[0] + "**Wann**" + args[1] + "**Ist.")

Der Rest sollte erhöht werden.

Recommended Posts

Eine persönlich verwendete Vorlage zum Erstellen von Discord BOT in Python (Notizen)
Ich habe in Python einen Discord-Bot erstellt, der übersetzt, wenn er reagiert
Funktionen von Modulen für reguläre Ausdrücke, die in Python häufig persönlich verwendet werden
Ein Memo, das ich schnell in Python geschrieben habe
[Frage] Was passiert, wenn Sie% in Python verwenden?
In Python habe ich einen LINE-Bot erstellt, der Polleninformationen aus Standortinformationen sendet.
String-Manipulation mit Python & Pandas, die ich oft benutze
Beachten Sie beim Initialisieren einer Liste in Python
Was ist in dieser Variablen (wenn das Python-Skript ausgeführt wird)?
Verwenden Sie communic (), wenn Sie eine Ausgabe in einem Python-Unterprozess empfangen
Erstellen Sie einen Discord-Bot, der einseitig mit Python benachrichtigt (nur Anfragen und JSON werden verwendet).
Ich habe einen Zwietrachtbot gemacht
Python-Bedingungsextraktion aus der Liste, die ich oft vergesse
[Python] Hinweise beim Versuch, Numpy mit Cython zu verwenden
Verwenden Sie ein Makro, das beim Speichern von Python mit vscode ausgeführt wird
Ich habe versucht, "ein Programm, das doppelte Anweisungen in Python entfernt"
Als ich einen Discord Bot gemacht habe, haben meine Klassenkameraden meinen Computer zerstört
Ein Memorandum, das Sie häufig mit Selen in Python verwenden
Eine Geschichte, die verschwunden ist, als ich einen Pfad angegeben habe, der mit tilda (~) in Python Open beginnt
[Python] Ich habe einen Line-Bot erstellt, der zufällig nach englischen Wörtern fragt
Ich möchte einen Platzhalter verwenden, den ich mit Python entfernen möchte
Verwenden Sie networkx, eine Bibliothek, die Diagramme in Python verarbeitet (Teil 2: Lernprogramm).
Einfach! Implementieren Sie einen Twitter-Bot, der auf Heroku in Python ausgeführt wird
Ein Hinweis, von dem ich süchtig war, als ich unter Linux einen Piepton machte
Bei Verwendung von @property in Python wird ein Attribut nicht festgelegt
Eine Geschichte, die nicht funktioniert hat, als ich versucht habe, mich mit dem Python-Anforderungsmodul anzumelden
Beim Schreiben eines Programms in Python
[Python] Ich habe einen Bot erstellt, der mir die aktuelle Temperatur anzeigt, wenn ich einen Ortsnamen in LINE eingebe
Ich habe eine generische Python-Projektvorlage erstellt
[Python] Ich habe einen Dekorateur gemacht, der keinen Nutzen zu haben scheint.
Ich habe eine Webanwendung in Python erstellt, die Markdown in HTML konvertiert
Ich habe versucht, einen Formatierer zu entwickeln, der Python-Protokolle in JSON ausgibt
Ein Memorandum, weil ich beim Versuch, MeCab mit Python zu verwenden, gestolpert bin
[IOS] Ich habe ein Widget erstellt, das den Trend von Qiita in Pythonista3 anzeigt. [Python]
Hinweise Ich habe nachgeschlagen, um Befehlszeilentools in Python zu erstellen
Ein nützlicher Hinweis, wenn Sie Python nach langer Zeit verwenden
Verwenden Sie print in Python2 lambda expression
Ich habe ein Pay-Management-Programm in Python erstellt!
Vorsichtsmaßnahmen beim Beizen einer Funktion in Python
Ich habe ein Passwort-Tool in Python erstellt.
Ein Memo, auf das ich gestoßen bin, als ich ein Zitat RT auf Twitter Bot gemacht habe
[Vollständiges Memorandum] Eine Sammlung von Codes, die ich oft benutze, aber nicht erinnern kann
Ich habe versucht, eine Klasse zu erstellen, mit der Json in Python problemlos serialisiert werden kann
Ich habe einen Zeilenbot erstellt, der Python verwendet, um ungelesene E-Mails aus Google Mail abzurufen!
Ich möchte eine Prioritätswarteschlange erstellen, die mit Python (2.7) aktualisiert werden kann.
Ich habe PyQCheck, eine Bibliothek, die QuickCheck mit Python ausführen kann, in PyPI registriert.
[Anfänger] Was passiert, wenn ich ein Programm schreibe, das in Python auf PHP läuft?
Beachten Sie, dass ich den Algorithmus der kleinsten Quadrate verstehe. Und ich habe es in Python geschrieben.
Bei Verwendung des Dialogfelds zum Öffnen des Verzeichnisses in Tkinter wird ein seltsames Fenster angezeigt
[Python] Ich habe einen LINE-Bot erstellt, der Gesichter erkennt und Mosaikverarbeitungen durchführt.
Ich habe versucht, einen Übersetzungs-BOT zu erstellen, der mit Discord unter Verwendung von Googletrans funktioniert
Ein Hinweis, dem ich beim Ausführen von Python mit Visual Studio Code verfallen war
Wenn Sie einen Discord-Bot mit Python erstellen möchten, verwenden wir ein Framework
Eine Geschichte, der ich nach der SFTP-Kommunikation mit Python verfallen war
Ich möchte mit Python ein Fenster erstellen
Ich habe versucht, mit Python ein Tippspiel zu spielen
Wenn ich matplotlib in Python versuche, heißt es'cairo.Context '.
Ich habe eine Klasse in Python3 und Java geschrieben
Ein Programm, das doppelte Anweisungen in Python entfernt