我正在尝试制作带有简单碰撞计数器和排行榜的不和谐机器人。当服务器被碰撞时 - 与服务器监控建立连接的机器人会在聊天中发送嵌入内容,表明服务器被碰撞。我用它来让不和谐的用户撞到服务器并为他计算不同的东西。
Disboard、DSMonitoring、服务器监控一切正常,如果我愿意,我还可以获取其他机器人的嵌入内容。但是 message.embeds 看不到 SD.C 监控的嵌入,我不明白为什么。
这是为 SD.C 监控提供 message.embeds 的内容,尽管我可以在我的测试不和谐服务器上看到嵌入存在: []
以下是为任何其他带有嵌入的消息提供 message.embeds 的示例:
[
这是代码的一部分,似乎包含与此问题相关的所有内容:
your text
from typing import Final
import os
import json
from dotenv import load_dotenv
from discord import Intents, Client, Message
from responses import get_response
from dataStoring import StoreDataInJson
from commands import bot
load_dotenv()
TOKEN: Final[str] = os.getenv("DISCORD_TOKEN")
intents: Intents = Intents.default()
intents.message_content = True
client: Client = Client(intents=intents)
@client.event
async def on_ready() -> None:
print(f'{client.user} is now running')
@client.event
async def on_message(message: Message) -> None:
if message.author == client.user:
return
username: str = str(message.author)
user_message: str = message.content
channel: str = str(message.channel)
print(f'[{channel}] {username}: <{message.embeds}> ')
def main() -> None:
client.run(token=TOKEN)
bot.run(token=TOKEN)
if __name__ == '__main__':
main()
机器人似乎推迟了响应并发送了后续信息。当它延迟时,会调用
on_message
。这就是为什么它没有嵌入。发送后续消息后,将调用 on_message_edit
。
@client.event
async def on_message_edit(before,after):
if before.embeds != after.embeds:
# your code here