- Баллы
- 76
- Имя в Minecraft
- Solomka
Два раза добавляется строка с айпи адресом, а следовательно он не может адекватно проверить соответствует ли изначальный айпи с нынешним
Код
Конфиг после измененией:
первый айпи адрес - это тот, который был изменен вручную, а второй - это добавляется автоматически сразу после перезахода на сервер.
Какую проверку сделать, чтобы он оставлял только один айпи адрес и уже их сравнивал между собой? Помогите, люди добрые, пожалуйста
Код
Код:
@EventHandler
public void joinPlayer(PlayerJoinEvent e) {
Player p = e.getPlayer();
UUID id = p.getUniqueId();
String address = p.getAddress().getHostString();
List<String> firstIp = getStringList("WaitConfirm." + p.getName() + ".firstIP");
List<String> twoIp = getStringList("WaitConfirm." + p.getName() + ".twoIP");
if (!p.hasPlayedBefore()) {
firstIp.add(address);
twoIp.add(null);
set("WaitConfirm." + p.getName() + ".firstIP", firstIp);
try {
save();
} catch (IOException ioException) {
ioException.printStackTrace();
}
reload();
send(p, translateAlternateColorCodes('&', "&6&l[WARNING] &fYour IP address was &asuccessfully&f added to the &csecurity system"));
return;
}
if (!firstIp.contains(address)) {
firstIp.add(address);
set("WaitConfirm." + p.getName() + ".firstIP", firstIp);
try {
save();
reload();
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
if(!twoIp.contains(address)) {
twoIp.add(address);
set("WaitConfirm." + p.getName() + ".twoIP", twoIp);
try {
save();
} catch (IOException ioException) {
ioException.printStackTrace();
}
}
new BukkitRunnable(){
@Override
public void run() {
if (!firstIp.toString().equals(twoIp.toString())) {
if (locked.contains(id))
cancel();
locked.add(id);
for(Player pl : Bukkit.getOnlinePlayers()){
if(!pl.isOp()) continue;
send(pl, translateAlternateColorCodes('&', "&6&l[WARNING] &fThe player has " + p.getName() +" the IP addresses do not match! IP register: " + getString("WaitConfirm." + p.getName() + ".firstIP")+"," + "IP join: " + getString("WaitConfirm." + p.getName() + ".twoIP")));
}
cancel();
}
send(p, translateAlternateColorCodes('&', "&a&l[SUCCESS] &fYour &cIP addresses &fhave successfully matched! Have a nice game"));
locked.remove(id);
cancel();
}
}.runTaskLaterAsynchronously(Main.getInstance(), 20L);
}
Конфиг после измененией:
Код:
WaitConfirm:
Solomka543:
firstIP:
- 127.0.0.1
twoIP:
- 127.0.0.2
- 127.0.0.1
первый айпи адрес - это тот, который был изменен вручную, а второй - это добавляется автоматически сразу после перезахода на сервер.
Какую проверку сделать, чтобы он оставлял только один айпи адрес и уже их сравнивал между собой? Помогите, люди добрые, пожалуйста