Wie macht man es, dass ein Bot Befehl nur in einem bestimmtem Kanal ausgeführt wird?
Ich brauche eure Hilfe, weil ich nicht möche, dass der Bot überall den Befehl ausführen kann. (habe die Klammer, für den Screenshot, durch "hh" ersetzt, weil es privat ist.)
Wenn ihr das zweite auch noch wisst: Hätte gerne, dass die Bot antwort dann öfter als einmal kommt... also sie soll sich im Minuten Takt wiederholen..
Wenn ihr wissen wollt was das werden soll; nun also ich möchte einen Channel machen, dem man folgen kann, wo dann jede Stunde Serverwerbung reingeschickt wird.
Bitte keine Hasskommentare!
1 Antwort
![](https://images.gutefrage.net/media/default/user/11_nmmslarge.png?v=1551279448000)
Probier es mal so:
Beachte den Prefix bitte!
Wenn du es automatisch ohne command ausführen lassen möchtest schreibe das ganze doch in ein on_ready?
import discord
import asyncio
from discord.ext import commands
bot = commands.Bot(intents=discord.Intents.all(), command_prefix='.')
knl = 87568643486535 #<--Channelid
@bot.event()
async def on_message(message):
while True:
if message.content.startswith("Message"):
if message.channel.id== knl:
await message.send("hh")
await asyncio.sleep(60*60) #60*60= 1 Stunde #60*60*24 = 1 Tag #x*y*z x = sekunden y = minuten z = Stunden
keep_alive()
bot.run(os.getenv('Token'))