SteamWar/BauSystem
Archiviert
13
0

Add CommandTNT with extension explode message #189

Manuell gemergt
YoyoNow hat 3 Commits von ExtensionTNT nach master 2021-02-06 21:52:17 +01:00 zusammengeführt
2 geänderte Dateien mit 17 neuen und 17 gelöschten Zeilen

Datei anzeigen

@ -55,10 +55,6 @@ public class CommandTNT implements CommandExecutor, Listener {
Bukkit.getPluginManager().registerEvents(this, BauSystem.getPlugin());
}
private String getNoPermMessage() {
return "§cDu darfst hier nicht TNT-Schaden (de-)aktivieren";
}
private String getEnableMessage() {
return "§aTNT-Schaden aktiviert";
}
@ -71,17 +67,13 @@ public class CommandTNT implements CommandExecutor, Listener {
return "§aTNT-Schaden außerhalb Baurahmen aktiviert";
}
private String getDamageMessage() {
return "§cEine Explosion hätte Blöcke im Baubereich zerstört";
}
@Override
public boolean onCommand(CommandSender sender, Command command, String s, String[] args) {
if (!(sender instanceof Player)) return false;
Player player = (Player) sender;
if (Welt.noPermission(player, Permission.world)) {
player.sendMessage(BauSystem.PREFIX + getNoPermMessage());
player.sendMessage(BauSystem.PREFIX + "§cDu darfst hier nicht TNT-Schaden (de-)aktivieren");
return false;
}
@ -143,13 +135,16 @@ public class CommandTNT implements CommandExecutor, Listener {
public void onExplode(EntityExplodeEvent event) {
event.blockList().removeIf(block -> {
Region region = Region.getRegion(block.getLocation());
if (region.getTntMode() == TNTMode.OFF) return true;
if (region.getTntMode() == TNTMode.ON) return false;
if (region.hasBuildRegion() && region.inBuildRegion(block.getLocation())) {
RegionToggleCommand.actionBar(region, getDamageMessage());
RegionToggleCommand.actionBar(region, "§cEine Explosion hätte Blöcke im Baubereich zerstört");
return true;
}
return false;
if (region.hasBuildRegion() && region.inBuildRegionExtension(block.getLocation())) {
RegionToggleCommand.actionBar(region, "§cEine Explosion hätte Blöcke im Ausfahrbereich zerstört");
return true;
}
return region.getTntMode() == TNTMode.OFF;
});
}

Datei anzeigen

@ -162,6 +162,10 @@ public class Region {
return prototype.buildArea.inRegion(this, l);
}
public boolean inBuildRegionExtension(Location l) {
return prototype.buildArea.inRegionExtension(this, l);
}
public void fastreset(){
prototype.fastreset(this);
}
@ -212,11 +216,6 @@ public class Region {
return false;
}
@Override
public boolean inBuildRegion(Location l) {
return false;
}
@Override
public boolean hasTestblock() {
return false;
@ -288,6 +287,12 @@ public class Region {
inRange(l.getZ(), region.minZ + offsetZ, sizeZ);
}
public boolean inRegionExtension(Region region, Location l) {
return inRange(l.getX(), region.minX + offsetX - extensionAxisX + 1, sizeX + extensionAxisX * 2 - 1) &&
Review

Das +1-1-Zeugs schaut für mich so ein bisschen Suspicios aus (müsste mal man die Ursache für diesen One-Off-Fehler bestimmen).

Das +1-1-Zeugs schaut für mich so ein bisschen Suspicios aus (müsste mal man die Ursache für diesen One-Off-Fehler bestimmen).
Review

wegen deinem <= und + und so von inRange()

wegen deinem <= und + und so von inRange()
Review

Dann sollte man das ggf. irgendwann mal auf ein < ändern, aber das muss nicht in diesem MR passieren

Dann sollte man das ggf. irgendwann mal auf ein < ändern, aber das muss nicht in diesem MR passieren
Review

Ja klar. Mache ich aber werde erstmal reingucken, ob das nichts irgendwas anderes kaputt macht.

Ja klar. Mache ich aber werde erstmal reingucken, ob das nichts irgendwas anderes kaputt macht.
inRange(l.getY(), region.minY + offsetY, sizeY + extensionPositiveY - 1) &&
inRange(l.getZ(), region.minZ + offsetZ - extensionNegativeZ + 1, sizeZ + extensionNegativeZ - 1 + extensionPositiveZ);
}
public void fastreset(Region region){
File file = new File(schematic);
int x = region.minX + offsetX + sizeX/2;