我正在尝试创建一个事件,它将发送到某个频道的 Discord 消息记录在标有该特定频道 ID 的文本文件中,该文本文件本身位于标有服务器 ID 的文件夹中。
@bot.event
async def on_message(ctx):
msg_cnt = ctx.content
#msg_chnl = ctx.channel
#msg_srvr = ctx.message.guild.id
msg_sndr = ctx.author#.split("#")[0]
#log = open(msg_srvr + "/" + msg_chnl + ".txt")
#log.write(msg_sndr, ": ", msg_cnt, "\n")
print(msg_sndr, ": ", msg_cnt)
您会注意到我注释掉了几件事。这是因为那里显示的内容(未注释掉的内容)有效。然而,当我尝试做一些简单的事情,比如分割
msg_sndr
字符串(即使是在新行上)时,当我在 Discord 上发送一条消息时,它会抛出一个错误,并且不会告诉我我做错了什么。它说 "An error occured: "
后面跟着一堆关于我发送测试消息的通道和服务器的信息。这很奇怪(至少对我来说),当我尝试分割一个消息时,它会给我一个奇怪的 Discord API 错误。蟒蛇字符串。我很困惑。即使完全删除 split 函数并尝试将消息记录在测试文件中也会产生相同的结果。
就像@guy-incognito所说,
ctx.author
不是字符串,你必须使用ctx.author.name
和ctx.author.id
作为作者的用户名和ID。