Format code

This commit is contained in:
2026-05-16 23:08:09 +02:00
parent 81dd8045f2
commit d110df924e
562 changed files with 11025 additions and 10059 deletions
@@ -48,88 +48,90 @@ import java.util.Objects;
public class Missile extends SpecialItem {
private static final World world = new BukkitWorld(Bukkit.getWorlds().get(0));
private static final World world = new BukkitWorld(Bukkit.getWorlds().get(0));
private final Clipboard clipboard;
private final ItemStack item;
private final Clipboard clipboard;
private final ItemStack item;
private Missile(File missileFile) {
String[] strings = missileFile.getName().split("\\.");
String name = strings[0];
String material = strings[1];
if (!material.endsWith("_SPAWN_EGG")) material += "_SPAWN_EGG";
Material itemType = Material.valueOf(material);
private Missile(File missileFile) {
String[] strings = missileFile.getName().split("\\.");
String name = strings[0];
String material = strings[1];
if (!material.endsWith("_SPAWN_EGG")) material += "_SPAWN_EGG";
Material itemType = Material.valueOf(material);
ClipboardFormat format = ClipboardFormats.findByFile(missileFile);
try {
assert format != null;
clipboard = format.getReader(new FileInputStream(missileFile)).read();
} catch (IOException e) {
throw new SecurityException("Corrupt missile");
}
ClipboardFormat format = ClipboardFormats.findByFile(missileFile);
try {
assert format != null;
clipboard = format.getReader(new FileInputStream(missileFile)).read();
} catch (IOException e) {
throw new SecurityException("Corrupt missile");
}
List<String> lore = new ArrayList<>();
lore(lore, strings, 2, "§7Speed");
lore(lore, strings, 3, "§7Size");
List<String> lore = new ArrayList<>();
lore(lore, strings, 2, "§7Speed");
lore(lore, strings, 3, "§7Size");
EditSession e = WorldEdit.getInstance().getEditSessionFactory().getEditSession(world, -1);
BlockTypeMask blockTypeMask = new BlockTypeMask(clipboard, BlockTypes.TNT);
lore.add("§7TNT §8: §e" + e.countBlocks(clipboard.getRegion(), blockTypeMask));
EditSession e = WorldEdit.getInstance().getEditSessionFactory().getEditSession(world, -1);
BlockTypeMask blockTypeMask = new BlockTypeMask(clipboard, BlockTypes.TNT);
lore.add("§7TNT §8: §e" + e.countBlocks(clipboard.getRegion(), blockTypeMask));
item = createItem(itemType, "§c" + name, 1, lore);
}
item = createItem(itemType, "§c" + name, 1, lore);
}
private void lore(List<String> lore, String[] args, int index, String tag) {
if (args.length > index) {
lore.add(tag + " §8: §e" + Integer.parseInt(args[index]) + "§8/§77");
} else {
lore.add(tag + " §8: §e0§8/§77");
}
}
private void lore(List<String> lore, String[] args, int index, String tag) {
if (args.length > index) {
lore.add(tag + " §8: §e" + Integer.parseInt(args[index]) + "§8/§77");
} else {
lore.add(tag + " §8: §e0§8/§77");
}
}
@Override
public ItemStack getItem() {
return item;
}
@Override
public ItemStack getItem() {
return item;
}
@Override
public boolean handleUse(Player p) {
BlockVector3 dimensions = clipboard.getDimensions();
Location location = p.getLocation();
BlockVector3 v = BlockVector3.ZERO;
BlockVector3 offset = clipboard.getRegion().getMinimumPoint().subtract(clipboard.getOrigin());
AffineTransform aT = new AffineTransform();
@Override
public boolean handleUse(Player p) {
BlockVector3 dimensions = clipboard.getDimensions();
Location location = p.getLocation();
BlockVector3 v = BlockVector3.ZERO;
BlockVector3 offset = clipboard.getRegion().getMinimumPoint().subtract(clipboard.getOrigin());
AffineTransform aT = new AffineTransform();
double yaw = (p.getLocation().getYaw() + 360f) % 360;
if (yaw > 45 && yaw <= 135) aT = aT.rotateY(270);
else if (yaw > 135 && yaw <= 225) aT = aT.rotateY(180);
else if (yaw > 225 && yaw <= 315) aT = aT.rotateY(90);
double yaw = (p.getLocation().getYaw() + 360f) % 360;
if (yaw > 45 && yaw <= 135) aT = aT.rotateY(270);
else if (yaw > 135 && yaw <= 225) aT = aT.rotateY(180);
else if (yaw > 225 && yaw <= 315) aT = aT.rotateY(90);
v = v.subtract(dimensions.x()/2, dimensions.y() + 2, -2).subtract(offset);
v = aT.apply(v.toVector3()).toBlockPoint();
v = v.add(location.getBlockX(), location.getBlockY(), location.getBlockZ());
v = v.subtract(dimensions.x() / 2, dimensions.y() + 2, -2).subtract(offset);
v = aT.apply(v.toVector3()).toBlockPoint();
v = v.add(location.getBlockX(), location.getBlockY(), location.getBlockZ());
EditSession e = WorldEdit.getInstance().getEditSessionFactory().getEditSession(world, -1);
ClipboardHolder ch = new ClipboardHolder(clipboard);
ch.setTransform(aT);
Operations.completeBlindly(ch.createPaste(e).to(v).ignoreAirBlocks(true).build());
e.flushSession();
return true;
}
EditSession e = WorldEdit.getInstance().getEditSessionFactory().getEditSession(world, -1);
ClipboardHolder ch = new ClipboardHolder(clipboard);
ch.setTransform(aT);
Operations.completeBlindly(ch.createPaste(e).to(v).ignoreAirBlocks(true).build());
e.flushSession();
return true;
}
@Override
public boolean isMissile() {
return true;
}
@Override
public boolean isMissile() {
return true;
}
public static void init() {
File missileFolder = new File(MissileWars.getPlugin().getDataFolder(), "missiles");
if (!missileFolder.exists() || !missileFolder.canRead() || !missileFolder.isDirectory()) throw new SecurityException("Missiles could not be loaded");
for (File missileFile : Objects.requireNonNull(missileFolder.listFiles())) {
if (!missileFile.canRead() || !missileFile.isFile()) continue;
if (!missileFile.getName().endsWith(".schem")) continue;
new Missile(missileFile);
}
}
public static void init() {
File missileFolder = new File(MissileWars.getPlugin().getDataFolder(), "missiles");
if (!missileFolder.exists() || !missileFolder.canRead() || !missileFolder.isDirectory()) {
throw new SecurityException("Missiles could not be loaded");
}
for (File missileFile : Objects.requireNonNull(missileFolder.listFiles())) {
if (!missileFile.canRead() || !missileFile.isFile()) continue;
if (!missileFile.getName().endsWith(".schem")) continue;
new Missile(missileFile);
}
}
}