我试图写一个简单的调用,列出一个公会的所有用户,检查他们的名字旁边是否有氏族标签,如果没有添加他们,但我不能为我的生活得到它的工作。我得到空指针时,检查昵称,所以我认为我没有得到这些值正确。
我对Java很在行,只是以前从未使用过JDA。我找不到任何像列出所有成员并遍历它们这样简单的代码示例。谁能给我指一下正确的方向吗?我在大学里做了一些关于Rest的事情,但不是很多。
添加catch块,但我没有将任何昵称的值添加到我的列表中,所以我的代码没有做任何事情。我尝试过在列表、数组和数组列表中实现,但问题似乎是从公会本身获取信息。
if(event.getMessage().getContentRaw().equals("!tags")){
Guild guild = event.getGuild();
List<Member> users = guild.getMembers();
for(Member member: users){
String s = "";
try{
s = member.getNickname();
if(!member.getNickname().startsWith("[NNN]")) {
try {
member.modifyNickname("[NNN]" + member.getNickname()).queue();
} catch (Exception ignored) {
}
}
}
catch(Exception ignored){ }
}
}
昵称可以为null,因为用户可以选择不设置昵称,这由返回null表示。您可以通过执行s==null | |来检查这一点!s、 以“[NNN]”开头
。或者,您可以使用getEffectiveName
,如果没有为服务器设置昵称,它将返回用户名:
Member self = guild.getSelfMember();
for (Member member : guild.getMembers()) {
String name = member.getEffectiveName(); // username or nickname
if (!name.startsWith("[NNN]") && self.canInteract(member)) {
member.modifyNickname("[NNN]" + name).queue();
}
}
我使用了canInteract
来避免层次结构异常,如果您试图设置服务器所有者或角色高于您的bot的成员的昵称,就会不可避免地发生这种异常。
我想在《不和谐》中改名。py 1.7。3但是我试过很多次,但都没有成功 另外,我试着从: 而且也失败了,当我使用“discMember:dscord.Member”时,代码停止运行,不知道为什么不起作用
我的代码中有一个MessageReactionRemve事件,每当删除反应时都会触发它。 然而,我也让我的机器人执行一些自动反应移除(移除用户的反应)。 我想防止机器人删除反应时触发。 我的代码用于防止由bot触发的: 但是中的getUser()方法总是返回做出反应的用户的ID,而不是bot的ID。 我的问题是如何检测反应是否被机器人移除?
所以我想问,有没有一种方法可以让我发出命令,比如当我调用它时,机器人会向我的机器人所在的每个帮会的所有者发送一个dm,其中包含我的消息,或者它可以将该消息发送到它所在的每个帮会的员工专用频道。我可以用这个命令发布公告之类的东西。
我正在设置一个SQLite到我的不和谐机器人,我想创建一个数据库文件到每个服务器与服务器的名称,但我找不到公会到每个服务器 我有一个类来创建与sql和main的连接,创建连接的方法很好,但我只需要为每个服务器创建一个db文件 这是我的SQLite连接类: 这是我的主要方法 在
当有人加入服务器时,我想让我的机器人在用户名中添加一个氏族标记,但我不知道该怎么做。谢谢你的帮助
任何帮助都将不胜感激!