Fix pr stuff
Dieser Commit ist enthalten in:
Ursprung
ab8f0db420
Commit
549efa9801
@ -31,12 +31,4 @@ public class TNTSimulator_12 {
|
|||||||
return Material.CONCRETE;
|
return Material.CONCRETE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Material repeater() {
|
|
||||||
return Material.DIODE;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Material comparator() {
|
|
||||||
return Material.REDSTONE_COMPARATOR;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -32,12 +32,4 @@ public class TNTSimulator_15 {
|
|||||||
return Material.RED_CONCRETE;
|
return Material.RED_CONCRETE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Material repeater() {
|
|
||||||
return Material.REPEATER;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Material comparator() {
|
|
||||||
return Material.COMPARATOR;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -33,9 +33,10 @@ import org.bukkit.entity.Player;
|
|||||||
public class CommandSimulator implements CommandExecutor {
|
public class CommandSimulator implements CommandExecutor {
|
||||||
|
|
||||||
private void help(Player player) {
|
private void help(Player player) {
|
||||||
player.sendMessage("§8/§esimulator §8- §7Öffnet das Simulations GUI");
|
player.sendMessage("§8/§esimulator §8- §7Öffnet die Simulations GUI");
|
||||||
player.sendMessage("§8/§esimulator start §8- §7Startet die Simulation");
|
player.sendMessage("§8/§esimulator start §8- §7Startet die Simulation");
|
||||||
player.sendMessage("§8/§esimulator wand §8- §7Legt den Simulatorstab ins Inventar");
|
player.sendMessage("§8/§esimulator wand §8- §7Legt dir den Simulatorstab ins Inventar");
|
||||||
|
player.sendMessage("§8/§esimulator delete §8- §7Lösche alle TNT");
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean permissionCheck(Player player) {
|
private boolean permissionCheck(Player player) {
|
||||||
@ -68,6 +69,8 @@ public class CommandSimulator implements CommandExecutor {
|
|||||||
case "start":
|
case "start":
|
||||||
TNTSimulator.get(player).start();
|
TNTSimulator.get(player).start();
|
||||||
break;
|
break;
|
||||||
|
case "delete":
|
||||||
|
TNTSimulator.get(player).delete();
|
||||||
default:
|
default:
|
||||||
help(player);
|
help(player);
|
||||||
break;
|
break;
|
||||||
|
@ -271,9 +271,9 @@ public class TNTSimulator {
|
|||||||
|
|
||||||
private static Material comparatorOrNot(boolean b) {
|
private static Material comparatorOrNot(boolean b) {
|
||||||
if (b) {
|
if (b) {
|
||||||
return VersionedCallable.call(new VersionedCallable<>(TNTSimulator_12::comparator, 8), new VersionedCallable<>(TNTSimulator_15::comparator, 14));
|
return SWItem.getMaterial("REDSTONE_COMPARATOR");
|
||||||
} else {
|
} else {
|
||||||
return VersionedCallable.call(new VersionedCallable<>(TNTSimulator_12::repeater, 8), new VersionedCallable<>(TNTSimulator_15::repeater, 14));
|
return SWItem.getMaterial("DIODE");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -319,25 +319,32 @@ public class TNTSimulator {
|
|||||||
return (int)(d * 10000) * 0.0001;
|
return (int)(d * 10000) * 0.0001;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void delete() {
|
||||||
|
TNT_SPAWNS.clear();
|
||||||
|
}
|
||||||
|
|
||||||
public void start() {
|
public void start() {
|
||||||
Map<Integer, List<TNTSpawn>> first = new HashMap<>();
|
Map<Integer, List<TNTSpawn>> first = new HashMap<>();
|
||||||
Map<Integer, List<TNTSpawn>> second = new HashMap<>();
|
Map<Integer, List<TNTSpawn>> second = new HashMap<>();
|
||||||
AtomicInteger lastTick = new AtomicInteger(0);
|
int lastTick = 0;
|
||||||
TNT_SPAWNS.forEach(tntSpawn -> {
|
|
||||||
|
for (TNTSpawn tntSpawn : TNT_SPAWNS) {
|
||||||
Map<Integer, List<TNTSpawn>> list = tntSpawn.isComparator() ? second : first;
|
Map<Integer, List<TNTSpawn>> list = tntSpawn.isComparator() ? second : first;
|
||||||
for (int i = 0; i < tntSpawn.getCount(); i++) {
|
for (int i = 0; i < tntSpawn.getCount(); i++) {
|
||||||
list.computeIfAbsent(tntSpawn.getTickOffset(), integer -> new ArrayList<>()).add(tntSpawn);
|
list.computeIfAbsent(tntSpawn.getTickOffset(), integer -> new ArrayList<>()).add(tntSpawn);
|
||||||
}
|
}
|
||||||
if (lastTick.get() < tntSpawn.getTickOffset()) {
|
if (lastTick < tntSpawn.getTickOffset()) {
|
||||||
lastTick.set(tntSpawn.getTickOffset());
|
lastTick = tntSpawn.getTickOffset();
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
int finalLastTick = lastTick;
|
||||||
|
|
||||||
AtomicInteger currentTick = new AtomicInteger(0);
|
AtomicInteger currentTick = new AtomicInteger(0);
|
||||||
Bukkit.getScheduler().runTaskTimer(BauSystem.getPlugin(), bukkitTask -> {
|
Bukkit.getScheduler().runTaskTimer(BauSystem.getPlugin(), bukkitTask -> {
|
||||||
int tick = currentTick.get();
|
int tick = currentTick.get();
|
||||||
spawnRandomList(first.getOrDefault(tick, EMPTY));
|
spawnRandomList(first.getOrDefault(tick, EMPTY));
|
||||||
spawnRandomList(second.getOrDefault(tick, EMPTY));
|
spawnRandomList(second.getOrDefault(tick, EMPTY));
|
||||||
if (tick > lastTick.get()) bukkitTask.cancel();
|
if (tick > finalLastTick) bukkitTask.cancel();
|
||||||
currentTick.incrementAndGet();
|
currentTick.incrementAndGet();
|
||||||
}, 1, 1);
|
}, 1, 1);
|
||||||
}
|
}
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren