make world identifier valid by hex encoding them

This commit is contained in:
Jakob Schulz
2026-11-01 00:46:13 +01:00
parent e22317f1fa
commit 1389f81c7c
5 changed files with 11 additions and 7 deletions
@@ -81,7 +81,7 @@ public class FightSystem extends JavaPlugin {
String arenaMap = System.getProperty("arenaMap");
if (arenaMap != null) {
WorldIdentifier.set("arena/" + Core.getVersion() + "/" + arenaMap);
WorldIdentifier.setArena(arenaMap);
}
message = new Message("de.steamwar.fightsystem.FightSystem", FightSystem.class.getClassLoader());
@@ -19,7 +19,6 @@
package de.steamwar.misslewars;
import de.steamwar.core.Core;
import de.steamwar.core.WorldIdentifier;
import de.steamwar.linkage.AbstractLinker;
import de.steamwar.linkage.SpigotLinker;
@@ -60,7 +59,7 @@ public class MissileWars extends JavaPlugin {
String arenaMap = System.getProperty("arenaMap");
if (arenaMap != null) {
WorldIdentifier.set("arena/" + Core.getVersion() + "/" + arenaMap);
WorldIdentifier.setArena(arenaMap);
}
SpigotLinker spigotLinker = new SpigotLinker(this, null) {
@@ -27,6 +27,9 @@ import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.Level;
import java.nio.charset.StandardCharsets;
import java.util.HexFormat;
@Linked
public class WorldIdentifier {
@@ -36,6 +39,10 @@ public class WorldIdentifier {
resourceKey = new ResourceKey<>(new ResourceLocation("minecraft", "dimension"), new ResourceLocation("steamwar", name));
}
public static void setArena(String map) {
set("arena/" + Core.getVersion() + "/" + HexFormat.of().formatHex(map.getBytes(StandardCharsets.UTF_8)));
}
public WorldIdentifier() {
TinyProtocol.instance.addFilter(ClientboundLoginPacket.class, (player, packet) -> {
if (resourceKey == null) return packet;
@@ -19,7 +19,6 @@
package de.steamwar.tntleague
import de.steamwar.core.Core
import de.steamwar.core.WorldIdentifier
import de.steamwar.message.Message
import de.steamwar.tntleague.command.*
@@ -47,7 +46,7 @@ class TNTLeague : JavaPlugin() {
val arenaMap = System.getProperty("arenaMap")
if (arenaMap != null) {
WorldIdentifier.set("arena/" + Core.getVersion() + "/" + arenaMap)
WorldIdentifier.setArena(arenaMap)
}
ReadyCommand.register()
@@ -20,7 +20,6 @@
package de.steamwar.towerrun;
import de.steamwar.command.SWCommand;
import de.steamwar.core.Core;
import de.steamwar.core.WorldIdentifier;
import de.steamwar.linkage.AbstractLinker;
import de.steamwar.linkage.LinkedInstance;
@@ -60,7 +59,7 @@ public class TowerRun extends JavaPlugin {
String arenaMap = System.getProperty("arenaMap");
if (arenaMap != null) {
WorldIdentifier.set("arena/" + Core.getVersion() + "/" + arenaMap);
WorldIdentifier.setArena(arenaMap);
}
SpigotLinker spigotLinker = new SpigotLinker(this, message) {