我最近进入了 discord.JDA,并且一直在学习并尝试编写我的机器人。当我在一些源代码和我的知识的帮助下制作清除/删除命令时,我想问一些关于它的问题。我的代码没有给出任何错误,但我的机器人根本不会响应,而且我正在使用最新版本的 JDA。我也在主课上注册了它。如果您能以任何可能的方式帮助我,将不胜感激:D
这是我的代码:-
import net.dv8tion.jda.api.EmbedBuilder;
import net.dv8tion.jda.api.entities.Message;
import net.dv8tion.jda.api.events.message.MessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;
import javax.annotation.Nonnull;
import java.util.List;
import java.util.concurrent.TimeUnit;
public class ClearCommand extends ListenerAdapter {
public String prefix = "-";
public void onMessageReceived(@Nonnull MessageReceivedEvent event) {
String[] args = event.getMessage().getContentRaw().split("\\s+");
if (args[0].equalsIgnoreCase(prefix + "purge")) {
if (args.length < 2) {
EmbedBuilder error1 = new EmbedBuilder();
error1.setColor(0x95142A);
error1.setTitle("❌ You must specify # of messages to delete!");
error1.setDescription("Usage: " + prefix + "purge [# of messages]");
event.getChannel().sendTyping().queue();
event.getChannel().sendMessage((CharSequence) error1.build()).queue(m -> m.delete().queueAfter(3, TimeUnit.SECONDS));
} else if (Integer.parseInt(args[0]) > 100 || Integer.parseInt(args[1]) < 1) {
EmbedBuilder error2 = new EmbedBuilder();
error2.setColor(0x95142A);
error2.setTitle("❌ Only upto 100 messages can be deleted!");
error2.setDescription("Usage : " + prefix + "purge [1-100]");
event.getChannel().sendMessage((CharSequence) error2.build()).queue(m -> m.delete().queueAfter(3, TimeUnit.SECONDS));
} else if (Integer.parseInt(args[0]) < 100 && Integer.parseInt(args[1]) > 1) {
int values = Integer.parseInt(args[1]);
event.getMessage().delete();
List<Message> messages = event.getChannel().getHistory().retrievePast(values).complete();
event.getTextChannel().deleteMessages(messages).queue();
event.getChannel().sendMessage("✅ " + args[1].toString() + " messages deleted!").queue(m -> m.delete().queueAfter(3, TimeUnit.SECONDS));
}
}
}
}