当前位置: 首页 > 知识库问答 >
问题:

我如何用JDA用不和机器人改变刻痕

何正德
2023-03-14

我做了一个不和谐的机器人,我需要改变发送消息的用户的昵称,例如:人“a”发送一条消息,我想把他的名字改为“B”。

public void onGuildMessageReceived(GuildMessageReceivedEvent e) {
    if(e.getAuthor().isBot()) return;

    String[] args = e.getMessage().getContentRaw().split("\\s+");
    System.out.println("lengh: " + args.length);

    if(args[0].equalsIgnoreCase("!verify")) {
        if(args.length == 2) {
            Guild guild = e.getGuild();
            //guild.getMember(e.getAuthor()).modifyNickname("asdsllslslsl").queue();
            guild.modifyNickname(e.getMessage().getMember(), "pepeasd");
        }
    }
}

共有1个答案

都超英
2023-03-14

您没有将创建的RESTAction排队。要对其进行排队,需要在ModifynickName()方法后面添加.queue()

请在以下位置阅读有关restaction和JDA如何工作的更多信息:https://ci.dv8tion.net/job/JDA/javadoc/net/dv8tion/JDA/api/requests/restaction.html

 类似资料:
  • 这是ban命令的基本代码:

  • 我正在制作一个JDA(Java Discord API)程序,它需要检查消息是否是由机器人本身发送的。我怎样才能做到这一点?我想检查消息发送者的用户ID是否等于机器人的用户ID,但我如何在程序中获得机器人本身的用户ID?

  • 我正在开发一个Discord机器人,但当我尝试向频道发送消息时,它不起作用。 我尝试使用代码

  • null 编辑: 我使用了jda.getUserCache();检查缓存是否工作,我是缓存,但它仍然不工作。

  • 当用户使用搜索命令时,我的机器人将用结果和表情符号回复。如何检查用户是否单击此表情符号? 事件回复(idResults.getMovieResults()。获取(0)。toString())。队列();事件getChannel()。sendMessage(“单击将其添加到您关注的列表中”)。队列(msg)-

  • 我在某处读到,您每10分钟只能修改2个通道,但您发送的消息也是如此吗?或者您只能每10分钟执行更改/发送/创建两次这样的操作吗? 和之间有什么区别 提前致谢:D