SteamWar/FightSystem
Archiviert
13
1
Dieses Repository wurde am 2024-08-05 archiviert. Du kannst Dateien ansehen und es klonen, aber nicht pushen oder Issues/Pull-Requests öffnen.
FightSystem/src/me/yaruma/fightsystem/utils/WorldEdit.java

64 Zeilen
2.7 KiB
Java

package me.yaruma.fightsystem.utils;
import com.boydti.fawe.FaweAPI;
import com.boydti.fawe.util.EditSessionBuilder;
import com.sk89q.worldedit.EditSession;
import com.sk89q.worldedit.IncompleteRegionException;
import com.sk89q.worldedit.Vector;
import com.sk89q.worldedit.blocks.BaseBlock;
import com.sk89q.worldedit.bukkit.BukkitWorld;
import com.sk89q.worldedit.bukkit.selections.CuboidSelection;
import com.sk89q.worldedit.math.transform.AffineTransform;
import com.sk89q.worldedit.world.World;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import java.io.File;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;
public class WorldEdit {
public static void replace(Player player, int minX, int minY, int minZ, int maxX, int maxY, int maxZ) {
World weWorld = new BukkitWorld(player.getWorld());
EditSession editSession = new EditSessionBuilder(weWorld).fastmode(true).build();
CuboidSelection cuboidSelection = new CuboidSelection(player.getWorld(), new Location(player.getWorld(), minX, minY, minZ), new Location(player.getWorld(), maxX, maxY, maxZ));
Set<BaseBlock> targetObsidian = new HashSet<>();
targetObsidian.add(new BaseBlock(49));
Set<BaseBlock> targetBedrock = new HashSet<>();
targetBedrock.add(new BaseBlock(7));
try {
int tnt = editSession.replaceBlocks(cuboidSelection.getRegionSelector().getRegion(), targetObsidian, new BaseBlock(46));
int slime = editSession.replaceBlocks(cuboidSelection.getRegionSelector().getRegion(), targetObsidian, new BaseBlock(7));
editSession.flushQueue();
} catch (Exception ex){
ex.printStackTrace();
}
}
public static void pasteSchematic(File file, World world, Vector vector, boolean allowUndo, boolean pasteAir, AffineTransform affineTransform) {
try {
FaweAPI.load(file).paste(world, vector, allowUndo, pasteAir, affineTransform).flushQueue();
} catch (IOException e) { }
}
public static int countBlocks(Player player, int minX, int minY, int minZ, int maxX, int maxY, int maxZ, BaseBlock baseBlock) {
World weWorld = new BukkitWorld(player.getWorld());
EditSession editSession = new EditSessionBuilder(weWorld).fastmode(true).build();
CuboidSelection cuboidSelection = new CuboidSelection(player.getWorld(), new Location(player.getWorld(), minX, minY, minZ), new Location(player.getWorld(), maxX, maxY, maxZ));
Set<BaseBlock> target = new HashSet<>();
target.add(baseBlock);
try {
return editSession.countBlocks(cuboidSelection.getRegionSelector().getRegion(), target);
} catch (IncompleteRegionException e) { }
return 0;
}
}