私は最近、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));
}
}
}
}