diff --git a/src/main/java/hu/jgj52/pvpcore/Commands/FfaCommand.java b/src/main/java/hu/jgj52/pvpcore/Commands/FfaCommand.java index 1b41c68..066c7ab 100644 --- a/src/main/java/hu/jgj52/pvpcore/Commands/FfaCommand.java +++ b/src/main/java/hu/jgj52/pvpcore/Commands/FfaCommand.java @@ -25,14 +25,16 @@ public class FfaCommand implements CommandExecutor, TabCompleter { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String @NotNull [] args) { if (sender instanceof Player player) { - Kits kitManager = new Kits(plugin); - try { - player.getInventory().setContents(kitManager.getKit("ffa", player, false)); - player.teleport(Bukkit.getWorld("ffa").getSpawnLocation()); - plugin.playersInFfa.add(player); - player.setGameMode(GameMode.SURVIVAL); - } catch (ExecutionException | InterruptedException e) { - throw new RuntimeException(e); + if (!plugin.isFfaResetting) { + Kits kitManager = new Kits(plugin); + try { + player.getInventory().setContents(kitManager.getKit("ffa", player, false)); + player.teleport(Bukkit.getWorld("ffa").getSpawnLocation()); + plugin.playersInFfa.add(player); + player.setGameMode(GameMode.SURVIVAL); + } catch (ExecutionException | InterruptedException e) { + throw new RuntimeException(e); + } } } return true; diff --git a/src/main/java/hu/jgj52/pvpcore/Listeners/PlayerDeathListener.java b/src/main/java/hu/jgj52/pvpcore/Listeners/PlayerDeathListener.java index f8c0a87..7b9857f 100644 --- a/src/main/java/hu/jgj52/pvpcore/Listeners/PlayerDeathListener.java +++ b/src/main/java/hu/jgj52/pvpcore/Listeners/PlayerDeathListener.java @@ -218,7 +218,7 @@ public class PlayerDeathListener implements Listener { } else if (plugin.playersInFfa.contains(player)) { plugin.tpToSpawn(player); plugin.playersInFfa.remove(player); - e.setDeathMessage("§c" + player.getName() + " §7meghalt §c" + player.getKiller() + " §7által"); + e.setDeathMessage("§c" + player.getName() + " §7meghalt §c" + e.getEntity().getKiller() + " §7által"); } else { e.setCancelled(true); plugin.tpToSpawn(player); diff --git a/src/main/java/hu/jgj52/pvpcore/Main.java b/src/main/java/hu/jgj52/pvpcore/Main.java index 6da252c..2c934a3 100644 --- a/src/main/java/hu/jgj52/pvpcore/Main.java +++ b/src/main/java/hu/jgj52/pvpcore/Main.java @@ -110,4 +110,5 @@ public final class Main extends JavaPlugin { public List usedArenas = new ArrayList<>(); public List playersInFfa = new ArrayList<>(); + public boolean isFfaResetting = false; } diff --git a/src/main/java/hu/jgj52/pvpcore/Utils/WorldReset.java b/src/main/java/hu/jgj52/pvpcore/Utils/WorldReset.java index abb9e2f..9d03eb9 100644 --- a/src/main/java/hu/jgj52/pvpcore/Utils/WorldReset.java +++ b/src/main/java/hu/jgj52/pvpcore/Utils/WorldReset.java @@ -98,21 +98,25 @@ public class WorldReset { String worldName = "ffa"; try { - removeFfaWorld(worldName); - + if (!removeFfaWorld(worldName)) { + plugin.getLogger().warning("Failed to remove FFA world!"); + return false; + } + plugin.isFfaResetting = true; Bukkit.getScheduler().runTaskLater(plugin, () -> { createFfaWorld(worldName); - }, 20L); + }, 100L); return true; } catch (Exception e) { - plugin.getLogger().severe("Error recreating arena world: " + e.getMessage()); + plugin.getLogger().severe("Error recreating FFA world: " + e.getMessage()); e.printStackTrace(); return false; } } + private boolean removeFfaWorld(String worldName) { try { World world = Bukkit.getWorld(worldName); @@ -162,6 +166,7 @@ public class WorldReset { WorldBorder border = world.getWorldBorder(); border.setCenter(0, 0); border.setSize(300); + plugin.isFfaResetting = false; return true; } else { plugin.getLogger().severe("Failed to create arena world!");