From dfd9febd8c470bba72628813a285e4e3a8f1985f Mon Sep 17 00:00:00 2001 From: Chaoscaot Date: Sun, 8 Jun 2025 22:34:05 +0200 Subject: [PATCH] Remove Shields from Check Arena --- .../fightsystem/utils/WorldeditWrapper14.java | 15 +++++++++++++++ .../fightsystem/utils/WorldeditWrapper8.java | 17 +++++++++++++---- .../fightsystem/fight/FightSchematic.java | 5 +++++ .../fightsystem/utils/WorldeditWrapper.java | 3 +++ 4 files changed, 36 insertions(+), 4 deletions(-) diff --git a/FightSystem/FightSystem_14/src/de/steamwar/fightsystem/utils/WorldeditWrapper14.java b/FightSystem/FightSystem_14/src/de/steamwar/fightsystem/utils/WorldeditWrapper14.java index 9a0ae4b5..e26c8525 100644 --- a/FightSystem/FightSystem_14/src/de/steamwar/fightsystem/utils/WorldeditWrapper14.java +++ b/FightSystem/FightSystem_14/src/de/steamwar/fightsystem/utils/WorldeditWrapper14.java @@ -21,9 +21,11 @@ package de.steamwar.fightsystem.utils; import com.sk89q.jnbt.NBTInputStream; import com.sk89q.worldedit.EditSession; +import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.WorldEdit; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.bukkit.BukkitAdapter; +import com.sk89q.worldedit.bukkit.BukkitBlockRegistry; import com.sk89q.worldedit.bukkit.BukkitWorld; import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard; import com.sk89q.worldedit.extent.clipboard.Clipboard; @@ -39,6 +41,7 @@ import com.sk89q.worldedit.regions.CuboidRegion; import com.sk89q.worldedit.session.ClipboardHolder; import com.sk89q.worldedit.world.World; import com.sk89q.worldedit.world.block.BaseBlock; +import com.sk89q.worldedit.world.block.BlockType; import com.sk89q.worldedit.world.block.BlockTypes; import de.steamwar.fightsystem.Config; import de.steamwar.fightsystem.FightSystem; @@ -47,6 +50,7 @@ import de.steamwar.sql.SchematicData; import de.steamwar.sql.SchematicNode; import org.bukkit.DyeColor; import org.bukkit.Location; +import org.bukkit.Material; import org.bukkit.util.Vector; import java.io.ByteArrayOutputStream; @@ -147,4 +151,15 @@ public class WorldeditWrapper14 implements WorldeditWrapper { new SchematicData(schem).saveFromBytes(outputStream.toByteArray(), NodeData.SchematicFormat.SPONGE_V2); } + + @Override + public void fillRegion(org.bukkit.World world, Region region, Material material) { + EditSession e = WorldEdit.getInstance().getEditSessionFactory().getEditSession(new BukkitWorld(world), -1); + try { + e.setBlocks(new CuboidRegion(new BukkitWorld(world), BlockVector3.at(region.getMinX(), region.getMinY(), region.getMinZ()), BlockVector3.at(region.getMaxX(), region.getMaxY(), region.getMaxZ())), BlockTypes.get(material.name()).getDefaultState().toBaseBlock()); + } catch (MaxChangedBlocksException ex) { + throw new RuntimeException(ex); + } + e.flushSession(); + } } diff --git a/FightSystem/FightSystem_8/src/de/steamwar/fightsystem/utils/WorldeditWrapper8.java b/FightSystem/FightSystem_8/src/de/steamwar/fightsystem/utils/WorldeditWrapper8.java index 018552f2..58d51350 100644 --- a/FightSystem/FightSystem_8/src/de/steamwar/fightsystem/utils/WorldeditWrapper8.java +++ b/FightSystem/FightSystem_8/src/de/steamwar/fightsystem/utils/WorldeditWrapper8.java @@ -20,11 +20,9 @@ package de.steamwar.fightsystem.utils; import com.sk89q.jnbt.NBTInputStream; -import com.sk89q.worldedit.EditSession; -import com.sk89q.worldedit.Vector; -import com.sk89q.worldedit.WorldEdit; -import com.sk89q.worldedit.WorldEditException; +import com.sk89q.worldedit.*; import com.sk89q.worldedit.blocks.BaseBlock; +import com.sk89q.worldedit.blocks.BlockType; import com.sk89q.worldedit.bukkit.BukkitWorld; import com.sk89q.worldedit.extent.clipboard.BlockArrayClipboard; import com.sk89q.worldedit.extent.clipboard.Clipboard; @@ -145,4 +143,15 @@ public class WorldeditWrapper8 implements WorldeditWrapper { new SchematicData(schem).saveFromBytes(outputStream.toByteArray(), NodeData.SchematicFormat.MCEDIT); } + + @Override + public void fillRegion(org.bukkit.World world, Region region, Material material) { + EditSession e = WorldEdit.getInstance().getEditSessionFactory().getEditSession(new BukkitWorld(world), -1); + try { + e.setBlocks(new CuboidRegion(new BukkitWorld(world), BlockVector.toBlockPoint(region.getMinX(), region.getMinY(), region.getMinZ()), BlockVector.toBlockPoint(region.getMaxX(), region.getMaxY(), region.getMaxZ())), new BaseBlock(BlockType.lookup(material.name()).getID())); + } catch (MaxChangedBlocksException ex) { + throw new RuntimeException(ex); + } + e.flushQueue(); + } } diff --git a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/fight/FightSchematic.java b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/fight/FightSchematic.java index 5e84ccdc..2c8fc716 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/fight/FightSchematic.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/fight/FightSchematic.java @@ -140,6 +140,11 @@ public class FightSchematic extends StateDependent { FreezeWorld freezer = new FreezeWorld(); team.teleportToSpawn(); + + if(Config.mode == ArenaMode.CHECK) { + WorldeditWrapper.impl.fillRegion(Config.world, region, Material.AIR); + } + Vector dims = WorldeditWrapper.impl.getDimensions(clipboard); WorldeditWrapper.impl.pasteClipboard( clipboard, diff --git a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/WorldeditWrapper.java b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/WorldeditWrapper.java index 83c68803..f486c4d6 100644 --- a/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/WorldeditWrapper.java +++ b/FightSystem/FightSystem_Core/src/de/steamwar/fightsystem/utils/WorldeditWrapper.java @@ -27,6 +27,8 @@ import de.steamwar.fightsystem.FightSystem; import de.steamwar.sql.SchematicNode; import org.bukkit.DyeColor; import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.World; import org.bukkit.util.Vector; import java.io.IOException; @@ -40,4 +42,5 @@ public interface WorldeditWrapper { Vector getDimensions(Clipboard clipboard); Clipboard loadChar(String charName) throws IOException; void saveSchem(SchematicNode schem, Region region, int minY) throws WorldEditException; + void fillRegion(World world, Region region, Material material); }