试图创建一个不和谐的机器人来响应消息,但没有任何反应

时间:2020-02-24 15:29:23

标签: python bots discord

我想创建一个机器人,该机器人可以响应我服务器中特定用户发布消息的所有消息(使用default_emojis和custom_emojis列表中的表情)。

我浏览了一些过时的教程,甚至是大约一年前在这里提出的问题,但最终还是尝试了一下,但是服务器中什么都没有发生。该机器人会在线,但不会对任何事情做出反应。

这是我使用的代码:

import discord
from discord.ext    import commands
from discord.ext.commands   import Bot
import asyncio

bot = commands.Bot(command_prefix = "!")

async def on_ready():
    print ("welcome_msg")


default_emojis = [
    "\N{GRINNING FACE}",
]

custom_emojis = [
    "staylovesmall"
]

async def react(message):
    for emoji in default_emojis:
        await message.add_reaction(emoji)
    for emoji in message.guild.emojis:
        if emoji.name in custom_emojis:
            await message.add_reaction(emoji)

@bot.event
async def on_message(message):
    if message.author.id == "user_id":
        await react(message)

bot.run("<Bot ID here>")

使用if message.author.id == "<the user's id>" :会破坏机器人,但使用

@bot.event
async def on_message(message):
    if message.author == bot.user:
        return
    if "react to me" in message.content.lower():
        await react(message)

我对python的了解非常有限,列表和元组之外的任何东西对我来说都是古希腊语。 有什么想法吗?非常感谢!

编辑:我将str替换为int,并尝试添加文本表情(例如:regional_indicator_a :),这给了我这个错误:

Ignoring exception in on_message
Traceback (most recent call last):
  File "C:\Users\Kailash Seshadri\AppData\Local\Programs\Python\Python37-32\lib\site-packages\discord\client.py", line 312, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\Kailash Seshadri\Desktop\React\bot.py", line 39, in on_message
    await react(message)
  File "C:\Users\Kailash Seshadri\Desktop\React\bot.py", line 31, in react
    await message.add_reaction(emoji)
  File "C:\Users\Kailash Seshadri\AppData\Local\Programs\Python\Python37-32\lib\site-packages\discord\message.py", line 928, in add_reaction
    await self._state.http.add_reaction(self.channel.id, self.id, emoji)
  File "C:\Users\Kailash Seshadri\AppData\Local\Programs\Python\Python37-32\lib\site-packages\discord\http.py", line 225, in request
    raise HTTPException(r, data)
discord.errors.HTTPException: 400 BAD REQUEST (error code: 10014): Unknown Emoji

代码是:

default_emojis = [
    "\N{GRINNING FACE}",
    "\U0001F606"

    "\U0001F1F8"
]

前两个单独工作正常,但是当我在第3个位置添加字母时,会出现错误,并且两个Unicode表情都不会注册。有任何想法吗?谢谢

2 个答案:

答案 0 :(得分:0)

@Patrick Haugh所说的话:不和谐的雪花(如author.id)在v1.0中已成为整数。 (documentation)

因此,您需要调整的代码如下:

假设您要检查的用户的ID为“ 123”。

@bot.event
async def on_message(message):
    if message.author.id == 123: # removed the quotes here
        await react(message)

答案 1 :(得分:0)

关于解决表情符号问题,我建议使用复制粘贴的表情符号而不是unicode字符串。 Emojipedia是一个很好的资源。