From e530f0cadfcfaccb7cd5d0486100573094b4d939 Mon Sep 17 00:00:00 2001 From: robin Date: Sat, 25 Mar 2023 12:04:25 +0100 Subject: [PATCH 1/2] Implement legacy config converter --- .../addons/customnametags/CustomNameTags.java | 4 ++ .../legacy/CustomNameTagsLegacyConverter.java | 44 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 core/src/main/java/net/labymod/addons/customnametags/legacy/CustomNameTagsLegacyConverter.java diff --git a/core/src/main/java/net/labymod/addons/customnametags/CustomNameTags.java b/core/src/main/java/net/labymod/addons/customnametags/CustomNameTags.java index 108215f..138ed94 100644 --- a/core/src/main/java/net/labymod/addons/customnametags/CustomNameTags.java +++ b/core/src/main/java/net/labymod/addons/customnametags/CustomNameTags.java @@ -17,9 +17,11 @@ package net.labymod.addons.customnametags; import java.util.function.Supplier; +import net.labymod.addons.customnametags.legacy.CustomNameTagsLegacyConverter; import net.labymod.addons.customnametags.listener.ChatReceiveListener; import net.labymod.addons.customnametags.listener.NameTagBackgroundRenderListener; import net.labymod.addons.customnametags.listener.PlayerNameTagRenderListener; +import net.labymod.api.Laby; import net.labymod.api.addon.LabyAddon; import net.labymod.api.client.component.Component; import net.labymod.api.client.component.TextComponent; @@ -49,6 +51,8 @@ protected void enable() { this.registerListener(new NameTagBackgroundRenderListener(this)); this.registerListener(new PlayerNameTagRenderListener(this)); + this.registerLegacyConverter(new CustomNameTagsLegacyConverter(this)); + if (this.wasLoadedInRuntime()) { this.reloadTabList(); } diff --git a/core/src/main/java/net/labymod/addons/customnametags/legacy/CustomNameTagsLegacyConverter.java b/core/src/main/java/net/labymod/addons/customnametags/legacy/CustomNameTagsLegacyConverter.java new file mode 100644 index 0000000..c8388c5 --- /dev/null +++ b/core/src/main/java/net/labymod/addons/customnametags/legacy/CustomNameTagsLegacyConverter.java @@ -0,0 +1,44 @@ +package net.labymod.addons.customnametags.legacy; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import net.labymod.addons.customnametags.CustomNameTag; +import net.labymod.addons.customnametags.CustomNameTags; +import net.labymod.addons.customnametags.CustomNameTagsConfiguration; +import net.labymod.api.configuration.converter.LegacyConverter; +import java.util.Map.Entry; + +public class CustomNameTagsLegacyConverter extends LegacyConverter { + + private final CustomNameTags addon; + + public CustomNameTagsLegacyConverter(CustomNameTags addon) { + super("tags.json", JsonObject.class); + + this.addon = addon; + } + + @Override + protected void convert(JsonObject jsonObject) { + CustomNameTagsConfiguration configuration = this.addon.configuration(); + + for (Entry entry : jsonObject.get("tags").getAsJsonObject().entrySet()) { + CustomNameTag tag = CustomNameTag.create( + true, + entry.getValue().getAsString(), + true + ); + + configuration.getCustomTags().put(entry.getKey(), tag); + } + + this.addon.saveConfiguration(); + } + + @Override + public boolean hasStuffToConvert() { + return this.getValue() != null + && this.getValue().has("tags") + && this.getValue().getAsJsonObject("tags").size() != 0; + } +} From c616f450ff38764f03158ae08764b9e08f30e93a Mon Sep 17 00:00:00 2001 From: robin Date: Sat, 25 Mar 2023 12:33:13 +0100 Subject: [PATCH 2/2] Copy tags enabled state from LabyMod 3 --- .../legacy/CustomNameTagsLegacyConverter.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/src/main/java/net/labymod/addons/customnametags/legacy/CustomNameTagsLegacyConverter.java b/core/src/main/java/net/labymod/addons/customnametags/legacy/CustomNameTagsLegacyConverter.java index c8388c5..da48a98 100644 --- a/core/src/main/java/net/labymod/addons/customnametags/legacy/CustomNameTagsLegacyConverter.java +++ b/core/src/main/java/net/labymod/addons/customnametags/legacy/CustomNameTagsLegacyConverter.java @@ -22,6 +22,15 @@ public CustomNameTagsLegacyConverter(CustomNameTags addon) { protected void convert(JsonObject jsonObject) { CustomNameTagsConfiguration configuration = this.addon.configuration(); + JsonObject labymodSettings = + this.fromJson(LEGACY_PATH.resolve("LabyMod-3.json"), JsonObject.class); + + configuration.enabled().set( + labymodSettings != null + && labymodSettings.has("tags") + && labymodSettings.get("tags").getAsBoolean() + ); + for (Entry entry : jsonObject.get("tags").getAsJsonObject().entrySet()) { CustomNameTag tag = CustomNameTag.create( true,