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

JDA-如何获取机器人自身的用户ID

周威
2023-03-14

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

共有1个答案

颛孙庆
2023-03-14

如果使用MessageReceiveVent,只需使用:event.getauthor.isbot()检查发件人是否是bot。

您可以通过访问JDA并调用getSelfUser()来访问bot本身的用户,如下所示,同时记住MessageReceivedEvent:event.getJDA().getSelfUser()

在SelfUser上,您可以调用SelfUser#getid()SelfUser#getidlong()来访问ID。

public class Listener extends ListenerAdapter {
  @Override
  public void onMessageReceived(MessageReceivedEvent event) {
    boolean isBot = event.getAuthor().isBot() //Check if the Message Sender is a bot
    
    long id = event.getJDA().getSelfUser().getIdLong() //the bot ID
  }
}
 类似资料:
  • 我一直在使用Telegram机器人,并试图从组中获取成员列表,但我不知道我必须使用哪些方法。 https://gram.js.org/beta/classes/TelegramClient.html#getParticipants和我找到了这个文件,但不知道如何使用它。

  • 我一直在使用电报机器人为一个组和用户发送通知。 我已经知道我可以通过使用getUpdates在我的机器人上接收用户的消息来获取聊天ID。 我也知道我可以使用相同的方法获取Group ID... 但我真正需要的是:我的团队中有三个用户。 我的机器人 有可能得到第三个用户的ID吗?PS:我是群主,还将我的机器人添加为管理员... 第三个用户是普通用户。有人能帮我吗? 谢啦!

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

  • 我刚刚开始学习Telegram Bot API,以学习如何通过Java对Bot进行编程。我不明白机器人如何识别通过 然后使用MessageEntity获取实体的类型。getType()。现在,如果我理解的话,有两种类型的提及:

  • 我目前正在用JDA用Java开发我的discord bot。直到两周前都很有效。由于这一次JDA似乎不再能够通过event.getguild().getmembers()获取所有用户,它将只返回自bot启动以来在聊天中写道的成员。使用event.getGuild().getMemberCount()方法,JDA将提供正确的用户数,但是如果我用event.getGuild().getMembers(

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