提交 onMessageReceived/onSlashCommand 事件时如何在 JDA 中获取公会 ID

Posted

技术标签:

【中文标题】提交 onMessageReceived/onSlashCommand 事件时如何在 JDA 中获取公会 ID【英文标题】:How to get guild ID in JDA when committing onMessageReceived/onSlashCommand event 【发布时间】:2021-12-28 14:20:25 【问题描述】:

我试过用这个方法:

    event.getGuild().getId();

但我总是得到 null。 (貌似这个方法根本没有在 Guild 接口中实现)

我怎样才能得到发生这个或那个事件的公会的id?

附注我需要公会 ID,这是在 json 中存储数据所必需的

【问题讨论】:

getId() 从不返回 null,所以我认为您的问题描述不正确。 【参考方案1】:

确保您收到的消息来自公会而不是私人消息,如果消息/命令是从公会发送的,则使用 event.isFromGuild() 返回 true,或者您可以使用 event.getChannelType() 获取消息的频道类型已发送。

如果你只想要公会消息而不是私人消息,你也可以使用onGuildMessageReceived而不是onMessageReceived,如果你只想要私人消息,也可以使用onPrivateMessageReceived

【讨论】:

以上是关于提交 onMessageReceived/onSlashCommand 事件时如何在 JDA 中获取公会 ID的主要内容,如果未能解决你的问题,请参考以下文章

网页表单提交后所提交的内容是怎么显示的

Gerrit总是在提交补丁集之前进行rebase以避免合并提交

SVN在提交项目的时候,有些文件不想提交,怎么才能忽略不需要提交的文件?

在winform当中提交数据,如何防止重复提交?

JQuery函数提交()不提交表单

form提交后刷新又提交一次,怎么解决,重复提交,求高人解答