Member.kick() 啥都不做(Java 上的 Discord 机器人)

Posted

技术标签:

【中文标题】Member.kick() 啥都不做(Java 上的 Discord 机器人)【英文标题】:Member.kick() does nothing (Discord bot on java)Member.kick() 什么都不做(Java 上的 Discord 机器人) 【发布时间】:2020-12-16 17:16:35 【问题描述】:

主要

    List<Member> banned=new ArrayList<>(); 
public static void main(String[] args) throws LoginException  
builder=new JDABuilder(AccountType.BOT); 
String token="censored"; 
builder.setToken(token); 
builder.addEventListeners(new Main());
 List<GatewayIntent> intents=new ArrayList<>(); 
intents.add(GatewayIntent.GUILD_BANS);
 intents.add(GatewayIntent.GUILD_MEMBERS); 
builder.enableIntents(intents); 
builder.build(); 

不工作的部分

if(event.getGuild().getSelfMember().hasPermission(Permission.KICK_MEMBERS))
                           say(event.getChannel(),target.getEffectiveName()+" gekickt!");
                           else
                               System.out.println("no permission");
                           if(event.getGuild().getSelfMember().hasPermission(Permission.KICK_MEMBERS))
                               System.out.println("has permission");
                           if(!banned.contains(target))
                           banned.add(target);
                           System.out.println("test3453");
    
                            event.getGuild().kick(target);

在第二个代码部分,机器人应该踢出一个用户。在我的控制台中,我看到它有权这样做,但它不会踢任何人,我什至没有收到错误消息。 如果有人知道我可能做错了什么,我将不胜感激。

【问题讨论】:

【参考方案1】:

kick 返回一个RestAction,这意味着你必须在它上面调用.queue()。例如:member.kick().queue();

另见:

Troubleshooting RestAction

【讨论】:

以上是关于Member.kick() 啥都不做(Java 上的 Discord 机器人)的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Java 的 concat() 方法啥都不做?

从 Java 调用在 cmd 中执行 .bat 啥都不做

在设计上注销啥都不做

如何修复“警告:useLayoutEffect 在服务器上啥都不做”?

在任一值上过滤数据集或啥都不做

Process.Start() 啥都不做