SteamWar/BauSystem
Archiviert
13
0

TntMode #163

Manuell gemergt
YoyoNow hat 8 Commits von TntMode nach master 2021-01-24 20:19:52 +01:00 zusammengeführt
Nur Änderungen aus Commit ae6d5ee671 werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -31,9 +31,10 @@ import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityExplodeEvent;
public class CommandTNT implements CommandExecutor {
public class CommandTNT implements CommandExecutor, Listener {
private static TNTMode tntMode = TNTMode.OFF;
@ -58,6 +59,10 @@ public class CommandTNT implements CommandExecutor {
}
public CommandTNT() {
Bukkit.getPluginManager().registerEvents(this, BauSystem.getPlugin());
}
private String getNoPermMessage() {
return "§cDu darfst hier nicht TNT-Schaden (de-)aktivieren";
}
@ -71,11 +76,11 @@ public class CommandTNT implements CommandExecutor {
}
private String getTestblockEnableMessage() {
Review

§cEine Explosion hätte Blöcke im Baubereich zerstört

§cEine Explosion hätte Blöcke im Baubereich zerstört
return "§aTNT-Schaden beim Testblock aktiviert";
return "§aTNT-Schaden am Testblock aktiviert";
}
private String getDamageMessage() {
return "§cEs ist etwas explodiert und hätte blöcke zerstört";
return "§cEine Explosion hätte Blöcke im Baubereich zerstört";
}
@Override
@ -110,10 +115,13 @@ public class CommandTNT implements CommandExecutor {
@EventHandler
Review

Ich denke, ein switch-case würde sich besser lesen lassen als dieses If if else gedöns.

Ich denke, ein switch-case würde sich besser lesen lassen als dieses If if else gedöns.
public void onExplode(EntityExplodeEvent event) {
if (tntMode == TNTMode.ON) return;
if (tntMode == TNTMode.OFF) {
switch (tntMode) {
case ON:
break;
case OFF:
event.blockList().clear();
} else {
break;
case ONLY_TB:
boolean blocksDestroyed = event.blockList().removeIf(block -> {
Review

Die invertierung macht hier den Code etwas schwerer zu lesen, da dahinter eh nur eine Zeile kommt, kannst du dieses if zurückinvertieren und dann einfach sendToActionBar aufrufen. Dann hast du da weniger Probleme.

Die invertierung macht hier den Code etwas schwerer zu lesen, da dahinter eh nur eine Zeile kommt, kannst du dieses if zurückinvertieren und dann einfach sendToActionBar aufrufen. Dann hast du da weniger Probleme.
for (Region region : Region.getRegions()) {
if (region.hasBuildRegion() && region.inBuildRegion(block.getLocation())) {
@ -122,11 +130,11 @@ public class CommandTNT implements CommandExecutor {
}
return false;
});
if (!blocksDestroyed) {
return;
}
if (blocksDestroyed) {
Review

Auch mal mit 1.12 kurz kompilieren (sollte funzen, bin mir aber nicht ganz sicher)

Auch mal mit 1.12 kurz kompilieren (sollte funzen, bin mir aber nicht ganz sicher)
Review

Ja tut. Auch wenn du das gleiche schon in ToggleCommand verwendet hast.

Ja tut. Auch wenn du das gleiche schon in ToggleCommand verwendet hast.
sendToActionBar(getDamageMessage());
}
break;
}
}
private void sendToActionBar(String message) {