Umgebung
Python 3.6.6
Discord.py-1.2.5
Verzeichnisaufbau
├ cogs
│ └ mainCmd.py
└ main.py
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))
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 an
und 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.