0
package me.mizoo.bot;
import javax.security.auth.login.LoginException;
import net.dv8tion.jda.core.AccountType;
import net.dv8tion.jda.core.JDA;
import net.dv8tion.jda.core.JDABuilder;
import net.dv8tion.jda.core.entities.Message;
import net.dv8tion.jda.core.entities.MessageChannel;
import net.dv8tion.jda.core.entities.User;
import net.dv8tion.jda.core.events.message.MessageReceivedEvent;
import net.dv8tion.jda.core.exceptions.RateLimitedException;
import net.dv8tion.jda.core.hooks.ListenerAdapter;
import java.util.ArrayList;
public class Main extends ListenerAdapter
{
public static void main(String[] args) throws LoginException, IllegalArgumentException, InterruptedException, RateLimitedException
{
//Initializes the bot
JDA jdaBot = new JDABuilder(AccountType.BOT).setToken("**********************************").buildBlocking();
jdaBot.addEventListener(new Main());
}
@Override
public void onMessageReceived(MessageReceivedEvent e)
{
ArrayList<String> adminsOn = new ArrayList<String>();
Message msg = e.getMessage();
MessageChannel channel = e.getChannel();
User user = e.getAuthor();
if(msg.getContent().equalsIgnoreCase("$.readytoban"))
{
String name = msg.getAuthor().getName();
adminsOn.add(name);
channel.sendMessage("You're added to the list of admins ready to BAN!").queue();
}
else if(msg.getContent().equalsIgnoreCase("$.readytoleave"))
{
String name = msg.getAuthor().getName();
adminsOn.remove(name);
channel.sendMessage("You're off it, pal. Bye!").queue();
}
if (msg.getContent().equalsIgnoreCase(".$adminson"))
{
channel.sendMessage("Here are the admins on: " + adminsOn).queue();
}
}
}
これは私のJavaコードで、JDAライブラリを使用しています。私はreadytobanコマンドを入力するたびに、この管理者のリストに追加され、readytoleaveはそれらを削除するようにしたいと思います。これは正常に動作しますが、動作しません。 readytobanコマンドを入力してからadminsonと入力すると、アレイ内に名前は表示されません。修正?java - ArrayListの問題
リストはローカルにあるようですが、代わりにクラスフィールドを作成するとどうなりますか? – phflack
上記を読んで、これは同じ問題が2回目の記事であり、onMessageReceivedが呼び出されるたびに新しいArrayListが作成されるので、あなたのものは保存されません。 – prsvr
タイトルが不十分です。あなたの問題について具体的に編集する。 –