Signed-off-by: yoyosource <yoyosource@nidido.de>
Dieser Commit ist enthalten in:
Ursprung
da0e2f20cc
Commit
eabfead5da
@ -54,6 +54,10 @@ public class TNTSimulator {
|
||||
private static final Vector Y_VECTOR = new Vector(0, 0.0625, 0);
|
||||
private static final Vector Z_VECTOR = new Vector(0, 0, 0.0625);
|
||||
|
||||
private static final Vector FX_VECTOR = new Vector(1, 0, 0);
|
||||
private static final Vector FY_VECTOR = new Vector(0, 1, 0);
|
||||
private static final Vector FZ_VECTOR = new Vector(0, 0, 1);
|
||||
|
||||
private static final World WORLD = Bukkit.getWorlds().get(0);
|
||||
private static final List<String> LORE = Collections.singletonList("§eZum Ändern klicken");
|
||||
private static final List<TNTSpawn> EMPTY = new ArrayList<>();
|
||||
@ -215,7 +219,10 @@ public class TNTSimulator {
|
||||
return new SWListInv.SWListEntry<>(swItem, spawn);
|
||||
}).sorted(Comparator.comparing(SWListInv.SWListEntry::getObject)).collect(Collectors.toList());
|
||||
|
||||
SWListInv<TNTSpawn> swListInv = new SWListInv<>(player, "Kanonensimulator", false, swListEntryList, (clickType, spawn) -> spawn.editTNT());
|
||||
SWListInv<TNTSpawn> swListInv = new SWListInv<>(player, "Kanonensimulator", false, swListEntryList, (clickType, spawn) -> {
|
||||
|
||||
spawn.editTNT();
|
||||
});
|
||||
swListInv.setItem(51, new SWItem(Material.BARRIER, "§cTNT löschen", clickType -> {
|
||||
delete();
|
||||
player.closeInventory();
|
||||
@ -307,6 +314,7 @@ public class TNTSimulator {
|
||||
private boolean printed = false;
|
||||
|
||||
private final Vector position;
|
||||
private int fuseTicks = 80;
|
||||
private int count = 1;
|
||||
private int tickOffset = 0;
|
||||
private boolean xVelocity = false;
|
||||
@ -324,6 +332,7 @@ public class TNTSimulator {
|
||||
private TNTSpawn(YAPIONObject yapionObject) {
|
||||
this.position = new Vector(yapionObject.getPlainValueOrDefault("positionX", 0.0), yapionObject.getPlainValueOrDefault("positionY", 0.0), yapionObject.getPlainValueOrDefault("positionZ", 0.0));
|
||||
this.entity = SimulatorEntityShowMode.createEntity(player, position, false);
|
||||
this.fuseTicks = yapionObject.getPlainValue("fuseTicks");
|
||||
this.count = yapionObject.getPlainValue("count");
|
||||
this.tickOffset = yapionObject.getPlainValue("tickOffset");
|
||||
this.xVelocity = yapionObject.getPlainValue("xVelocity");
|
||||
@ -337,6 +346,7 @@ public class TNTSimulator {
|
||||
yapionObject.add("positionX", position.getX());
|
||||
yapionObject.add("positionY", position.getY());
|
||||
yapionObject.add("positionZ", position.getZ());
|
||||
yapionObject.add("fuseTicks", fuseTicks);
|
||||
yapionObject.add("count", count);
|
||||
yapionObject.add("tickOffset", tickOffset);
|
||||
yapionObject.add("xVelocity", xVelocity);
|
||||
@ -362,12 +372,19 @@ public class TNTSimulator {
|
||||
|
||||
private void spawn() {
|
||||
WORLD.spawn(position.toLocation(WORLD), TNTPrimed.class, tntPrimed -> {
|
||||
tntPrimed.setFuseTicks(fuseTicks);
|
||||
if (!xVelocity) tntPrimed.setVelocity(tntPrimed.getVelocity().setX(0));
|
||||
if (!yVelocity) tntPrimed.setVelocity(tntPrimed.getVelocity().setY(0));
|
||||
if (!zVelocity) tntPrimed.setVelocity(tntPrimed.getVelocity().setZ(0));
|
||||
});
|
||||
}
|
||||
|
||||
private void setFuseTicks(int fuseTicks) {
|
||||
if (fuseTicks < 0) fuseTicks = 0;
|
||||
if (fuseTicks > 160) fuseTicks = 160;
|
||||
this.fuseTicks = fuseTicks;
|
||||
}
|
||||
|
||||
private void setCount(int count) {
|
||||
if (count < 1) count = 1;
|
||||
if (count > 400) count = 400;
|
||||
@ -396,8 +413,8 @@ public class TNTSimulator {
|
||||
SWInventory swInventory = new SWInventory(player, 54, "TNT konfigurieren");
|
||||
|
||||
// Change Count of spawned TNT
|
||||
swInventory.setItem(1, new SWItem(SWItem.getDye(10), "§7+1", clickType -> {
|
||||
setCount(count + 1);
|
||||
swInventory.setItem(1, new SWItem(SWItem.getDye(10), "§7+1", Arrays.asList("§eShift §7Click für §e-10"), false, clickType -> {
|
||||
setCount(count + (clickType.isShiftClick() ? 10 : 1));
|
||||
editTNT();
|
||||
}));
|
||||
SWItem countItem = new SWItem(Material.TNT, "§7TNT-Anzahl §8- §e" + count, LORE, false, clickType -> changeCount(player, "Anzahl TNT", count, c -> {
|
||||
@ -406,14 +423,14 @@ public class TNTSimulator {
|
||||
}, this::editTNT));
|
||||
countItem.getItemStack().setAmount(count);
|
||||
swInventory.setItem(10, countItem);
|
||||
swInventory.setItem(19, new SWItem(SWItem.getDye(1), "§7-1", clickType -> {
|
||||
setCount(count - 1);
|
||||
swInventory.setItem(19, new SWItem(SWItem.getDye(1), "§7-1", Arrays.asList("§eShift §7Click für §e-10"), false, clickType -> {
|
||||
setCount(count - (clickType.isShiftClick() ? 10 : 1));
|
||||
editTNT();
|
||||
}));
|
||||
|
||||
// Change TickOffset
|
||||
swInventory.setItem(2, new SWItem(SWItem.getDye(10), "§7+1", clickType -> {
|
||||
setTickOffset(tickOffset + 1);
|
||||
swInventory.setItem(2, new SWItem(SWItem.getDye(10), "§7+1", Arrays.asList("§eShift §7Click für §e+5"), false, clickType -> {
|
||||
setTickOffset(count + (clickType.isShiftClick() ? 5 : 1));
|
||||
editTNT();
|
||||
}));
|
||||
SWItem tickItem = new SWItem(SWItem.getMaterial("DIODE"), "§7Tick §8- §e" + tickOffset, LORE, false, clickType -> changeCount(player, "Tick Offset", tickOffset, tick -> {
|
||||
@ -422,8 +439,24 @@ public class TNTSimulator {
|
||||
}, this::editTNT));
|
||||
tickItem.getItemStack().setAmount(Math.max(tickOffset, 1));
|
||||
swInventory.setItem(11, tickItem);
|
||||
swInventory.setItem(20, new SWItem(SWItem.getDye(1), "§7-1", clickType -> {
|
||||
setTickOffset(tickOffset - 1);
|
||||
swInventory.setItem(20, new SWItem(SWItem.getDye(1), "§7-1", Arrays.asList("§eShift §7Click für §e-5"), false, clickType -> {
|
||||
setTickOffset(count - (clickType.isShiftClick() ? 5 : 1));
|
||||
editTNT();
|
||||
}));
|
||||
|
||||
// Change FuseTicks
|
||||
swInventory.setItem(3, new SWItem(SWItem.getDye(10), "§7+1", clickType -> {
|
||||
setFuseTicks(fuseTicks + 1);
|
||||
editTNT();
|
||||
}));
|
||||
SWItem fuseTickItem = new SWItem(Material.CLOCK, "§7Lebensdauer §8- §e" + fuseTicks, LORE, false, clickType -> changeCount(player, "Fuse-Ticks", fuseTicks, tick -> {
|
||||
setFuseTicks(tick);
|
||||
editTNT();
|
||||
}, this::editTNT));
|
||||
fuseTickItem.getItemStack().setAmount(Math.max(fuseTicks, 1));
|
||||
swInventory.setItem(12, fuseTickItem);
|
||||
swInventory.setItem(21, new SWItem(SWItem.getDye(1), "§7-1", clickType -> {
|
||||
setFuseTicks(fuseTicks - 1);
|
||||
editTNT();
|
||||
}));
|
||||
|
||||
@ -445,8 +478,8 @@ public class TNTSimulator {
|
||||
|
||||
// Position Settings
|
||||
// X Position
|
||||
swInventory.setItem(5, new SWItem(SWItem.getDye(10), "§7+0,0625", clickType -> {
|
||||
position.add(X_VECTOR);
|
||||
swInventory.setItem(5, new SWItem(SWItem.getDye(10), "§7+0,0625", Arrays.asList("§eShift §7Click für §e+1"), false, clickType -> {
|
||||
position.add(clickType.isShiftClick() ? FX_VECTOR : X_VECTOR);
|
||||
editTNT();
|
||||
}));
|
||||
swInventory.setItem(14, new SWItem(Material.PAPER, "§7x-Position §8- §e" + position.getX(), LORE, false, clickType -> {
|
||||
@ -455,14 +488,14 @@ public class TNTSimulator {
|
||||
editTNT();
|
||||
}, this::editTNT);
|
||||
}));
|
||||
swInventory.setItem(23, new SWItem(SWItem.getDye(1), "§7-0,0625", clickType -> {
|
||||
position.subtract(X_VECTOR);
|
||||
swInventory.setItem(23, new SWItem(SWItem.getDye(1), "§7-0,0625", Arrays.asList("§eShift §7Click für §e-1"), false, clickType -> {
|
||||
position.subtract(clickType.isShiftClick() ? FX_VECTOR : X_VECTOR);
|
||||
editTNT();
|
||||
}));
|
||||
|
||||
// Y Position
|
||||
swInventory.setItem(6, new SWItem(SWItem.getDye(10), "§7+0,0625", clickType -> {
|
||||
position.add(Y_VECTOR);
|
||||
swInventory.setItem(6, new SWItem(SWItem.getDye(10), "§7+0,0625", Arrays.asList("§eShift §7Click für §e+1"), false, clickType -> {
|
||||
position.add(clickType.isShiftClick() ? FY_VECTOR : Y_VECTOR);
|
||||
editTNT();
|
||||
}));
|
||||
swInventory.setItem(15, new SWItem(Material.PAPER, "§7y-Position §8- §e" + position.getY(), LORE, false, clickType -> {
|
||||
@ -471,14 +504,14 @@ public class TNTSimulator {
|
||||
editTNT();
|
||||
}, this::editTNT);
|
||||
}));
|
||||
swInventory.setItem(24, new SWItem(SWItem.getDye(1), "§7-0,0625", clickType -> {
|
||||
position.subtract(Y_VECTOR);
|
||||
swInventory.setItem(24, new SWItem(SWItem.getDye(1), "§7-0,0625", Arrays.asList("§eShift §7Click für §e-1"), false, clickType -> {
|
||||
position.subtract(clickType.isShiftClick() ? FY_VECTOR : Y_VECTOR);
|
||||
editTNT();
|
||||
}));
|
||||
|
||||
// Z Position
|
||||
swInventory.setItem(7, new SWItem(SWItem.getDye(10), "§7+0,0625", clickType -> {
|
||||
position.add(Z_VECTOR);
|
||||
swInventory.setItem(7, new SWItem(SWItem.getDye(10), "§7+0,0625", Arrays.asList("§eShift §7Click für §e+1"), false, clickType -> {
|
||||
position.add(clickType.isShiftClick() ? FZ_VECTOR : Z_VECTOR);
|
||||
editTNT();
|
||||
}));
|
||||
swInventory.setItem(16, new SWItem(Material.PAPER, "§7z-Position §8- §e" + position.getZ(), LORE, false, clickType -> {
|
||||
@ -487,8 +520,8 @@ public class TNTSimulator {
|
||||
editTNT();
|
||||
}, this::editTNT);
|
||||
}));
|
||||
swInventory.setItem(25, new SWItem(SWItem.getDye(1), "§7-0,0625", clickType -> {
|
||||
position.subtract(Z_VECTOR);
|
||||
swInventory.setItem(25, new SWItem(SWItem.getDye(1), "§7-0,0625", Arrays.asList("§eShift §7Click für §e-1"), false, clickType -> {
|
||||
position.subtract(clickType.isShiftClick() ? FZ_VECTOR : Z_VECTOR);
|
||||
editTNT();
|
||||
}));
|
||||
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren