Fix TNTSet error
Add TNTSpawn.fuseTicks
Dieser Commit ist enthalten in:
Ursprung
a23608b171
Commit
7a8c3f20f1
@ -56,12 +56,15 @@ public class TNTSimulator {
|
|||||||
List<String> lore = new ArrayList<>();
|
List<String> lore = new ArrayList<>();
|
||||||
lore.add("§eTNT-Anzahl§8: §7" + tntSpawn.getCount());
|
lore.add("§eTNT-Anzahl§8: §7" + tntSpawn.getCount());
|
||||||
lore.add("§eTick§8: §7" + tntSpawn.getTickOffset());
|
lore.add("§eTick§8: §7" + tntSpawn.getTickOffset());
|
||||||
|
lore.add("§eFuse-Tick§8: §7" + tntSpawn.getFuseTicks());
|
||||||
lore.add("");
|
lore.add("");
|
||||||
lore.add("§eX§8: §7" + tntSpawn.getPosition().getX());
|
lore.add("§eX§8: §7" + tntSpawn.getPosition().getX());
|
||||||
lore.add("§eY§8: §7" + tntSpawn.getPosition().getY());
|
lore.add("§eY§8: §7" + tntSpawn.getPosition().getY());
|
||||||
lore.add("§eZ§8: §7" + tntSpawn.getPosition().getZ());
|
lore.add("§eZ§8: §7" + tntSpawn.getPosition().getZ());
|
||||||
swListEntryList.add(new SWListInv.SWListEntry<>(new SWItem(Material.TNT, "§eTNT", lore, false, null), tntSpawn));
|
swListEntryList.add(new SWListInv.SWListEntry<>(new SWItem(Material.TNT, "§eTNT", lore, false, null), tntSpawn));
|
||||||
});
|
});
|
||||||
|
swListEntryList.sort(Comparator.comparing(SWListInv.SWListEntry::getObject));
|
||||||
|
|
||||||
SWListInv<TNTSpawn> swListInv = new SWListInv<>(player, "Kanonen Simulator", false, swListEntryList, (clickType, tntSpawn) -> {
|
SWListInv<TNTSpawn> swListInv = new SWListInv<>(player, "Kanonen Simulator", false, swListEntryList, (clickType, tntSpawn) -> {
|
||||||
editTNT(player, tntSpawn);
|
editTNT(player, tntSpawn);
|
||||||
});
|
});
|
||||||
@ -91,19 +94,29 @@ public class TNTSimulator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void editTNT(Player player, TNTSpawn tntSpawn) {
|
private static void editTNT(Player player, TNTSpawn tntSpawn) {
|
||||||
SWInventory swInventory = new SWInventory(player, 45, "TNT");
|
SWInventory swInventory = new SWInventory(player, 54, "TNT");
|
||||||
swInventory.setItem(44, new SWItem(Material.REDSTONE_BLOCK, "§cZurück", clickType -> {
|
swInventory.setItem(48, new SWItem(Material.REDSTONE_BLOCK, "§cZurück", clickType -> {
|
||||||
|
openSimulator(player);
|
||||||
|
}));
|
||||||
|
|
||||||
|
// Delete icon
|
||||||
|
swInventory.setItem(50, new SWItem(Material.BARRIER, "§cDelete", clickType -> {
|
||||||
|
tntSimulatorMap.get(player).tntSpawns.remove(tntSpawn);
|
||||||
openSimulator(player);
|
openSimulator(player);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Change Count of spawned TNT
|
// Change Count of spawned TNT
|
||||||
swInventory.setItem(10, new SWItem(SWItem.getDye(10), "§a+1", clickType -> {
|
swInventory.setItem(10, new SWItem(SWItem.getDye(10), "§a+1", clickType -> {
|
||||||
tntSpawn.setCount(tntSpawn.getCount() + 1);
|
tntSpawn.setCount(tntSpawn.getCount() + 1);
|
||||||
|
if (tntSpawn.getCount() > 1000) {
|
||||||
|
tntSpawn.setCount(1000);
|
||||||
|
}
|
||||||
editTNT(player, tntSpawn);
|
editTNT(player, tntSpawn);
|
||||||
}));
|
}));
|
||||||
swInventory.setItem(19, new SWItem(Material.TNT, "§eAnzahl §8- §7" + tntSpawn.getCount(), clickType -> {
|
swInventory.setItem(19, new SWItem(Material.TNT, "§eAnzahl §8- §7" + tntSpawn.getCount(), clickType -> {
|
||||||
changeCount(player, count -> {
|
changeCount(player, count -> {
|
||||||
if (count < 1) count = 1;
|
if (count < 1) count = 1;
|
||||||
|
if (count > 1000) count = 1000;
|
||||||
tntSpawn.setCount(count);
|
tntSpawn.setCount(count);
|
||||||
editTNT(player, tntSpawn);
|
editTNT(player, tntSpawn);
|
||||||
}, () -> editTNT(player, tntSpawn));
|
}, () -> editTNT(player, tntSpawn));
|
||||||
@ -119,11 +132,15 @@ public class TNTSimulator {
|
|||||||
// Change TickOffset
|
// Change TickOffset
|
||||||
swInventory.setItem(11, new SWItem(SWItem.getDye(10), "§a+1", clickType -> {
|
swInventory.setItem(11, new SWItem(SWItem.getDye(10), "§a+1", clickType -> {
|
||||||
tntSpawn.setTickOffset(tntSpawn.getTickOffset() + 1);
|
tntSpawn.setTickOffset(tntSpawn.getTickOffset() + 1);
|
||||||
|
if (tntSpawn.getTickOffset() > 8000) {
|
||||||
|
tntSpawn.setTickOffset(8000);
|
||||||
|
}
|
||||||
editTNT(player, tntSpawn);
|
editTNT(player, tntSpawn);
|
||||||
}));
|
}));
|
||||||
swInventory.setItem(20, new SWItem(Material.CLOCK, "§eTick §8- §7" + tntSpawn.getTickOffset(), clickType -> {
|
swInventory.setItem(20, new SWItem(Material.CLOCK, "§eTick §8- §7" + tntSpawn.getTickOffset(), clickType -> {
|
||||||
changeCount(player, tick -> {
|
changeCount(player, tick -> {
|
||||||
if (tick < 0) tick = 0;
|
if (tick < 0) tick = 0;
|
||||||
|
if (tick > 8000) tick = 8000;
|
||||||
tntSpawn.setTickOffset(tick);
|
tntSpawn.setTickOffset(tick);
|
||||||
editTNT(player, tntSpawn);
|
editTNT(player, tntSpawn);
|
||||||
}, () -> editTNT(player, tntSpawn));
|
}, () -> editTNT(player, tntSpawn));
|
||||||
@ -136,10 +153,28 @@ public class TNTSimulator {
|
|||||||
editTNT(player, tntSpawn);
|
editTNT(player, tntSpawn);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Delete icon
|
// Change FuseTicks
|
||||||
swInventory.setItem(21, new SWItem(Material.BARRIER, "§cDelete", clickType -> {
|
swInventory.setItem(12, new SWItem(SWItem.getDye(10), "§a+1", clickType -> {
|
||||||
tntSimulatorMap.get(player).tntSpawns.remove(tntSpawn);
|
tntSpawn.setFuseTicks(tntSpawn.getFuseTicks() + 1);
|
||||||
openSimulator(player);
|
if (tntSpawn.getFuseTicks() > 80) {
|
||||||
|
tntSpawn.setFuseTicks(80);
|
||||||
|
}
|
||||||
|
editTNT(player, tntSpawn);
|
||||||
|
}));
|
||||||
|
swInventory.setItem(21, new SWItem(Material.CLOCK, "§eFuseTicks §8- §7" + tntSpawn.getFuseTicks(), clickType -> {
|
||||||
|
changeCount(player, tick -> {
|
||||||
|
if (tick < 0) tick = 0;
|
||||||
|
if (tick > 80) tick = 80;
|
||||||
|
tntSpawn.setFuseTicks(tick);
|
||||||
|
editTNT(player, tntSpawn);
|
||||||
|
}, () -> editTNT(player, tntSpawn));
|
||||||
|
}));
|
||||||
|
swInventory.setItem(30, new SWItem(SWItem.getDye(1), "§c-1", clickType -> {
|
||||||
|
tntSpawn.setFuseTicks(tntSpawn.getFuseTicks() - 1);
|
||||||
|
if (tntSpawn.getFuseTicks() < 1) {
|
||||||
|
tntSpawn.setFuseTicks(1);
|
||||||
|
}
|
||||||
|
editTNT(player, tntSpawn);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
// Velocity Settings
|
// Velocity Settings
|
||||||
@ -240,7 +275,7 @@ public class TNTSimulator {
|
|||||||
return (int)(d * 100) * 0.01;
|
return (int)(d * 100) * 0.01;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Set<TNTSpawn> tntSpawns = new TreeSet<>();
|
private Set<TNTSpawn> tntSpawns = new HashSet<>();
|
||||||
|
|
||||||
public void start() {
|
public void start() {
|
||||||
tntSpawns.forEach(tntSpawn -> {
|
tntSpawns.forEach(tntSpawn -> {
|
||||||
|
@ -33,6 +33,7 @@ public class TNTSpawn implements Comparable<TNTSpawn> {
|
|||||||
private static final World WORLD = Bukkit.getWorlds().get(0);
|
private static final World WORLD = Bukkit.getWorlds().get(0);
|
||||||
|
|
||||||
private Vector position;
|
private Vector position;
|
||||||
|
private int fuseTicks = 80;
|
||||||
private int count = 1;
|
private int count = 1;
|
||||||
private int tickOffset = 0;
|
private int tickOffset = 0;
|
||||||
private boolean xVelocity = true;
|
private boolean xVelocity = true;
|
||||||
@ -46,6 +47,7 @@ public class TNTSpawn implements Comparable<TNTSpawn> {
|
|||||||
public void spawn() {
|
public void spawn() {
|
||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
WORLD.spawn(position.toLocation(WORLD), TNTPrimed.class, tntPrimed -> {
|
WORLD.spawn(position.toLocation(WORLD), TNTPrimed.class, tntPrimed -> {
|
||||||
|
tntPrimed.setFuseTicks(fuseTicks);
|
||||||
if (!xVelocity) tntPrimed.setVelocity(tntPrimed.getVelocity().setX(0));
|
if (!xVelocity) tntPrimed.setVelocity(tntPrimed.getVelocity().setX(0));
|
||||||
if (!yVelocity) tntPrimed.setVelocity(tntPrimed.getVelocity().setY(0));
|
if (!yVelocity) tntPrimed.setVelocity(tntPrimed.getVelocity().setY(0));
|
||||||
if (!zVelocity) tntPrimed.setVelocity(tntPrimed.getVelocity().setZ(0));
|
if (!zVelocity) tntPrimed.setVelocity(tntPrimed.getVelocity().setZ(0));
|
||||||
@ -61,6 +63,14 @@ public class TNTSpawn implements Comparable<TNTSpawn> {
|
|||||||
this.position = position;
|
this.position = position;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getFuseTicks() {
|
||||||
|
return fuseTicks;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFuseTicks(int fuseTicks) {
|
||||||
|
this.fuseTicks = fuseTicks;
|
||||||
|
}
|
||||||
|
|
||||||
public int getCount() {
|
public int getCount() {
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
@ -101,24 +111,6 @@ public class TNTSpawn implements Comparable<TNTSpawn> {
|
|||||||
this.zVelocity = zVelocity;
|
this.zVelocity = zVelocity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean equals(Object o) {
|
|
||||||
if (this == o) return true;
|
|
||||||
if (!(o instanceof TNTSpawn)) return false;
|
|
||||||
TNTSpawn tntSpawn = (TNTSpawn) o;
|
|
||||||
return count == tntSpawn.count &&
|
|
||||||
tickOffset == tntSpawn.tickOffset &&
|
|
||||||
xVelocity == tntSpawn.xVelocity &&
|
|
||||||
yVelocity == tntSpawn.yVelocity &&
|
|
||||||
zVelocity == tntSpawn.zVelocity &&
|
|
||||||
position.equals(tntSpawn.position);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int hashCode() {
|
|
||||||
return Objects.hash(position, count, tickOffset, xVelocity, yVelocity, zVelocity);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int compareTo(TNTSpawn tntSpawn) {
|
public int compareTo(TNTSpawn tntSpawn) {
|
||||||
return -Integer.compare(tickOffset, tntSpawn.tickOffset);
|
return -Integer.compare(tickOffset, tntSpawn.tickOffset);
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren