TntMode #163
Keine Reviewer
Label
Kein Label
Bug
Codeverbesserung
Einsteiger Freundlich
Idee
In Arbeit
Neues Feature
Prio A
Security Breach
Überprüfung notwendig
Verbesserung
Zu Beobachten
Kein Meilenstein
Niemand zuständig
2 Beteiligte
Fällig am
Kein Fälligkeitsdatum gesetzt.
Abhängigkeiten
Keine Abhängigkeiten gesetzt.
Referenz: SteamWar/BauSystem#163
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren
Keine Beschreibung angegeben.
Branch "TntMode" löschen
Das Löschen eines Branches ist permanent. Obwohl der Branch für eine kurze Zeit weiter existieren könnte, kann diese Aktion in den meisten Fällen NICHT rückgängig gemacht werden. Fortfahren?
Closes: #126
Wichtig, man müsste dann noch die sections.yml anpassen aber an sich geht es auch erstmal ohne. Also wir können das ganze auch später einstellen.
@ -81,6 +81,7 @@ public class BauSystem extends JavaPlugin implements Listener {
getCommand("nightvision").setExecutor(new CommandNV());
getCommand("reset").setExecutor(new CommandReset());
getCommand("speed").setExecutor(new CommandSpeed());
getCommand("buildmode").setExecutor(new CommandBuildMode());
Finde das als Extracommand nicht so gut, da die Funktionalität mit dem TNT-Command kollidiert. Würde den Standard-TNT-Modus zum Buildmode setzen, und standardmäßig zwischen Aus und "Buildmode" (Bessere Wortwahl fehlt mir noch) zu toggeln, nur wenn "an" extra als Argument übergeben wird, in den alten An modus zu gehen.
@ -0,0 +68,4 @@
if (!blocksDestroyed) {
return;
}
Bukkit.getOnlinePlayers().forEach(player -> player.sendMessage(BauSystem.PREFIX + "§cEs ist etwas explodiert und hätte blöcke zerstört."));
Dafür gibts auch ne Broadcast Funktion. Düfte allerdings spammen, ich empfehle stark, das zu einer ACTION_BAR message zu machen.
Ich würde genau dies nicht machen, da ich nicht möchte, das man nach 5 Sekunden oder so nicht mehr weiß ob es explodiert ist oder so.
Derzeit weißt du es bei "aus" nie. UND: Wenn du dann 100 Messages bekommst, weil .... Auch 10 sind schon nervig.
@ -104,4 +105,14 @@ public class BauScoreboard implements Listener {
return "§8/§7" + CommandTPSLimiter.getCurrentTPSLimit();
}
private String tntString() {
Würde das ganze im TNTCommand eher über ein Switch/case mit Enum lösen.
Sollte dann nun so sein wie du willst.
@ -32,1 +44,3 @@
return getInstance(CommandTNT.class);
public enum TNTMode {
ON("§aan"),
ONLY_TB("§7nur §eTestblock"),
Nur Testblock ist ja so nicht ganz richtig. Ist ja eher ein Nicht Baubereich (klingt aber beschissen). Evtl. fällt uns da noch was besseres ein.
Wie würdest du das dann nennen?
@ -46,2 +71,4 @@
}
private String getTestblockEnableMessage() {
return "§aTNT-Schaden beim Testblock aktiviert";
am, nicht beim.
@ -48,0 +75,4 @@
}
private String getDamageMessage() {
return "§cEs ist etwas explodiert und hätte blöcke zerstört";
§cEine Explosion hätte Blöcke im Baubereich zerstört
@ -48,3 +111,2 @@
@EventHandler
public void onExplode(EntityExplodeEvent e) {
e.blockList().clear();
public void onExplode(EntityExplodeEvent event) {
Du registrierst den Command nirgends als Listener (weder implements noch registerEvents().
@ -51,0 +113,4 @@
if (tntMode == TNTMode.ON) return;
if (tntMode == TNTMode.OFF) {
event.blockList().clear();
} else {
Ich denke, ein switch-case würde sich besser lesen lassen als dieses If if else gedöns.
@ -51,0 +122,4 @@
}
return false;
});
if (!blocksDestroyed) {
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.
@ -51,1 +130,4 @@
}
private void sendToActionBar(String message) {
Bukkit.getOnlinePlayers().forEach(p -> p.spigot().sendMessage(ChatMessageType.ACTION_BAR, TextComponent.fromLegacyText(message)));
Auch mal mit 1.12 kurz kompilieren (sollte funzen, bin mir aber nicht ganz sicher)
Ja tut. Auch wenn du das gleiche schon in ToggleCommand verwendet hast.
Habe ich so nun behoben
Anpassung aller sections.yml vorher nötig (zumindest 2,3,4)