NameError: name 'guild' is not defined?
import discord
import time
from discord.ext import commands
import random
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print('''
Bereit!
''')
await client.change_presence(activity=discord.Game(name="Python 3.9"))
@client.event
async def on_message(message):
if message.author == client.user:
return
while 5 > 1:
if message.content.startswith('$py'):
time.sleep(1)
await message.channel.send('Hey')
await message.channel.send('https://cdn.discordapp.com/emojis/1021051851967320114.webp?size=4096')
await guild.create_text_channel('Python 3.9')
client.run('My Token')
error: await guild.create_text_channel('Python 3.9')
NameError: name 'guild' is not defined
2 Antworten
musst noch vor `guild.create_text_channel('Python 3.9')` guild definieren, also zB duch `guild = message.guild`
und btw why ist diese ganze funktion in einer while True funktion? dadurch wird dein bot immer wieder die nachrichten senden und den channel erstellen ... Würde dir da dringend von abraten dass in einer while True schleife zu haben ;P
Hey
Danke für die Antwort
Ich habs absichtlich in der while schleife. daher ich einen Bot wollte der
halt Channel spammed.
Keine Ahnung warum xd
Dein Fehler liegt daran, dass er nicht weiß, in welcher DIscord-Server er den Text-Channel kreieren soll. Also wenn du den Kanal in den gleichen Server machen möchtest, dann musst du noch message angeben:
await message.guild.create_text_channel('Python 3.9')
Wenn du auf einen bestimmten Server den Kanal hinzufügen möchtest, dann kann du es auch direkt definieren.
client.get_guild(ID)
Mir ist mir ein paar Problem bei deinem Code aufgefallen. Wenn du while 5 > 1: machst und kein Abbruchmechanismus einbaust, dann wird es eine Endlosschleife.
Ein weiterer Fehler ist, dass du mit time.sleep die Zeit abwartest. Aber da es eine Asynkrone Funktion ist, kann in dieser Zeit kein weiterer Befehl ausgeführt werden. Ich würde dir bei deinem Code eher
import asyncio
await asyncio.sleep(1)
empfehlen.
Ich hoffe ich konnte dir weiterhelfen und wenn du noch Fragen hast dann kannst du mich natürlich fragen.
LG