Java 我的Discord机器人停止执行其命令
就在今天,我意识到我的机器人在一个新用户加入后没有做任何事情,尽管他应该像以前一样自动分配角色。经过一次快速检查,他对任何命令都不再做出反应,即使昨天一切正常 我的Bot仍然连接到服务器,对主功能的更改仍然会被识别(例如更改其联机状态或活动),但是Java 我的Discord机器人停止执行其命令,java,discord,bots,Java,Discord,Bots,就在今天,我意识到我的机器人在一个新用户加入后没有做任何事情,尽管他应该像以前一样自动分配角色。经过一次快速检查,他对任何命令都不再做出反应,即使昨天一切正常 我的Bot仍然连接到服务器,对主功能的更改仍然会被识别(例如更改其联机状态或活动),但是EventListeners似乎没有反应,因此没有执行任何命令 Bot是用Java编码的,使用jdk 13,使用的库是net.dv8tion库JDA-4.2.0-175-withDependencies.jar 我已经尝试过但不起作用的事情: 让机器
EventListeners
似乎没有反应,因此没有执行任何命令
Bot是用Java编码的,使用jdk 13,使用的库是net.dv8tion库JDA-4.2.0-175-withDependencies.jar
我已经尝试过但不起作用的事情:
- 让机器人重新加入
- 刷新bot并尝试刷新令牌
- 更新Java
- 分配管理员权限(再次)
- 使用
-命令代替create()
(可能是我做错了)JDABuilder
public class Main {
public static JDA jda;
public static String prefix = "rev";
public static String adminPrefix = "toolkit";
public static void main(String[] args) throws LoginException {
jda = new JDABuilder(AccountType.BOT).setToken("my bot token").build();
jda.getPresence().setStatus(OnlineStatus.IDLE);
jda.getPresence().setActivity(Activity.playing("mit nem Butterfly"));
jda.addEventListener(new commands());
jda.addEventListener(new serverJoin());
jda.addEventListener(new adminCommands());
jda.addEventListener(new selfRoles());
jda.addEventListener(new chatlog());
jda.addEventListener(new selfRoleRemove());
}
}
示例类:加入服务器
public class serverJoin extends ListenerAdapter {
public void onGuildMemberJoin(GuildMemberJoinEvent event) {
Guild guild = event.getGuild();
Role role = guild.getRoleById(736342426632847381L); //initialisiert die oben eingegebe Rolle
Member member = event.getMember(); //sucht, wer gejoined ist
assert role != null;
guild.addRoleToMember(member, role).complete(); //vergibt die Rolle
String[] nachrichten = {
"[member] hat sich auf diesen Discord verirrt, warmen Empfang bitte!",
"Macht gefälligst Platz für [member]!",
"Willkommen bei Reveries, [member]",
"Hey [member], schönen Aufenthalt!",
"Räumt gefälligst auf, wir wollen keinen schlechten Eindruck gegenüber [member] machen!",
};
Random zufallsZahlMacher = new Random();
int zufallsZahl = zufallsZahlMacher.nextInt(nachrichten.length); //zufällige Textlinie von String[] nachrichten
EmbedBuilder information = new EmbedBuilder();
information.setColor(0x00ffff);
information.setDescription(nachrichten[zufallsZahl].replace("[member]", member.getAsMention()));
information.setFooter("Willkommen! " + event.getMember().getUser().getName(), event.getMember().getUser().getAvatarUrl());
event.getGuild().getTextChannelById(753546835347374171L).sendMessage(information.build()).queue();
event.getUser().openPrivateChannel().flatMap(privateChannel -> privateChannel.sendMessage("**Willkommen auf dem Revery-Discord!** \n Damit du einen guten Start auf dem Server hast, bitten wir dich, die Regeln zu lesen und eine kurze Vorstellung in den #vorstellrunde-Channel zu schreiben. \n Nachdem du deine Vorstellung geschrieben hast (*welche mind. Name, Alter, Hobbies, Musikrichtung und Lieblingsspiel beeinhaltet*), wird dich zeitnah ein Serverteam-Mitglied freischalten und du kriegst Zugang zu unserem Server. \n Damit ein guter Start gewährleistet ist, bitten wir dich, den Command revhelp in den #bot-commands-Channel zu schreiben. \n \n \uD835\uDC16\uD835\uDC22\uD835\uDC2B \uD835\uDC1F\uD835\uDC2B\uD835\uDC1E\uD835\uDC2E\uD835\uDC1E\uD835\uDC27 \uD835\uDC2E\uD835\uDC27\uD835\uDC2C \uD835\uDC1A\uD835\uDC2E\uD835\uDC1F \uD835\uDC1D\uD835\uDC22\uD835\uDC1C\uD835\uDC21!")).queue();
}
}
JDABuilder构造函数
新的JDABuilder(..)
自6月份以来一直被弃用。您应该改用JDABuilder.createDefault(令牌)
。要使用onGuildMemberJoin
,文档还告诉您需要GatewayIntent.GUILD\u成员。使用enableentents
在您的JDABuilder上启用此功能自6月份以来,JDABuilder构造函数新的JDABuilder(…)
已被弃用。您应该改用JDABuilder.createDefault(令牌)
。要使用onGuildMemberJoin
,文档还告诉您需要GatewayIntent.GUILD\u成员。在您的JDABuilder
上使用enableIntents
启用此功能。您应该将bot发布到github或将相关代码作为文本包含在内,是否有任何在启动时引发的异常需要查找?它只显示SLF4J:未能加载类“org.SLF4J.impl.StaticLoggerBinder”。&加载类“org.slf4j.impl.StaticMDCBinder”失败,但我以前也遇到过这个错误,它没有干扰。它还发出了一个警告,JDABuilder
已被弃用,以前也没有干扰。直到这个问题发生之前,我没有对代码进行任何更改,所以我没有发布所有代码,因为到目前为止它编译正确,工作正常。不过我发布了serverJoin类,它应该相应地执行,但它根本就不执行。好吧,如果您的日志记录设置失败,它是否可能稍后尝试记录错误,但由于日志记录不起作用而失败?将SLF4J workSLF4J默认设置为NOP实现,即使我尝试手动实现它。我的问题已经解决了,但我想知道“错误日志记录”的缺点,如果您有时间做一个简短的解释:)。您应该将bot发布到github或将相关代码作为文本包含在内,是否在启动时抛出任何异常,您需要查找?它只说SLF4J:无法加载类“org.slf4j.impl.StaticLoggerBinder”。&未能加载类“org.slf4j.impl.StaticMDCBinder”“,但是我以前也犯过这个错误,它没有干扰。它还发出了一个警告,JDABuilder
已被弃用,以前也没有干扰。直到这个问题发生之前,我没有对代码进行任何更改,所以我没有发布所有代码,因为到目前为止它编译正确,工作正常。不过我发布了serverJoin类,它应该相应地执行,但它根本就不执行。好吧,如果您的日志记录设置失败,它是否可能稍后尝试记录错误,但由于日志记录不起作用而失败?将SLF4J workSLF4J默认设置为NOP实现,即使我尝试手动实现它。我的问题已经解决了,但是如果您有时间做一个简短的解释,我想知道“错误日志”的缺点:)。非常感谢!这+在他的角色中给机器人手动权限(因为它错误地更新了开发者门户中的权限)能够修复我的问题!非常感谢你!这+在他的角色中给机器人手动权限(因为它错误地更新了开发者门户中的权限)能够修复我的问题!