12
1

HellsBells #275

Manuell gemergt
Lixfel hat 19 Commits von Hells_bells nach master 2021-06-25 07:17:45 +02:00 zusammengeführt
Nur Änderungen aus Commit cabb09a674 werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -88,8 +88,8 @@ public class HellsBells {
private final World world = Bukkit.getWorlds().get(0); private final World world = Bukkit.getWorlds().get(0);
private final int xLength = Config.RedPasteRegion.getMaxX() - Config.RedPasteRegion.getMinX(); private final int xLength = Config.RedPasteRegion.getMaxX() - Config.RedPasteRegion.getMinX();
private final int zLength = Config.RedPasteRegion.getMaxZ() - Config.RedPasteRegion.getMinZ(); private final int zLength = Config.RedPasteRegion.getMaxZ() - Config.RedPasteRegion.getMinZ();
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Diese Unterklasse scheint mir ziemlich unnötig, die Inhalte dieser Klasse sollten in die übergeordnete Klasse eingebaut werden können.

Diese Unterklasse scheint mir ziemlich unnötig, die Inhalte dieser Klasse sollten in die übergeordnete Klasse eingebaut werden können.
private State current = State.PRE; private State current = State.NONE;
private long stateStart = 0; private int currentDrops = 0;
private HellsBellsCountdown currentCountdown; private HellsBellsCountdown currentCountdown;
private static final List<String> startMessages = Arrays.asList("§c!!Achtung!! Bomber im Anflug, noch ca. eine Minute bis zur Ankunft.", private static final List<String> startMessages = Arrays.asList("§c!!Achtung!! Bomber im Anflug, noch ca. eine Minute bis zur Ankunft.",
"§cBomber im Anflug, ca. eine Minute bis zur Ankunft.", "§cBomber im Anflug, ca. eine Minute bis zur Ankunft.",
@ -100,35 +100,31 @@ public class HellsBells {
public void init() { public void init() {
stateStart = System.currentTimeMillis(); current = State.PRE;
currentDrops = 0;
currentCountdown = null;
startCountdown(); startCountdown();
} }
public void terminate() { public void terminate() {
current = State.NONE; current = State.NONE;
currentCountdown.disable(); if (currentCountdown != null) {
currentCountdown.disable();
}
YoyoNow markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

init() und terminate() lesen sich mir wie eine enable() und disable() eines StateDependent...

init() und terminate() lesen sich mir wie eine enable() und disable() eines StateDependent...
} }
Zeanon markierte diese Unterhaltung als gelöst Veraltet
Veraltet
Review

Wird der State NONE wirklich benötigt?

Wird der State NONE wirklich benötigt?
public void startCountdown() { public void startCountdown() {
if (current != State.NONE) { if (current != State.NONE) {
long currentTime = System.currentTimeMillis();
if (current != State.LAST && current != State.PRE && currentTime >= stateStart + (current.switchAfter * 1000L)) {
Bukkit.broadcastMessage(FightSystem.PREFIX + "§aDie Bomben fallen nun schneller.");
current = current.getNext();
stateStart = currentTime;
}
int timer = current.minTime + random.nextInt(current.maxTime - current.minTime);
if (current == State.PRE) { if (current == State.PRE) {
Bukkit.broadcastMessage(FightSystem.PREFIX + (startMessages.get(random.nextInt(startMessages.size())))); Bukkit.broadcastMessage(FightSystem.PREFIX + (startMessages.get(random.nextInt(startMessages.size()))));
current = current.getNext(); current = current.getNext();
} else if (current != State.LAST && currentDrops >= current.SWITCH_AFTER) {
Bukkit.broadcastMessage(FightSystem.PREFIX + "§aDie Bomben fallen nun schneller.");
currentDrops = 0;
} }
currentCountdown = new HellsBellsCountdown(timer, SWSound.BLOCK_NOTE_BASS, true); currentDrops++;
currentCountdown = new HellsBellsCountdown(current.MIN_TIME + random.nextInt(current.MAX_TIME - current.MIN_TIME), SWSound.BLOCK_NOTE_BASS, true);
currentCountdown.enable(); currentCountdown.enable();
} }
} }
@ -168,8 +164,7 @@ public class HellsBells {
} }
} }
length.decrementAndGet(); if (length.addAndGet(-2) <= 0) {
if (length.decrementAndGet() <= 0) {
cancel(); cancel();
} }
} }
@ -220,34 +215,34 @@ public class HellsBells {
} }
public Location addAndToLocation(World world, int x, int y, int z) { public Location addAndToLocation(World world, int x, int y, int z) {
return new Location(world, this.x + x, this.y + y, this.z + z); return new Location(world, this.x + x, this.y + y, this.z + z); //NOSONAR
} }
public Location subtractAndToLocation(World world, int x, int y, int z) { public Location subtractAndToLocation(World world, int x, int y, int z) {
return new Location(world, this.x - x, this.y - y, this.z - z); return new Location(world, this.x - x, this.y - y, this.z - z); //NOSONAR
} }
} }
private enum State { private enum State {
NONE(0, 0, -1), NONE(0, 0, 0),
PRE(60, 80, 0), PRE(60, 80, 1),
FIRST(40, 60, 5 * 60), FIRST(40, 60, 5),
SECOND(30, 40, 4 * 60), SECOND(30, 40, 6),
THIRD(20, 30, 3 * 60), THIRD(20, 30, 6),
FOURTH(10, 20, 2 * 60), FOURTH(10, 20, 7),
LAST(5, 10, -1); LAST(5, 10, 0);
State(int minTime, int maxTime, int switchAfter) { State(int minTime, int maxTime, int switchAfter) {
this.minTime = minTime; this.MIN_TIME = minTime;
this.maxTime = maxTime; this.MAX_TIME = maxTime;
this.switchAfter = switchAfter; this.SWITCH_AFTER = switchAfter;
} }
private final int minTime; private final int MIN_TIME; //NOSONAR
private final int maxTime; private final int MAX_TIME; //NOSONAR
private final int switchAfter; private final int SWITCH_AFTER; //NOSONAR
public State getNext() { public State getNext() {