我们正在创建一个 Discord 机器人。
问题是控制台中没有错误,但 Discord 中的聊天也是空的。所以完全没有反应。你能帮我说一下我的错误是什么以及如何解决这个问题
最好的祝福, 尼克提克斯
import discord
from discord.ext import commands
import asyncio
from dotenv import load_dotenv
from discord.ext.commands import Bot
import askai
import numpy
import random
import json
import datetime as DT
from time import sleep
import sLOUT as lout
import os
botStartTime = DT.datetime.now()
ver = ['v1.0.8', '2021-01-13']
config = 'config.yml'
bot = commands.Bot(command_prefix = '!')
lout.writeFile('AskAIBotLogs.txt', '\naskai initialisiert!', True)
load_dotenv()
@bot.command(pass_context=True)
async def time(ctx):
startTime = DT.datetime.now()
await ctx.send('Auf dem server ist aktuell folgende Uhrzeit: {}'.format(DT.datetime.now()))
lout.log(config, startTime, 'time')
@bot.event
async def on_ready():
await bot.change_presence(activity=discord.Activity(type=1, name='Beantwortet Fragen', url='https://www.youtube.com/watch?v=e3tuUKGIaGw', platform='YouTube', assets='askai',))
lout.log(config, botStartTime, None, None, True)
print('Eingeloggt als {}'.format(bot.user.name))
@bot.event
async def on_message(message):
if message.author.bot:
return
if message.channel.name != "askai-support":
return
if message.content.startswith("!"):
return
await bot.process_commands(message)
await message.channel.send(askai.ask(message.content))
bot.run('token')
答案 0 :(得分:0)
为什么不起作用?嗯,答案很简单。请参考您提供的以下几行:
@bot.event
async def on_message(message):
if message.author.bot:
return
if message.channel.name != "askai-support":
return
<块引用>
此时在代码中提供频道名称。虽然,您之后不提供频道 ID。因此,机器人无法获得所述频道。要获取频道 ID,请参阅 Discord 的官方指南 here。这样做后,制作与上面相同的代码行,尽管将“message.channel.name”替换为“message.channel.ID”。如果您有任何其他问题,请告诉我。最好的问候,