forked from SteamWar/SteamWar
Remove Shields from Check Arena
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user