我的 python discord bot 奇怪地发送消息

Posted

技术标签:

【中文标题】我的 python discord bot 奇怪地发送消息【英文标题】:My python discord bot is sending messages oddly 【发布时间】:2021-05-03 22:12:16 【问题描述】:

好的,所以我的目标的基本要点是,我正在尝试创建一个可管理的列表,以帮助在不和谐服务器中组织主题名称。我的代码应该让我查看列表编辑列表并再次显示。当我的机器人尝试发送更新的列表时,问题就出现了。这是我的代码和我的问题。

import discord
from discord.ext import commands

client = commands.Bot(command_prefix = '/')

FreeExtras = []

@client.command()
async def Free0(ctx):
    await ctx.send(FreeExtras)

@client.command()
async def addextra(ctx):
    name = await client.wait_for('message',check=lambda m: m.author == ctx.author and m.channel == ctx.channel)
    FreeExtras.append(name)

当我在编辑后尝试显示列表时,我的机器人会发送:

[ author= flags=>]

【问题讨论】:

要使Free0 工作,我认为您必须将列表转换为字符串,在send() 函数中使用str(FreeExtras) 而不是FreeExtras。看起来正在发送的消息是 discord.Message 对象而不是内容,但是看起来您还没有发布该命令的功能。您必须使用 Message.content 从对象中获取内容。 【参考方案1】:

wait_for('message') 返回一个Message 对象,您需要通过.content 附加它的content

import discord
from discord.ext import commands

client = commands.Bot(command_prefix = '/')

FreeExtras = []

@client.command()
async def Free0(ctx):
    await ctx.send(FreeExtras)

@client.command()
async def addextra(ctx):
    global FreeExtras
    name = await client.wait_for('message',check=lambda m: m.author == ctx.author and m.channel == ctx.channel)
    FreeExtras.append(name.content)

【讨论】:

以上是关于我的 python discord bot 奇怪地发送消息的主要内容,如果未能解决你的问题,请参考以下文章

Discord Python Bot- 修复清除命令

Discord Bot 在第二次执行时需要很长时间

Python Discord Bot:如何与用户交互?

Python 3.6 Discord bot Bot 事件冲突

Python,Discord bot 未回复消息且终端未更新

bot删除消息Discord.py python 3.9.2时的日志记录问题