Discord Python Bot 不发送对命令的响应

时间:2021-01-13 20:14:46

标签: python discord bots

我们正在创建一个 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')

1 个答案:

答案 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”。如果您有任何其他问题,请告诉我。最好的问候,