Olá a todos, bom estou criando um plugin, porem estou tendo um problema, minha ArrayList do tipo String onde armazeno Nicks de jogadores, ela está resetando do nada, isso já aconteceu comigo uma vez e tive que abandonar o projeto e não quero abandonar esse...
Estou criando a ArrayList desse jeito:
ArrayList<String> participantes = new ArrayList<>(); //Crio a Array
Estou adicionando assim:
participantes.add(p.getName());
Não é porquê não estou adicionando os jogadores, sim estou, já imprimi o valor da ArrayList no console e me mostra os nicks corretamente, estou sem saber oque fazer, não estou dando clear na ArrayList, já retirei TODOS SEM EXCEÇÕES participantes.clear()...
Alguém?
Classe onde estou "gerenciando" minha ArrayList
package tequilaxbr.bkiller;
import java.util.ArrayList;
import java.util.HashMap;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import tequilaxbr.bkiller.Utils.Serialize;
public class Maneger{
public YamlConfiguration d = Main.data.getConfig();
public FileConfiguration c = Main.getMe().getConfig();
//Arrays e HashMaps
public ArrayList<String> participantes = new ArrayList<>();
public HashMap<String, Integer> kills = new HashMap<>();
//
public void sendMessage(String path, Player p){
p.sendMessage(c.getString("Mensagens." + path).replaceAll("&", "§"));
}
public void setLocation(String name, Player p){
String local = Serialize.serializeLocation(p.getLocation(), true);
d.set("Locais." + name, local);
Main.getMe().data.saveConfig();
sendMessage("Sets." + name, p);
}
public void teleporteLocation(String name, Player p){
Location local = Serialize.deserializeLocation(d.getString("Locais." + name), true);
p.teleport(local);
sendMessage("Teleportes." + name, p);
}
public void teleportAllPlayers(String name){
for(String allP : participantes){
Player allPp = Bukkit.getServer().getPlayer(allP);
teleporteLocation(name, allPp);
}
}
public void addPlayerKiller(Player p){
participantes.add(p.getName());
Bukkit.broadcastMessage("" + participantes);
kills.put(p.getName(), 0);
teleporteLocation("Spawn", p);
}
public void removePlayerKiller(Player p){
participantes.remove(p.getName());
kills.remove(p.getName());
teleporteLocation("Saida", p);
}
public void messagePlayerRemovido(Player p){
for(String up : c.getStringList("Mensagens.Player-Removido")){
for(Player all : Bukkit.getOnlinePlayers()){
all.sendMessage(up.replaceAll("@participantes", "" + participantes.size()).replaceAll("@p", "" + p.getName()).replaceAll("&", "§"));
}
}
}
public void verifyWinner(Player p){
if(killer == Status.INICIADO){
if(participantes.size() == 1){
for(String up : c.getStringList("Mensagens.Winner")){
for(Player all : Bukkit.getOnlinePlayers()){
all.sendMessage(up.replaceAll("@vencedor", "" + participantes.get(0)).replaceAll("&", "§"));
}
}
d.set("Killer", participantes.get(0));
Main.getMe().saveConfig();
//fecharKiller();
}
}
}
//Enum
public Status killer = Status.FECHADO;
public void abrirKiller(){
killer = Status.ANUNCIANDO;
anuncio(c.getInt("Anuncios.Quantidade"));
}
public void iniciarKiller(){
killer = Status.INICIADO;
if(participantes.size() < c.getInt("Config.Min-Players")){
for(String msg : c.getStringList("Mensagens.Faltou-Players")){
for(Player all : Bukkit.getOnlinePlayers()){
all.sendMessage(msg.replaceAll("@participantes", "" + participantes.size()).replaceAll("@min", "" + c.getInt("Config.Min-Players")).replaceAll("&", "§"));
}
}
teleportAllPlayers("Saida");
// fecharKiller();
return;
}
for(String msg : c.getStringList("Anuncios.Iniciar")){
for(Player all : Bukkit.getOnlinePlayers()){
all.sendMessage(msg.replaceAll("&", "§"));
}
}
}
/**public void fecharKiller(){
killer = Status.FECHADO;
kills.clear();
participantes.clear();
teleportAllPlayers("Saida");
}*/
//Enum
public void anuncio(final int quantidade){
if(quantidade == 0){
for(String msgPrepare : c.getStringList("Anuncios.Anuncio")){
for(Player all : Bukkit.getOnlinePlayers()){
all.sendMessage(msgPrepare.replaceAll("@tempo", "" + c.getInt("Anuncios.Tempo-Entre") * quantidade).replaceAll("&", "§"));
}
}
iniciarKiller();
}
if(killer != Status.ANUNCIANDO){
return;
}
for(String msgPrepare : c.getStringList("Anuncios.Anuncio")){
for(Player all : Bukkit.getOnlinePlayers()){
all.sendMessage(msgPrepare.replaceAll("@tempo", "" + c.getInt("Anuncios.Tempo-Entre") * quantidade).replaceAll("&", "§"));
}
}
Bukkit.getServer().getScheduler().runTaskLater(Main.getMe(), new Runnable(){
public void run(){
if(quantidade == 0){
for(String msgPrepare : c.getStringList("Anuncios.Anuncio")){
for(Player all : Bukkit.getOnlinePlayers()){
all.sendMessage(msgPrepare.replaceAll("@tempo", "" + c.getInt("Anuncios.Tempo-Entre") * quantidade).replaceAll("&", "§"));
}
}
iniciarKiller();
}
if(killer != Status.ANUNCIANDO){
return;
}
anuncio(quantidade - 1);
}
}, c.getInt("Anuncios.Tempo-Entre") * 20);
}
}
Pergunta
TequilAxBr
Olá a todos, bom estou criando um plugin, porem estou tendo um problema, minha ArrayList do tipo String onde armazeno Nicks de jogadores, ela está resetando do nada, isso já aconteceu comigo uma vez e tive que abandonar o projeto e não quero abandonar esse...
Estou criando a ArrayList desse jeito:
Não é porquê não estou adicionando os jogadores, sim estou, já imprimi o valor da ArrayList no console e me mostra os nicks corretamente, estou sem saber oque fazer, não estou dando clear na ArrayList, já retirei TODOS SEM EXCEÇÕES participantes.clear()...
Alguém?
Classe onde estou "gerenciando" minha ArrayList
Editado por TequilAxBrLink para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados