如何在onButtonInteraction中获取执行命令的用户?已遇空指针异常
- 直接使用
event.getUser()即可获取点击按钮的用户,这是最可靠的方式,只要按钮交互事件触发,该方法一定会返回对应的用户对象,不会出现空指针异常。
你之前方法出错的原因:
event.getMessage().getReferencedMessage().getUser():只有当按钮所在的消息是回复其他消息时,getReferencedMessage()才会返回非null值;如果这条消息不是回复,调用该方法会得到null,后续调用getUser()自然抛出空指针异常。event.getJDA().getUserByTag():用户标签(格式为「昵称#四位数字」)本身不会包含空格,且该方法依赖JDA的用户缓存,如果缓存中没有对应用户就会返回null;更关键的是,这个方法完全没必要用——交互事件本身已经携带了触发用户的信息,不需要通过标签去查找。
内容的提问来源于stack exchange,提问作者Artur
相关产品推荐
相关产品推荐

