2 Python/PyCharm files für einen Discord Bot?

1 Antwort

Von Experte Dultus, UserMod Light bestätigt

Hey!

Also das Problem was mir mit Discord.py bekannst ist, ist dass wenn du das Event "OnMessage" hinzufügst es wichtig ist, dass du auch ein

await client.process_commands(message)

in dem Event stehen hast. Sonst werden die Commands ignoriert. Bei anderen Events wie einem "OnReactionAdd" zum Beispiel musst du das nicht hinzufügen, das gillt lediglich für das "OnMessage"-Event.

Wenn du zwei Datein miteinander verknüpfen willst, ist es etwas komplizierter. Allgemein sind Cogs(So heißen externe Files) ein recht kompliziertes Thema, zudem funktionieren sie anders als die herkömmlichen "Bot.py" files. Aber hier ist eine Step-by-Step Anweisung:

  • In deinem Ordner, wo du dein Mainfile hast erstellst du eine weitere Datei und nennst sie am besten passend zu dem Inhalt, der sie befüllen soll. In dem Beispiel einfach mal "help.py".
  • in diesem File fügst du dann erstmal diesen Code ein:
import discord
from discord.ext import commands
            
class Help(commands.Cog):
    def __init__(self, bot):
        self.bot = bot
    @commands.command(name="help") # Hier ist es wichtig, dass du in deinem Mainfile "client.remove_command("help") eingibst, da es sonst einen Error geben wird
    async def help_command(self, ctx):
        await ctx.send("This is a help command")
  
def setup(bot):
      bot.add_cog(Help(bot))
  • Im Mainfile fügst du dann folgendes ein:
client.load_extension("help")

Das ist zwar nicht die beste Methode einen Cog einzubauen, sollte aber für's Erste funktionieren.

Falls du noch Fragen hast oder weitere Hilfe brauchst, melde dich doch gerne bei mir!

LG™

Woher ich das weiß:eigene Erfahrung
Jonah5555 
Fragesteller
 22.03.2021, 17:14

Vielen vielen Dank, das hatte mir gefehlt. Sitze schon sooo lange daran, super!! VIELEN DANK

0
Sarguhl  22.03.2021, 17:45
@Jonah5555

Kein Ding! Wie gesagt, wenn du Fragen hast oder Hilfe brauchst (auch allgemein zu Python und/oder Discord.py) melde dich doch gerne :)

0