首页 > 解决方案 > 从消息方法中获取用户

问题描述

我正在尝试使用成员活动制作一个不和谐的机器人,例如,谁向用户发送了许多消息,但是每次我尝试从消息中捕获用户以验证活动时,方法都不起作用。这是一个例子:

if (event.getMessage().getContentRaw().equalsIgnoreCase(prefix + "testMention")) {
    if (event.getMessage().getMentionedMembers().size() < 1) {
        canal.sendMessage("You don't mentioned any users").queue();
        return; 
    }

    User target = (User) event.getMessage().getMentionedMembers().get(0);
    canal.sendMessage("You've been mentioned " + target.getAsTag()).queue();
}

标签: discord-jda

解决方案


除非您的前缀是提及,否则您的代码将无法工作。例如,如果消息内容等于,"!testMention"那么您的第一个条件为真,那么getMentionedMembers().size() < 1在这种情况下,第二个条件必须为真,因为您的消息内容不包含提及。

您不能转换为MemberUser因为它们是完全不同的类型。如果你想拥有一个用户,那么你需要使用getMentionedUsers()member.getUser()


推荐阅读