diff --git a/FightSystem_10/src/de/steamwar/fightsystem/fight/FightWorld_10.java b/FightSystem_10/src/de/steamwar/fightsystem/fight/FightWorld_10.java index fe5c04e..849b070 100644 --- a/FightSystem_10/src/de/steamwar/fightsystem/fight/FightWorld_10.java +++ b/FightSystem_10/src/de/steamwar/fightsystem/fight/FightWorld_10.java @@ -32,7 +32,7 @@ import org.bukkit.entity.Player; public class FightWorld_10 { private FightWorld_10(){} - static void resetChunk(World world, World backup, int x, int z){ + static void resetChunk(World world, World backup, int x, int z, boolean isPaper){ net.minecraft.server.v1_10_R1.World w = ((CraftWorld) world).getHandle(); Chunk chunk = w.getChunkAt(x, z); Chunk backupChunk = ((CraftWorld) backup).getHandle().getChunkAt(x, z); @@ -40,7 +40,9 @@ public class FightWorld_10 { System.arraycopy(backupChunk.getSections(), 0, chunk.getSections(), 0, chunk.getSections().length); System.arraycopy(backupChunk.heightMap, 0, chunk.heightMap, 0, chunk.heightMap.length); w.tileEntityListTick.removeAll(chunk.tileEntities.values()); - w.tileEntityList.removeAll(chunk.tileEntities.values()); + if (!isPaper) { + w.tileEntityList.removeAll(chunk.tileEntities.values()); + } chunk.tileEntities.clear(); chunk.tileEntities.putAll(backupChunk.tileEntities); for(Player p : Bukkit.getOnlinePlayers()){ diff --git a/FightSystem_12/src/de/steamwar/fightsystem/fight/FightWorld_12.java b/FightSystem_12/src/de/steamwar/fightsystem/fight/FightWorld_12.java index 6ea877c..be3596e 100644 --- a/FightSystem_12/src/de/steamwar/fightsystem/fight/FightWorld_12.java +++ b/FightSystem_12/src/de/steamwar/fightsystem/fight/FightWorld_12.java @@ -32,7 +32,7 @@ import org.bukkit.entity.Player; public class FightWorld_12 { private FightWorld_12(){} - static void resetChunk(World world, World backup, int x, int z){ + static void resetChunk(World world, World backup, int x, int z, boolean isPaper){ net.minecraft.server.v1_12_R1.World w = ((CraftWorld) world).getHandle(); Chunk chunk = w.getChunkAt(x, z); Chunk backupChunk = ((CraftWorld) backup).getHandle().getChunkAt(x, z); @@ -40,7 +40,9 @@ public class FightWorld_12 { System.arraycopy(backupChunk.getSections(), 0, chunk.getSections(), 0, chunk.getSections().length); System.arraycopy(backupChunk.heightMap, 0, chunk.heightMap, 0, chunk.heightMap.length); w.tileEntityListTick.removeAll(chunk.tileEntities.values()); - w.tileEntityList.removeAll(chunk.tileEntities.values()); + if (!isPaper) { + w.tileEntityList.removeAll(chunk.tileEntities.values()); + } chunk.tileEntities.clear(); chunk.tileEntities.putAll(backupChunk.tileEntities); for(Player p : Bukkit.getOnlinePlayers()){ diff --git a/FightSystem_14/src/de/steamwar/fightsystem/fight/FightWorld_14.java b/FightSystem_14/src/de/steamwar/fightsystem/fight/FightWorld_14.java index 81ea1f9..f2b9412 100644 --- a/FightSystem_14/src/de/steamwar/fightsystem/fight/FightWorld_14.java +++ b/FightSystem_14/src/de/steamwar/fightsystem/fight/FightWorld_14.java @@ -32,14 +32,16 @@ import org.bukkit.entity.Player; public class FightWorld_14 { private FightWorld_14(){} - static void resetChunk(World world, World backup, int x, int z){ + static void resetChunk(World world, World backup, int x, int z, boolean isPaper){ net.minecraft.server.v1_14_R1.World w = ((CraftWorld) world).getHandle(); Chunk chunk = w.getChunkAt(x, z); Chunk backupChunk = ((CraftWorld) backup).getHandle().getChunkAt(x, z); System.arraycopy(backupChunk.getSections(), 0, chunk.getSections(), 0, chunk.getSections().length); w.tileEntityListTick.removeAll(chunk.tileEntities.values()); - w.tileEntityList.removeAll(chunk.tileEntities.values()); + if (!isPaper) { + w.tileEntityList.removeAll(chunk.tileEntities.values()); + } chunk.tileEntities.clear(); chunk.tileEntities.putAll(backupChunk.tileEntities); chunk.heightMap.clear(); diff --git a/FightSystem_15/src/de/steamwar/fightsystem/fight/FightWorld_15.java b/FightSystem_15/src/de/steamwar/fightsystem/fight/FightWorld_15.java index ae6de0d..b4c53b8 100644 --- a/FightSystem_15/src/de/steamwar/fightsystem/fight/FightWorld_15.java +++ b/FightSystem_15/src/de/steamwar/fightsystem/fight/FightWorld_15.java @@ -32,14 +32,16 @@ import org.bukkit.entity.Player; public class FightWorld_15 { private FightWorld_15(){} - static void resetChunk(World world, World backup, int x, int z){ + static void resetChunk(World world, World backup, int x, int z, boolean isPaper){ net.minecraft.server.v1_15_R1.World w = ((CraftWorld) world).getHandle(); Chunk chunk = w.getChunkAt(x, z); Chunk backupChunk = ((CraftWorld) backup).getHandle().getChunkAt(x, z); System.arraycopy(backupChunk.getSections(), 0, chunk.getSections(), 0, chunk.getSections().length); w.tileEntityListTick.removeAll(chunk.tileEntities.values()); - w.tileEntityList.removeAll(chunk.tileEntities.values()); + if (!isPaper) { + w.tileEntityList.removeAll(chunk.tileEntities.values()); + } chunk.tileEntities.clear(); chunk.tileEntities.putAll(backupChunk.tileEntities); chunk.heightMap.clear(); diff --git a/FightSystem_8/src/de/steamwar/fightsystem/fight/FightWorld_8.java b/FightSystem_8/src/de/steamwar/fightsystem/fight/FightWorld_8.java index 5c6b6f2..9d25c29 100644 --- a/FightSystem_8/src/de/steamwar/fightsystem/fight/FightWorld_8.java +++ b/FightSystem_8/src/de/steamwar/fightsystem/fight/FightWorld_8.java @@ -32,7 +32,7 @@ import org.bukkit.entity.Player; public class FightWorld_8 { private FightWorld_8(){} - static void resetChunk(World world, World backup, int x, int z){ + static void resetChunk(World world, World backup, int x, int z, boolean isPaper){ net.minecraft.server.v1_8_R3.World w = ((CraftWorld) world).getHandle(); Chunk chunk = w.getChunkAt(x, z); Chunk backupChunk = ((CraftWorld) backup).getHandle().getChunkAt(x, z); diff --git a/FightSystem_9/src/de/steamwar/fightsystem/fight/FightWorld_9.java b/FightSystem_9/src/de/steamwar/fightsystem/fight/FightWorld_9.java index 0b508a4..f35afb4 100644 --- a/FightSystem_9/src/de/steamwar/fightsystem/fight/FightWorld_9.java +++ b/FightSystem_9/src/de/steamwar/fightsystem/fight/FightWorld_9.java @@ -32,7 +32,7 @@ import org.bukkit.entity.Player; public class FightWorld_9 { private FightWorld_9(){} - static void resetChunk(World world, World backup, int x, int z){ + static void resetChunk(World world, World backup, int x, int z, boolean isPaper){ net.minecraft.server.v1_9_R2.World w = ((CraftWorld) world).getHandle(); Chunk chunk = w.getChunkAt(x, z); Chunk backupChunk = ((CraftWorld) backup).getHandle().getChunkAt(x, z); @@ -40,7 +40,9 @@ public class FightWorld_9 { System.arraycopy(backupChunk.getSections(), 0, chunk.getSections(), 0, chunk.getSections().length); System.arraycopy(backupChunk.heightMap, 0, chunk.heightMap, 0, chunk.heightMap.length); w.tileEntityListTick.removeAll(chunk.tileEntities.values()); - w.tileEntityList.removeAll(chunk.tileEntities.values()); + if (!isPaper) { + w.tileEntityList.removeAll(chunk.tileEntities.values()); + } chunk.tileEntities.clear(); chunk.tileEntities.putAll(backupChunk.tileEntities); for(Player p : Bukkit.getOnlinePlayers()){ diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/EventSpectateCountdown.java b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/EventSpectateCountdown.java index e56277c..abaa890 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/EventSpectateCountdown.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/EventSpectateCountdown.java @@ -22,7 +22,6 @@ package de.steamwar.fightsystem.countdown; import de.steamwar.fightsystem.ArenaMode; import de.steamwar.fightsystem.Config; import de.steamwar.fightsystem.FightSystem; -import de.steamwar.fightsystem.fight.FightWorld; import de.steamwar.fightsystem.states.FightState; import de.steamwar.fightsystem.states.StateDependentCountdown; @@ -30,11 +29,7 @@ public class EventSpectateCountdown extends Countdown { public EventSpectateCountdown() { super(Config.SpectatorDuration, SWSound.BLOCK_NOTE_PLING, false); - if(FightWorld.isPaper()){ - new StateDependentCountdown(ArenaMode.Fight, FightState.Spectate, this); - }else{ - new StateDependentCountdown(ArenaMode.Event, FightState.Spectate, this); - } + new StateDependentCountdown(ArenaMode.Event, FightState.Spectate, this); } @Override diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/SpectateOverCountdown.java b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/SpectateOverCountdown.java index 08735aa..5946085 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/countdown/SpectateOverCountdown.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/countdown/SpectateOverCountdown.java @@ -30,9 +30,7 @@ public class SpectateOverCountdown extends Countdown { public SpectateOverCountdown() { super(Config.SpectatorDuration, SWSound.BLOCK_NOTE_PLING, false); - if(!FightWorld.isPaper()){ - new StateDependentCountdown(ArenaMode.Restartable, FightState.Spectate, this); - } + new StateDependentCountdown(ArenaMode.Restartable, FightState.Spectate, this); } @Override diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightWorld.java b/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightWorld.java index 7c2d4d3..342f1a4 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightWorld.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/fight/FightWorld.java @@ -35,22 +35,14 @@ public class FightWorld extends StateDependent { private static final boolean paper; static{ - boolean ispaper; - try { - Class.forName("com.destroystokyo.paper.PaperConfig"); - ispaper = true; - } catch (ClassNotFoundException e) { - ispaper = false; - } - paper = ispaper; + paper = Bukkit.getVersion().contains("git-Paper"); } private final World world = Bukkit.getWorlds().get(0); public FightWorld() { super(ArenaMode.Restartable, FightState.Schem); - if(!isPaper()) - register(); + register(); } @Override @@ -72,17 +64,17 @@ public class FightWorld extends StateDependent { World backup = new WorldCreator(world.getName() + "/backup").createWorld(); assert backup != null; - Config.ArenaRegion.forEachChunk((x, z) -> resetChunk(backup, x, z)); + Config.ArenaRegion.forEachChunk((x, z) -> resetChunk(backup, x, z, FightWorld.isPaper())); Bukkit.unloadWorld(backup, false); } - private void resetChunk(World backup, int x, int z){ + private void resetChunk(World backup, int x, int z, boolean isPaper){ VersionedRunnable.call( - new VersionedRunnable(() -> FightWorld_8.resetChunk(world, backup, x, z), 8), - new VersionedRunnable(() -> FightWorld_9.resetChunk(world, backup, x, z), 9), - new VersionedRunnable(() -> FightWorld_10.resetChunk(world, backup, x, z), 10), - new VersionedRunnable(() -> FightWorld_12.resetChunk(world, backup, x, z), 12), - new VersionedRunnable(() -> FightWorld_14.resetChunk(world, backup, x, z), 14), - new VersionedRunnable(() -> FightWorld_15.resetChunk(world, backup, x, z), 15)); + new VersionedRunnable(() -> FightWorld_8.resetChunk(world, backup, x, z, isPaper), 8), + new VersionedRunnable(() -> FightWorld_9.resetChunk(world, backup, x, z, isPaper), 9), + new VersionedRunnable(() -> FightWorld_10.resetChunk(world, backup, x, z, isPaper), 10), + new VersionedRunnable(() -> FightWorld_12.resetChunk(world, backup, x, z, isPaper), 12), + new VersionedRunnable(() -> FightWorld_14.resetChunk(world, backup, x, z, isPaper), 14), + new VersionedRunnable(() -> FightWorld_15.resetChunk(world, backup, x, z, isPaper), 15)); } }