TntMode #163
@ -31,9 +31,10 @@ import org.bukkit.command.CommandExecutor;
|
|||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.entity.EntityExplodeEvent;
|
import org.bukkit.event.entity.EntityExplodeEvent;
|
||||||
|
|
||||||
public class CommandTNT implements CommandExecutor {
|
public class CommandTNT implements CommandExecutor, Listener {
|
||||||
|
|
||||||
private static TNTMode tntMode = TNTMode.OFF;
|
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() {
|
private String getNoPermMessage() {
|
||||||
return "§cDu darfst hier nicht TNT-Schaden (de-)aktivieren";
|
return "§cDu darfst hier nicht TNT-Schaden (de-)aktivieren";
|
||||||
}
|
}
|
||||||
@ -71,11 +76,11 @@ public class CommandTNT implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private String getTestblockEnableMessage() {
|
private String getTestblockEnableMessage() {
|
||||||
|
|||||||
return "§aTNT-Schaden beim Testblock aktiviert";
|
return "§aTNT-Schaden am Testblock aktiviert";
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getDamageMessage() {
|
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
|
@Override
|
||||||
@ -110,10 +115,13 @@ public class CommandTNT implements CommandExecutor {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
Lixfel
hat
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) {
|
public void onExplode(EntityExplodeEvent event) {
|
||||||
if (tntMode == TNTMode.ON) return;
|
switch (tntMode) {
|
||||||
if (tntMode == TNTMode.OFF) {
|
case ON:
|
||||||
|
break;
|
||||||
|
case OFF:
|
||||||
event.blockList().clear();
|
event.blockList().clear();
|
||||||
} else {
|
break;
|
||||||
|
case ONLY_TB:
|
||||||
boolean blocksDestroyed = event.blockList().removeIf(block -> {
|
boolean blocksDestroyed = event.blockList().removeIf(block -> {
|
||||||
Lixfel
hat
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()) {
|
for (Region region : Region.getRegions()) {
|
||||||
if (region.hasBuildRegion() && region.inBuildRegion(block.getLocation())) {
|
if (region.hasBuildRegion() && region.inBuildRegion(block.getLocation())) {
|
||||||
@ -122,11 +130,11 @@ public class CommandTNT implements CommandExecutor {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
if (!blocksDestroyed) {
|
if (blocksDestroyed) {
|
||||||
Lixfel
hat
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)
YoyoNow
hat
Ja tut. Auch wenn du das gleiche schon in ToggleCommand verwendet hast. Ja tut. Auch wenn du das gleiche schon in ToggleCommand verwendet hast.
|
|||||||
return;
|
|
||||||
}
|
|
||||||
sendToActionBar(getDamageMessage());
|
sendToActionBar(getDamageMessage());
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendToActionBar(String message) {
|
private void sendToActionBar(String message) {
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren
§cEine Explosion hätte Blöcke im Baubereich zerstört