提交 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以避免合并提交