Fix some more stuff
Some checks failed
SteamWarCI Build failed

This commit is contained in:
2025-07-03 09:52:56 +02:00
parent e1917d7ce0
commit dc378f2b21
8 changed files with 39 additions and 29 deletions

View File

@@ -3,7 +3,7 @@ package de.steamwar.bausystem.features.region;
import de.steamwar.bausystem.BauSystem;
import de.steamwar.bausystem.region.Region;
import de.steamwar.bausystem.region.flags.Flag;
import de.steamwar.bausystem.region.flags.flagvalues.FreezeMode;
import de.steamwar.bausystem.region.flags.FreezeMode;
import de.steamwar.bausystem.utils.ScoreboardElement;
import de.steamwar.core.Core;
import de.steamwar.core.TrickyTrialsWrapper;

View File

@@ -21,6 +21,7 @@ package de.steamwar.bausystem.features.script.lua.libs;
import de.steamwar.bausystem.features.loader.Loader;
import de.steamwar.bausystem.region.Region;
import de.steamwar.bausystem.region.RegionSystem;
import de.steamwar.bausystem.region.flags.*;
import de.steamwar.linkage.Linked;
import org.bukkit.entity.Player;
@@ -28,6 +29,7 @@ import org.luaj.vm2.LuaTable;
import org.luaj.vm2.LuaValue;
import org.luaj.vm2.lib.OneArgFunction;
import java.util.UUID;
import java.util.function.Supplier;
@Linked
@@ -41,13 +43,14 @@ public class RegionLib implements LuaLib {
private LuaTable create(Supplier<Region> region, Player player) {
LuaTable table = LuaValue.tableOf();
table.set("name", getter(() -> region.get().getName()));
table.set("name", getter(() -> region.get().getID().toString()));
table.set("id", getter(() -> region.get().getID().toString()));
table.set("type", getter(() -> {
Region region1 = region.get();
if (region1.getType().isGlobal()) {
return "global";
}
return region1.getPrototype().getName();
return region1.getType().name().toLowerCase();
}));
LuaValue tntLib = LuaValue.tableOf();
@@ -72,16 +75,16 @@ public class RegionLib implements LuaLib {
Loader loader = Loader.getLoader(player);
table.set("loader", getter(() -> loader == null ? "OFF" : loader.getStage().name()));
table.set("copyPoint", getter(() -> toPos(region.get().getCopyPoint())));
table.set("minPointBuild", getter(() -> toPos(region.get().getMinPointBuild())));
table.set("maxPointBuild", getter(() -> toPos(region.get().getMaxPointBuild())));
table.set("minPointBuildExtension", getter(() -> toPos(region.get().getMinPointBuildExtension())));
table.set("maxPointBuildExtension", getter(() -> toPos(region.get().getMaxPointBuildExtension())));
table.set("testblockPoint", getter(() -> toPos(region.get().getTestBlockPoint())));
table.set("minPointTestblock", getter(() -> toPos(region.get().getMinPointTestblock())));
table.set("maxPointTestblock", getter(() -> toPos(region.get().getMaxPointTestblock())));
table.set("minPointTestblockExtension", getter(() -> toPos(region.get().getMinPointTestblockExtension())));
table.set("maxPointTestblockExtension", getter(() -> toPos(region.get().getMaxPointTestblockExtension())));
table.set("copyPoint", getter(() -> toPos(region.get().getBuildArea().getCopyPoint())));
table.set("minPointBuild", getter(() -> toPos(region.get().getBuildArea().getMinPoint(false))));
table.set("maxPointBuild", getter(() -> toPos(region.get().getBuildArea().getMinPoint(false))));
table.set("minPointBuildExtension", getter(() -> toPos(region.get().getBuildArea().getMinPoint(true))));
table.set("maxPointBuildExtension", getter(() -> toPos(region.get().getBuildArea().getMinPoint(true))));
table.set("testblockPoint", getter(() -> toPos(region.get().getTestblockArea().getCopyPoint())));
table.set("minPointTestblock", getter(() -> toPos(region.get().getTestblockArea().getMinPoint(false))));
table.set("maxPointTestblock", getter(() -> toPos(region.get().getTestblockArea().getMinPoint(false))));
table.set("minPointTestblockExtension", getter(() -> toPos(region.get().getTestblockArea().getMinPoint(true))));
table.set("maxPointTestblockExtension", getter(() -> toPos(region.get().getTestblockArea().getMinPoint(true))));
return table;
}
@@ -92,11 +95,11 @@ public class RegionLib implements LuaLib {
table.set("get", new OneArgFunction() {
@Override
public LuaValue call(LuaValue arg) {
return create(() -> Region.getREGION_MAP().get(arg.checkjstring()), player);
return create(() -> RegionSystem.INSTANCE.getRegion(UUID.fromString(arg.checkjstring())).orElse(RegionSystem.INSTANCE.getGlobalRegion()), player);
}
});
table.set("list", getter(() -> LuaValue.listOf(Region.getREGION_MAP().values().stream().map(region -> create(() -> region, player)).toArray(LuaTable[]::new))));
table.set("list", getter(() -> LuaValue.listOf(RegionSystem.INSTANCE.getRegions().map(region -> create(() -> region, player)).toArray(LuaTable[]::new))));
return table;
}

View File

@@ -75,7 +75,7 @@ public class StorageLib implements LuaLib, Enable, Disable {
jsonObject.keySet().forEach(key -> {
map.put(key, fromJson(jsonObject.get(key)));
});
Region region = RegionSystem.INSTANCE.getRegion(regionStorage.getName().substring(0, regionStorage.getName().length() - ".json".length())).orElse(null);
Region region = RegionSystem.INSTANCE.getRegion(UUID.fromString(regionStorage.getName().substring(0, regionStorage.getName().length() - ".json".length()))).orElse(null);
REGION_STORAGE.put(region, map);
} catch (Exception e) {}
}
@@ -144,7 +144,7 @@ public class StorageLib implements LuaLib, Enable, Disable {
regionStorageDirectory.mkdirs();
for (Map.Entry<Region, HashMap<String, LuaValue>> entry : REGION_STORAGE.entrySet()) {
try {
FileWriter fileWriter = new FileWriter(new File(regionStorageDirectory, entry.getKey().getName() + ".json"));
FileWriter fileWriter = new FileWriter(new File(regionStorageDirectory, entry.getKey().getID().toString() + ".json"));
gson.toJson(toJson(entry.getValue()), fileWriter);
fileWriter.close();
} catch (IOException e) {}

View File

@@ -19,10 +19,9 @@
package de.steamwar.bausystem.features.simulator.execute;
import de.steamwar.bausystem.features.tracer.Trace;
import de.steamwar.bausystem.features.tracer.TraceRecorder;
import de.steamwar.bausystem.region.flags.ColorMode;
import de.steamwar.bausystem.region.flags.Flag;
import de.steamwar.bausystem.region.flags.flagvalues.ColorMode;
import de.steamwar.bausystem.region.utils.RegionExtensionType;
import de.steamwar.bausystem.region.utils.RegionType;
import de.steamwar.bausystem.utils.PasteBuilder;
@@ -38,8 +37,10 @@ public class StabFinalizer extends StabStep {
protected void start() {
try {
PasteBuilder.ClipboardProvider clipboardProvider = new PasteBuilder.ClipboardProviderImpl(data.clipboard);
PasteBuilder pasteBuilder = new PasteBuilder(clipboardProvider)
.color(data.region.getPlain(Flag.COLOR, ColorMode.class).getColor());
PasteBuilder pasteBuilder = new PasteBuilder(clipboardProvider);
if (data.region.hasFlag(Flag.COLOR).isReadable()) {
pasteBuilder.color(data.region.getFlag(Flag.COLOR).get().getColor());
}
data.region.reset(pasteBuilder, RegionType.TESTBLOCK, RegionExtensionType.EXTENSION);
} catch (SecurityException e) {
stop();

View File

@@ -22,7 +22,6 @@ package de.steamwar.bausystem.features.simulator.execute;
import de.steamwar.bausystem.features.simulator.data.tnt.TNTPhase;
import de.steamwar.bausystem.region.Region;
import de.steamwar.bausystem.region.flags.Flag;
import de.steamwar.bausystem.region.flags.flagvalues.ColorMode;
import de.steamwar.bausystem.region.utils.RegionExtensionType;
import de.steamwar.bausystem.region.utils.RegionType;
import de.steamwar.bausystem.utils.PasteBuilder;
@@ -56,7 +55,8 @@ public class StabGenerator extends StabStep implements Listener {
public void onEntityExplode(EntityExplodeEvent event) {
if (Region.getRegion(event.getEntity().getLocation()) == data.region) {
event.blockList().forEach(block -> {
if (!data.region.inRegion(block.getLocation(), RegionType.TESTBLOCK, RegionExtensionType.EXTENSION)) return;
if (!data.region.inRegion(block.getLocation(), RegionType.TESTBLOCK, RegionExtensionType.EXTENSION))
return;
int component = data.direction.component.apply(block.getLocation().toVector());
destroyedBlocksPerSlice.computeIfAbsent(component, __ -> new HashSet<>())
.add(block.getLocation());
@@ -72,8 +72,10 @@ public class StabGenerator extends StabStep implements Listener {
protected void start() {
try {
PasteBuilder.ClipboardProvider clipboardProvider = new PasteBuilder.ClipboardProviderImpl(data.clipboard);
PasteBuilder pasteBuilder = new PasteBuilder(clipboardProvider)
.color(data.region.getPlain(Flag.COLOR, ColorMode.class).getColor());
PasteBuilder pasteBuilder = new PasteBuilder(clipboardProvider);
if (data.region.hasFlag(Flag.COLOR).isReadable()) {
pasteBuilder.color(data.region.getFlag(Flag.COLOR).get().getColor());
}
data.region.reset(pasteBuilder, RegionType.TESTBLOCK, RegionExtensionType.EXTENSION);
} catch (SecurityException e) {
stop();

View File

@@ -39,7 +39,7 @@ public class TraceRepository {
@Cleanup
ObjectInputStream reader = new ObjectInputStream(new FileInputStream(metadataFile));
UUID uuid = UUID.fromString(reader.readUTF());
Region region = RegionSystem.INSTANCE.getRegion(reader.readUTF()).orElse(null);
Region region = RegionSystem.INSTANCE.getRegion(UUID.fromString(reader.readUTF())).orElse(null);
if (region == null) return null;
Date date = (Date) reader.readObject();
File recordsFile = new File(tracesFolder,uuid + ".records");
@@ -53,7 +53,7 @@ public class TraceRepository {
protected static void writeTrace(Trace trace, List<TNTPoint> records) {
ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream(trace.getMetadataSaveFile()));
outputStream.writeUTF(trace.getUuid().toString());
outputStream.writeUTF(trace.getRegion().getName());
outputStream.writeUTF(trace.getRegion().getID().toString());
outputStream.writeObject(trace.getDate());
outputStream.writeInt(SERIALISATION_VERSION);
outputStream.writeInt(records.size());

View File

@@ -28,6 +28,7 @@ import org.bukkit.Location;
import javax.annotation.Nullable;
import java.io.File;
import java.util.Optional;
import java.util.UUID;
public interface Region {
@@ -35,6 +36,8 @@ public interface Region {
return RegionSystem.INSTANCE.get(location);
}
UUID getID();
RegionType getType();
<T extends Enum<T> & Flag.Value<T>> RegionFlagPolicy hasFlag(@NonNull Flag<T> flag);

View File

@@ -23,6 +23,7 @@ import org.bukkit.Location;
import java.lang.reflect.InvocationTargetException;
import java.util.Optional;
import java.util.UUID;
import java.util.stream.Stream;
public interface RegionSystem {
@@ -35,7 +36,7 @@ public interface RegionSystem {
Region getGlobalRegion();
Region get(Location location);
Optional<Region> getRegion(String name);
Optional<Region> getRegion(UUID id);
Stream<Region> getRegions();
@@ -68,7 +69,7 @@ public interface RegionSystem {
}
@Override
public Optional<Region> getRegion(String name) {
public Optional<Region> getRegion(UUID id) {
throw new UnsupportedOperationException();
}