From 0fa93b70b3e8671a7d3ef0633695bf34a7e169f8 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Sun, 7 Jul 2024 23:50:54 +0200 Subject: [PATCH 01/28] Parse font field from InfoGet json responses --- api/src/main/java/com/rappytv/globaltags/api/ApiHandler.java | 1 + api/src/main/java/com/rappytv/globaltags/api/ResponseBody.java | 1 + 2 files changed, 2 insertions(+) diff --git a/api/src/main/java/com/rappytv/globaltags/api/ApiHandler.java b/api/src/main/java/com/rappytv/globaltags/api/ApiHandler.java index 5d1369e6..2445ddb5 100644 --- a/api/src/main/java/com/rappytv/globaltags/api/ApiHandler.java +++ b/api/src/main/java/com/rappytv/globaltags/api/ApiHandler.java @@ -59,6 +59,7 @@ public Map getBody() { consumer.accept(new PlayerInfo( uuid, request.responseBody.tag, + request.responseBody.font, request.responseBody.position, request.responseBody.icon, request.responseBody.admin, diff --git a/api/src/main/java/com/rappytv/globaltags/api/ResponseBody.java b/api/src/main/java/com/rappytv/globaltags/api/ResponseBody.java index 3313cfc9..f5ba23dd 100644 --- a/api/src/main/java/com/rappytv/globaltags/api/ResponseBody.java +++ b/api/src/main/java/com/rappytv/globaltags/api/ResponseBody.java @@ -4,6 +4,7 @@ public class ResponseBody { // For success public String tag; + public String font; public String position; public String icon; public boolean admin; From bd09c9dc8d063853e556242d3988e3331e9540f8 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Sun, 7 Jul 2024 23:51:33 +0200 Subject: [PATCH 02/28] Add own GlobalFont enum, add PlayerInfo#getFont --- .../rappytv/globaltags/types/GlobalFont.java | 6 ++++ .../rappytv/globaltags/types/PlayerInfo.java | 33 +++++++++++++++++-- 2 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java diff --git a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java new file mode 100644 index 00000000..61932f4b --- /dev/null +++ b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java @@ -0,0 +1,6 @@ +package com.rappytv.globaltags.types; + +public enum GlobalFont { + DEFAULT, + FANCY +} diff --git a/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java b/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java index 53fb3485..89eacaa3 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java +++ b/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java @@ -3,26 +3,34 @@ import com.rappytv.globaltags.api.ResponseBody.Ban; import com.rappytv.globaltags.util.Util; import net.labymod.api.client.component.Component; +import net.labymod.api.client.component.format.Style; import net.labymod.api.client.entity.player.tag.PositionType; import net.labymod.api.client.gui.icon.Icon; +import net.labymod.api.client.resources.ResourceLocation; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.HashMap; +import java.util.Map; import java.util.Objects; import java.util.UUID; public class PlayerInfo { + private static final Map fontStyles = new HashMap<>(); + private final UUID uuid; private final Component tag; private final String plainTag; + private final String font; private final String position; private final String icon; private final boolean admin; private final Suspension suspension; - public PlayerInfo(UUID uuid, String tag, String position, String icon, boolean admin, Ban ban) { + public PlayerInfo(UUID uuid, String tag, String font, String position, String icon, boolean admin, Ban ban) { this.uuid = uuid; - this.tag = Util.translateColorCodes(tag); + this.font = font; + this.tag = Util.translateColorCodes(tag).style(getFontStyle(getFont())); this.plainTag = tag != null ? tag : ""; this.position = position; this.icon = icon; @@ -30,6 +38,15 @@ public PlayerInfo(UUID uuid, String tag, String position, String icon, boolean a this.suspension = ban != null ? new Suspension(ban) : new Suspension(); } + private Style getFontStyle(GlobalFont font) { + if(fontStyles.containsKey(font)) return fontStyles.get(font); + fontStyles.put(font, Style.empty().font(ResourceLocation.create( + "globaltags", + "fonts/" + font.name().toLowerCase() + ))); + return getFontStyle(font); + } + /** * Returns the player's uuid */ @@ -54,6 +71,18 @@ public String getPlainTag() { return plainTag; } + /** + * Returns the {@link GlobalFont} enum value which the player has selected + */ + @NotNull + public GlobalFont getFont() { + try { + return GlobalFont.valueOf(font); + } catch (Exception ignored) { + return GlobalFont.DEFAULT; + } + } + /** * Returns the player's GlobalTag position */ From beaa3214056948c2cba8f1125fece59234a93270 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Sun, 7 Jul 2024 23:59:51 +0200 Subject: [PATCH 03/28] Rename default font --- api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java | 2 +- api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java index 61932f4b..079aba49 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java +++ b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java @@ -1,6 +1,6 @@ package com.rappytv.globaltags.types; public enum GlobalFont { - DEFAULT, + VANILLA, FANCY } diff --git a/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java b/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java index 89eacaa3..2f098f91 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java +++ b/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java @@ -79,7 +79,7 @@ public GlobalFont getFont() { try { return GlobalFont.valueOf(font); } catch (Exception ignored) { - return GlobalFont.DEFAULT; + return GlobalFont.VANILLA; } } From d0c2f24d98e23da975a5daccd5277eae32f90590 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Mon, 8 Jul 2024 00:19:59 +0200 Subject: [PATCH 04/28] Add ApiHandler#setFont --- .../rappytv/globaltags/api/ApiHandler.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/api/src/main/java/com/rappytv/globaltags/api/ApiHandler.java b/api/src/main/java/com/rappytv/globaltags/api/ApiHandler.java index 2445ddb5..7de1fc81 100644 --- a/api/src/main/java/com/rappytv/globaltags/api/ApiHandler.java +++ b/api/src/main/java/com/rappytv/globaltags/api/ApiHandler.java @@ -1,5 +1,6 @@ package com.rappytv.globaltags.api; +import com.rappytv.globaltags.types.GlobalFont; import com.rappytv.globaltags.types.GlobalIcon; import com.rappytv.globaltags.types.PlayerInfo; import com.rappytv.globaltags.types.PlayerInfo.Suspension; @@ -93,6 +94,31 @@ public Map getBody() { })); } + public static void setFont(GlobalFont font, Consumer consumer) { + setFont(Laby.labyAPI().getUniqueId(), font, consumer); + } + + public static void setFont(UUID uuid, GlobalFont font, Consumer consumer) { + ApiRequest request = new ApiRequest( + Method.POST, + "/players/" + uuid + "/font", + Util.getSessionToken() + ) { + @Override + public Map getBody() { + return Map.of("font", font.name()); + } + }; + request.sendAsyncRequest((response) -> { + if(!request.isSuccessful()) { + consumer.accept(new ApiResponse(false, request.getError())); + return; + } + TagCache.clear(); + TagCache.resolveSelf((info) -> consumer.accept(new ApiResponse(true, request.getMessage()))); + }); + } + public static void setPosition(PositionType position, Consumer consumer) { setPosition(Laby.labyAPI().getUniqueId(), position, consumer); } From 2adbdf975bfb03b6cef1a9005138e8a32a844d58 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Mon, 8 Jul 2024 00:20:59 +0200 Subject: [PATCH 05/28] Add font option to update global font --- .../java/com/rappytv/globaltags/util/Util.java | 5 +++++ .../globaltags/config/subconfig/TagSubConfig.java | 14 +++++++++++++- .../globaltags/config/widget/TagPreviewWidget.java | 2 ++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/api/src/main/java/com/rappytv/globaltags/util/Util.java b/api/src/main/java/com/rappytv/globaltags/util/Util.java index aeb65989..216b8e76 100644 --- a/api/src/main/java/com/rappytv/globaltags/util/Util.java +++ b/api/src/main/java/com/rappytv/globaltags/util/Util.java @@ -20,6 +20,7 @@ public class Util { NamedTextColor.DARK_GRAY ); private static Component tagResponse = null; + private static Component fontResponse = null; private static Component positionResponse = null; private static Component iconResponse = null; @@ -41,6 +42,7 @@ public static void notify(Component title, Component description) { public static void update(ResultType type, Component component) { switch (type) { case TAG -> tagResponse = component; + case FONT -> fontResponse = component; case POSITION -> positionResponse = component; case ICON -> iconResponse = component; } @@ -51,6 +53,7 @@ public static void update(ResultType type, Component component) { .description(Component.translatable( "globaltags.settings.tags.updateSettings.result", tagResponse, + fontResponse, positionResponse, iconResponse )) @@ -61,6 +64,7 @@ public static void update(ResultType type, Component component) { TagCache.clear(); TagCache.resolveSelf(); tagResponse = null; + fontResponse = null; positionResponse = null; iconResponse = null; }); @@ -68,6 +72,7 @@ public static void update(ResultType type, Component component) { public enum ResultType { TAG, + FONT, POSITION, ICON } diff --git a/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java b/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java index 3f40f6ce..e1680714 100644 --- a/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java +++ b/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java @@ -3,6 +3,7 @@ import com.rappytv.globaltags.api.ApiHandler; import com.rappytv.globaltags.config.widget.TagPreviewWidget; import com.rappytv.globaltags.config.widget.TagPreviewWidget.TagPreviewSetting; +import com.rappytv.globaltags.types.GlobalFont; import com.rappytv.globaltags.types.GlobalIcon; import com.rappytv.globaltags.util.TagCache; import com.rappytv.globaltags.util.Util; @@ -32,6 +33,7 @@ public TagSubConfig() { tag.addChangeListener(runnable); position.addChangeListener(runnable); globalIcon.addChangeListener(runnable); + font.addChangeListener(runnable); } @SpriteSlot(size = 32, x = 1) @@ -43,6 +45,9 @@ public TagSubConfig() { @SpriteSlot(size = 32, y = 1) private final ConfigProperty tag = new ConfigProperty<>(""); + @DropdownSetting + private final ConfigProperty font = new ConfigProperty<>(GlobalFont.VANILLA); + @DropdownSetting @SpriteSlot(size = 32, x = 3) private final ConfigProperty position = new ConfigProperty<>(PositionType.ABOVE_NAME); @@ -74,6 +79,11 @@ else if(info == null) else Util.update(ResultType.TAG, response.getMessage()); }); else Util.update(ResultType.TAG, Util.unchanged); + if(!info.getFont().equals(font.get())) ApiHandler.setFont(font.get(), (response) -> { + if(response.isSuccessful()) Util.update(ResultType.FONT, Component.text("✔", NamedTextColor.GREEN)); + else Util.update(ResultType.FONT, response.getMessage()); + }); + else Util.update(ResultType.FONT, Util.unchanged); if(!info.getPosition().equals(position.get())) ApiHandler.setPosition(position.get(), (response) -> { if(response.isSuccessful()) Util.update(ResultType.POSITION, Component.text("✔", NamedTextColor.GREEN)); else Util.update(ResultType.POSITION, response.getMessage()); @@ -106,10 +116,12 @@ public void resetTag(Setting setting) { public ConfigProperty tag() { return tag; } + public ConfigProperty font() { + return font; + } public ConfigProperty position() { return position; } - public ConfigProperty icon() { return globalIcon; } diff --git a/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java b/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java index 96923974..91c40b55 100644 --- a/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java +++ b/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java @@ -75,10 +75,12 @@ public void initialize(boolean refetched) { } else { if(refetched) { config.tag().set(info.getPlainTag()); + config.font().set(info.getFont()); config.position().set(info.getPosition()); config.icon().set(info.getGlobalIcon()); } boolean updated = !config.tag().get().equals(info.getPlainTag()) + || !config.font().get().equals(info.getFont()) || !config.position().get().equals(info.getPosition()) || !config.icon().get().equals(info.getGlobalIcon()); if(changed && updated) { From bc5d2193e52d7fe2badd8872a9b8b95433e84369 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Mon, 8 Jul 2024 00:22:07 +0200 Subject: [PATCH 06/28] Add new missing translations --- .../src/main/resources/assets/globaltags/i18n/en_us.json | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/main/resources/assets/globaltags/i18n/en_us.json b/core/src/main/resources/assets/globaltags/i18n/en_us.json index 6180d055..d83c32be 100644 --- a/core/src/main/resources/assets/globaltags/i18n/en_us.json +++ b/core/src/main/resources/assets/globaltags/i18n/en_us.json @@ -57,6 +57,13 @@ "tag": { "name": "Global tag" }, + "font": { + "name": "Global font", + "entries": { + "vanilla": "Vanilla", + "fancy": "Fancy" + } + }, "position": { "name": "Global position", "description": "Your tag is visible in this position to everyone.", @@ -94,7 +101,7 @@ "updateSettings": { "name": "Publish settings", "text": "Update", - "result": "Tag: %s\nPosition: %s\nIcon: %s", + "result": "Tag: %s\nFont: %s\nPosition: %s\nIcon: %s", "unchanged": "Unchanged" }, "resetTag": { From 50828370c986a9ff73f399b4bb058c913bdc7c43 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Mon, 8 Jul 2024 00:26:04 +0200 Subject: [PATCH 07/28] Bump version, add version to revisionRegistry --- build.gradle.kts | 2 +- core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java | 1 + .../com/rappytv/globaltags/config/subconfig/TagSubConfig.java | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 5b0a50e6..b443727a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,7 +15,7 @@ labyMod { author = "RappyTV" description = "Get yourself a custom Globaltag that's publicly visible to anyone using this addon." minecraftVersion = "*" - version = System.getenv().getOrDefault("VERSION", "1.2.0") + version = System.getenv().getOrDefault("VERSION", "1.2.1") } minecraft { diff --git a/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java b/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java index 41d978e4..cfbc21b3 100644 --- a/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java +++ b/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java @@ -38,6 +38,7 @@ protected void preConfigurationLoad() { Laby.references().revisionRegistry().register(new SimpleRevision("globaltags", new SemanticVersion("1.1.7"), "2024-02-27")); Laby.references().revisionRegistry().register(new SimpleRevision("globaltags", new SemanticVersion("1.1.9"), "2024-06-01")); Laby.references().revisionRegistry().register(new SimpleRevision("globaltags", new SemanticVersion("1.2.0"), "2024-07-06")); + Laby.references().revisionRegistry().register(new SimpleRevision("globaltags", new SemanticVersion("1.2.1"), "2024-07-08")); } @Override diff --git a/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java b/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java index e1680714..6c16c56a 100644 --- a/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java +++ b/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java @@ -45,6 +45,7 @@ public TagSubConfig() { @SpriteSlot(size = 32, y = 1) private final ConfigProperty tag = new ConfigProperty<>(""); + @IntroducedIn(namespace = "globaltags", value = "1.2.1") @DropdownSetting private final ConfigProperty font = new ConfigProperty<>(GlobalFont.VANILLA); From d4697129ee8da521c51a19b0c17c734369a9907b Mon Sep 17 00:00:00 2001 From: RappyTV Date: Mon, 8 Jul 2024 00:29:01 +0200 Subject: [PATCH 08/28] Update german translations, set indent size to 4 --- .../assets/globaltags/i18n/de_de.json | 315 +++++++++--------- 1 file changed, 161 insertions(+), 154 deletions(-) diff --git a/core/src/main/resources/assets/globaltags/i18n/de_de.json b/core/src/main/resources/assets/globaltags/i18n/de_de.json index d92a0279..730544ea 100644 --- a/core/src/main/resources/assets/globaltags/i18n/de_de.json +++ b/core/src/main/resources/assets/globaltags/i18n/de_de.json @@ -1,162 +1,169 @@ { - "globaltags": { - "settings": { - "name": "Global Tags", - "header": { - "display": { - "name": "Anzeigeeinstellungen" - }, - "tags": { - "name": "Tag-Einstellungen" - } - }, - "enabled": { - "name": "Aktiviert" - }, - "localizedResponses": { - "name": "API-Antworten lokalisieren", - "description": "Wenn diese Option aktiviert ist, sendet das Addon auch deine Minecraft-Sprache an die API. Wenn die Übersetzungen vorhanden sind, erhältst du lokalisierte Antworten. Deine Minecraft-Sprache wird nirgendwo gespeichert." - }, - "joinDiscord": { - "name": "Discord Server", - "text": "Beitreten" - }, - "showOwnTag": { - "name": "Eigenen Tag anzeigen" - }, - "tagSize": { - "name": "Tag Größe" - }, - "showBackground": { - "name": "Hintergrund anzeigen", - "description": "Wenn diese Option aktiviert ist, siehst du den standard Vanilla-Hintergrund hinter den Global Tags." - }, - "tags": { - "name": "Globale Tag-Einstellungen", - "staged": { - "title": "Ausstehende Änderungen", - "description": "Klicke auf den Knopf \"Einstellungen anwenden\", um die ausstehenden Änderungen zu anwenden!" - }, - "tagPreview": { - "name": "Tag-Vorschau", - "banned": "Dein Account wurde gesperrt!\nGrund %s", - "noInfo": "Kontoinformationen konnten nicht abgerufen werden!", - "labyConnect": "Du bist nicht mit LabyConnect verbunden!", - "empty": "", - "emptyReason": "Kein Grund angegeben", - "appeal": { - "name": "Entbannung", - "description": "⚠️ Dieser Button ist nur klickbar, wenn du Entbannungsanträge stellen darfst.", - "popup": { - "label": "Warum sollten wir dich entbannen?", - "placeholder": "Bitte gebe einen Grund an...", - "button": "Antrag senden" + "globaltags": { + "settings": { + "name": "Global Tags", + "header": { + "display": { + "name": "Anzeigeeinstellungen" + }, + "tags": { + "name": "Tag-Einstellungen" + } + }, + "enabled": { + "name": "Aktiviert" + }, + "localizedResponses": { + "name": "API-Antworten lokalisieren", + "description": "Wenn diese Option aktiviert ist, sendet das Addon auch deine Minecraft-Sprache an die API. Wenn die Übersetzungen vorhanden sind, erhältst du lokalisierte Antworten. Deine Minecraft-Sprache wird nirgendwo gespeichert." + }, + "joinDiscord": { + "name": "Discord Server", + "text": "Beitreten" + }, + "showOwnTag": { + "name": "Eigenen Tag anzeigen" + }, + "tagSize": { + "name": "Tag Größe" + }, + "showBackground": { + "name": "Hintergrund anzeigen", + "description": "Wenn diese Option aktiviert ist, siehst du den standard Vanilla-Hintergrund hinter den Global Tags." + }, + "tags": { + "name": "Globale Tag-Einstellungen", + "staged": { + "title": "Ausstehende Änderungen", + "description": "Klicke auf den Knopf \"Einstellungen anwenden\", um die ausstehenden Änderungen zu anwenden!" + }, + "tagPreview": { + "name": "Tag-Vorschau", + "banned": "Dein Account wurde gesperrt!\nGrund %s", + "noInfo": "Kontoinformationen konnten nicht abgerufen werden!", + "labyConnect": "Du bist nicht mit LabyConnect verbunden!", + "empty": "", + "emptyReason": "Kein Grund angegeben", + "appeal": { + "name": "Entbannung", + "description": "⚠️ Dieser Button ist nur klickbar, wenn du Entbannungsanträge stellen darfst.", + "popup": { + "label": "Warum sollten wir dich entbannen?", + "placeholder": "Bitte gebe einen Grund an...", + "button": "Antrag senden" + } + } + }, + "tag": { + "name": "Globaler Tag" + }, + "font": { + "name": "Globale Schriftart", + "entries": { + "vanilla": "Vanilla", + "fancy": "Fancy" + } + }, + "position": { + "name": "Globale Position", + "description": "Dein Tag ist an dieser Position für alle sichtbar.", + "entries": { + "aboveName": "Über dem Namen", + "belowName": "Unten dem Namen", + "rightToName": "Rechts vom Namen", + "leftToName": "Links vom Namen" + } + }, + "globalIcon": { + "name": "Globales Icon", + "entries": { + "none": "Keins", + "discord": "Discord", + "bereal": "BeReal.", + "ebio": "e.bio", + "epicgames": "Epic Games", + "github": "GitHub", + "gitlab": "GitLab", + "instagram": "Instagram", + "kick": "Kick", + "pinterest": "Pinterest", + "playstation": "Playstation", + "snapchat": "Snapchat", + "steam": "Steam", + "threads": "Threads", + "tiktok": "TikTok", + "twitch": "Twitch", + "x": "x", + "xbox": "Xbox", + "youtube": "YouTube" + } + }, + "updateSettings": { + "name": "Einstellungen anwenden", + "text": "Aktualisieren", + "result": "Tag: %s\nSchriftart: %s\nPosition: %s\nIcon: %s", + "unchanged": "Unverändert" + }, + "resetTag": { + "name": "Global Tag löschen", + "text": "Löschen" + } + }, + "clearCache": { + "name": "Cache leeren", + "text": "Leeren", + "description": "Löscht den Tag-Cache manuell.\nDer Cache wird automatisch alle §b5 Minuten§f geleert.\nDu kannst den Cache auch mit §b/gt cc§f löschen." } - } }, - "tag": { - "name": "Global Tag" + "notifications": { + "success": "Erfolg!", + "error": "Es ist ein Fehler aufgetreten", + "cacheCleared": "Der Cache wurde geleert!" }, - "position": { - "name": "Globale Position", - "description": "Dein Tag ist an dieser Position für alle sichtbar.", - "entries": { - "aboveName": "Über dem Namen", - "belowName": "Unten dem Namen", - "rightToName": "Rechts vom Namen", - "leftToName": "Links vom Namen" - } + "messages": { + "clearCache": "Cache leeren", + "hoverClearCache": "Klicke hier, um den Tag-Cache zu leeren!", + "offline": "Verbindung fehlgeschlagen!", + "code": "Der Code wurde in deine Zwischenablage kopiert!" }, - "globalIcon": { - "name": "Globales Icon", - "entries": { - "none": "Keins", - "discord": "Discord", - "bereal": "BeReal.", - "ebio": "e.bio", - "epicgames": "Epic Games", - "github": "GitHub", - "gitlab": "GitLab", - "instagram": "Instagram", - "kick": "Kick", - "pinterest": "Pinterest", - "playstation": "Playstation", - "snapchat": "Snapchat", - "steam": "Steam", - "threads": "Threads", - "tiktok": "TikTok", - "twitch": "Twitch", - "x": "x", - "xbox": "Xbox", - "youtube": "YouTube" - } - }, - "updateSettings": { - "name": "Einstellungen anwenden", - "text": "Aktualisieren", - "result": "Tag: %s\nPosition: %s\nIcon: %s", - "unchanged": "Unverändert" - }, - "resetTag": { - "name": "Global Tag löschen", - "text": "Löschen" + "context": { + "reason": "Grund", + "placeholder": "Bitte gib einen Grund an...", + "report": { + "name": "GlobalTag melden", + "title": "%s melden", + "send": "Meldung senden" + }, + "ban": { + "name": "GlobalTag-Spieler bannen", + "title": "%s bannen", + "send": "Bannen" + }, + "unban": { + "name": "GlobalTag-Spielers entbannen", + "title": "%s entbannen", + "send": "Entbannen" + }, + "editBan": { + "name": "GlobalTag-Ban bearbeiten", + "title": "Bearbeite den Ban von %s", + "send": "Änderungen speichern", + "appealable": "Darf Entbannungsantrag stellen" + }, + "changeTag": { + "name": "GlobalTag ändern", + "title": "Ändere den Tag von %s", + "label": "Neuer GlobalTag", + "placeholder": "Gib den aktualisierten GlobalTag ein...", + "send": "Tag aktualisieren" + }, + "clearTag": { + "name": "GlobalTag löschen" + }, + "admin": { + "set": "GlobalTag Admin machen", + "remove": "GlobalTag Admin entfernen" + } } - }, - "clearCache": { - "name": "Cache leeren", - "text": "Leeren", - "description": "Löscht den Tag-Cache manuell.\nDer Cache wird automatisch alle §b5 Minuten§f geleert.\nDu kannst den Cache auch mit §b/gt cc§f löschen." - } - }, - "notifications": { - "success": "Erfolg!", - "error": "Es ist ein Fehler aufgetreten", - "cacheCleared": "Der Cache wurde geleert!" - }, - "messages": { - "clearCache": "Cache leeren", - "hoverClearCache": "Klicke hier, um den Tag-Cache zu leeren!", - "offline": "Verbindung fehlgeschlagen!", - "code": "Der Code wurde in deine Zwischenablage kopiert!" - }, - "context": { - "reason": "Grund", - "placeholder": "Bitte gib einen Grund an...", - "report": { - "name": "GlobalTag melden", - "title": "%s melden", - "send": "Meldung senden" - }, - "ban": { - "name": "GlobalTag-Spieler bannen", - "title": "%s bannen", - "send": "Bannen" - }, - "unban": { - "name": "GlobalTag-Spielers entbannen", - "title": "%s entbannen", - "send": "Entbannen" - }, - "editBan": { - "name": "GlobalTag-Ban bearbeiten", - "title": "Bearbeite den Ban von %s", - "send": "Änderungen speichern", - "appealable": "Darf Entbannungsantrag stellen" - }, - "changeTag": { - "name": "GlobalTag ändern", - "title": "Ändere den Tag von %s", - "label": "Neuer GlobalTag", - "placeholder": "Gib den aktualisierten GlobalTag ein...", - "send": "Tag aktualisieren" - }, - "clearTag": { - "name": "GlobalTag löschen" - }, - "admin": { - "set": "GlobalTag Admin machen", - "remove": "GlobalTag Admin entfernen" - } } - } } From 969e103a6de036274c290cec2b75ff98faf8cf03 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Mon, 8 Jul 2024 23:16:44 +0200 Subject: [PATCH 09/28] Improve getting font styles, add default and unicode style --- .../rappytv/globaltags/types/GlobalFont.java | 34 ++++++++++++++++++- .../rappytv/globaltags/types/PlayerInfo.java | 18 ++-------- .../config/subconfig/TagSubConfig.java | 12 +++---- .../assets/globaltags/i18n/de_de.json | 2 +- .../assets/globaltags/i18n/en_us.json | 2 +- 5 files changed, 43 insertions(+), 25 deletions(-) diff --git a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java index 079aba49..8a43ceea 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java +++ b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java @@ -1,6 +1,38 @@ package com.rappytv.globaltags.types; +import net.labymod.api.client.component.format.Style; +import net.labymod.api.client.resources.ResourceLocation; +import java.util.HashMap; +import java.util.Map; + public enum GlobalFont { + DEFAULT, VANILLA, - FANCY + FANCY, + UNICODE; + + private static final Map fontStyles = new HashMap<>(); + + public Style getFontStyle() { + if(fontStyles.containsKey(this)) return fontStyles.get(this); + fontStyles.put(this, Style.empty().font(getResourceLocation())); + return getFontStyle(); + } + + private ResourceLocation getResourceLocation() { + return switch (this) { + case VANILLA -> ResourceLocation.create( + "minecraft", + "default" + ); + case UNICODE -> ResourceLocation.create( + "minecraft", + "uniform" + ); + default -> ResourceLocation.create( + "globaltags", + "fonts/" + this.name().toLowerCase() + ); + }; + } } diff --git a/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java b/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java index 2f098f91..f773fcbf 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java +++ b/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java @@ -3,21 +3,15 @@ import com.rappytv.globaltags.api.ResponseBody.Ban; import com.rappytv.globaltags.util.Util; import net.labymod.api.client.component.Component; -import net.labymod.api.client.component.format.Style; import net.labymod.api.client.entity.player.tag.PositionType; import net.labymod.api.client.gui.icon.Icon; -import net.labymod.api.client.resources.ResourceLocation; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.HashMap; -import java.util.Map; import java.util.Objects; import java.util.UUID; public class PlayerInfo { - private static final Map fontStyles = new HashMap<>(); - private final UUID uuid; private final Component tag; private final String plainTag; @@ -30,7 +24,8 @@ public class PlayerInfo { public PlayerInfo(UUID uuid, String tag, String font, String position, String icon, boolean admin, Ban ban) { this.uuid = uuid; this.font = font; - this.tag = Util.translateColorCodes(tag).style(getFontStyle(getFont())); + this.tag = Util.translateColorCodes(tag); + if(getFont() != GlobalFont.DEFAULT) this.tag.style(getFont().getFontStyle()); this.plainTag = tag != null ? tag : ""; this.position = position; this.icon = icon; @@ -38,15 +33,6 @@ public PlayerInfo(UUID uuid, String tag, String font, String position, String ic this.suspension = ban != null ? new Suspension(ban) : new Suspension(); } - private Style getFontStyle(GlobalFont font) { - if(fontStyles.containsKey(font)) return fontStyles.get(font); - fontStyles.put(font, Style.empty().font(ResourceLocation.create( - "globaltags", - "fonts/" + font.name().toLowerCase() - ))); - return getFontStyle(font); - } - /** * Returns the player's uuid */ diff --git a/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java b/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java index 6c16c56a..9bf4a29a 100644 --- a/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java +++ b/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java @@ -31,9 +31,9 @@ public TagSubConfig() { TagPreviewWidget::change ); tag.addChangeListener(runnable); - position.addChangeListener(runnable); - globalIcon.addChangeListener(runnable); font.addChangeListener(runnable); + position.addChangeListener(runnable); + icon.addChangeListener(runnable); } @SpriteSlot(size = 32, x = 1) @@ -47,7 +47,7 @@ public TagSubConfig() { @IntroducedIn(namespace = "globaltags", value = "1.2.1") @DropdownSetting - private final ConfigProperty font = new ConfigProperty<>(GlobalFont.VANILLA); + private final ConfigProperty font = new ConfigProperty<>(GlobalFont.DEFAULT); @DropdownSetting @SpriteSlot(size = 32, x = 3) @@ -55,7 +55,7 @@ public TagSubConfig() { @DropdownSetting @SpriteSlot(size = 32, y = 1, x = 2) - private final ConfigProperty globalIcon = new ConfigProperty<>(GlobalIcon.NONE); + private final ConfigProperty icon = new ConfigProperty<>(GlobalIcon.NONE); @MethodOrder(after = "globalIcon") @ButtonSetting @@ -90,7 +90,7 @@ else if(info == null) else Util.update(ResultType.POSITION, response.getMessage()); }); else Util.update(ResultType.POSITION, Util.unchanged); - if(!info.getGlobalIcon().equals(globalIcon.get())) ApiHandler.setIcon(globalIcon.get(), (response) -> { + if(!info.getGlobalIcon().equals(icon.get())) ApiHandler.setIcon(icon.get(), (response) -> { if(response.isSuccessful()) Util.update(ResultType.ICON, Component.text("✔", NamedTextColor.GREEN)); else Util.update(ResultType.ICON, response.getMessage()); }); @@ -124,6 +124,6 @@ public ConfigProperty position() { return position; } public ConfigProperty icon() { - return globalIcon; + return icon; } } diff --git a/core/src/main/resources/assets/globaltags/i18n/de_de.json b/core/src/main/resources/assets/globaltags/i18n/de_de.json index 5c7a692e..9a19e849 100644 --- a/core/src/main/resources/assets/globaltags/i18n/de_de.json +++ b/core/src/main/resources/assets/globaltags/i18n/de_de.json @@ -74,7 +74,7 @@ "leftToName": "Links vom Namen" } }, - "globalIcon": { + "icon": { "name": "Globales Icon", "entries": { "none": "Keins", diff --git a/core/src/main/resources/assets/globaltags/i18n/en_us.json b/core/src/main/resources/assets/globaltags/i18n/en_us.json index d83c32be..552aea7d 100644 --- a/core/src/main/resources/assets/globaltags/i18n/en_us.json +++ b/core/src/main/resources/assets/globaltags/i18n/en_us.json @@ -74,7 +74,7 @@ "leftToName": "Left to name" } }, - "globalIcon": { + "icon": { "name": "Global icon", "entries": { "none": "None", From 47a7bba0e480407d8842aa194e80d770b61ba55d Mon Sep 17 00:00:00 2001 From: RappyTV Date: Mon, 8 Jul 2024 23:44:32 +0200 Subject: [PATCH 10/28] Improve getting font styles, add default and unicode style --- api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java index 8a43ceea..6578f4d3 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java +++ b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java @@ -31,7 +31,7 @@ private ResourceLocation getResourceLocation() { ); default -> ResourceLocation.create( "globaltags", - "fonts/" + this.name().toLowerCase() + this.name().toLowerCase() ); }; } From 88a46cddf3e9c5a4b847b03db62b0c0d4030a6af Mon Sep 17 00:00:00 2001 From: RappyTV Date: Tue, 9 Jul 2024 00:01:34 +0200 Subject: [PATCH 11/28] Improve getting font styles, add default and unicode style --- .../rappytv/globaltags/types/GlobalFont.java | 21 ++++++++----------- .../rappytv/globaltags/types/PlayerInfo.java | 5 ++--- .../com/rappytv/globaltags/util/Util.java | 12 +++++++---- .../config/widget/TagPreviewWidget.java | 2 +- .../assets/globaltags/i18n/de_de.json | 4 +++- .../assets/globaltags/i18n/en_us.json | 4 +++- 6 files changed, 26 insertions(+), 22 deletions(-) diff --git a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java index 6578f4d3..0d7282eb 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java +++ b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java @@ -1,30 +1,27 @@ package com.rappytv.globaltags.types; -import net.labymod.api.client.component.format.Style; import net.labymod.api.client.resources.ResourceLocation; +import org.jetbrains.annotations.Nullable; import java.util.HashMap; import java.util.Map; public enum GlobalFont { DEFAULT, - VANILLA, - FANCY, UNICODE; - private static final Map fontStyles = new HashMap<>(); + private static final Map locations = new HashMap<>(); - public Style getFontStyle() { - if(fontStyles.containsKey(this)) return fontStyles.get(this); - fontStyles.put(this, Style.empty().font(getResourceLocation())); - return getFontStyle(); + @Nullable + public ResourceLocation getCachedLocation() { + if(locations.containsKey(this)) return locations.get(this); + locations.put(this, getResourceLocation()); + return getCachedLocation(); } + @Nullable private ResourceLocation getResourceLocation() { return switch (this) { - case VANILLA -> ResourceLocation.create( - "minecraft", - "default" - ); + case DEFAULT -> null; case UNICODE -> ResourceLocation.create( "minecraft", "uniform" diff --git a/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java b/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java index f773fcbf..4c6b90fe 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java +++ b/api/src/main/java/com/rappytv/globaltags/types/PlayerInfo.java @@ -24,8 +24,7 @@ public class PlayerInfo { public PlayerInfo(UUID uuid, String tag, String font, String position, String icon, boolean admin, Ban ban) { this.uuid = uuid; this.font = font; - this.tag = Util.translateColorCodes(tag); - if(getFont() != GlobalFont.DEFAULT) this.tag.style(getFont().getFontStyle()); + this.tag = Util.formatTag(tag, getFont()); this.plainTag = tag != null ? tag : ""; this.position = position; this.icon = icon; @@ -65,7 +64,7 @@ public GlobalFont getFont() { try { return GlobalFont.valueOf(font); } catch (Exception ignored) { - return GlobalFont.VANILLA; + return GlobalFont.DEFAULT; } } diff --git a/api/src/main/java/com/rappytv/globaltags/util/Util.java b/api/src/main/java/com/rappytv/globaltags/util/Util.java index 216b8e76..03287090 100644 --- a/api/src/main/java/com/rappytv/globaltags/util/Util.java +++ b/api/src/main/java/com/rappytv/globaltags/util/Util.java @@ -1,5 +1,6 @@ package com.rappytv.globaltags.util; +import com.rappytv.globaltags.types.GlobalFont; import net.labymod.api.Laby; import net.labymod.api.client.component.Component; import net.labymod.api.client.component.format.NamedTextColor; @@ -78,11 +79,14 @@ public enum ResultType { } @NotNull - public static Component translateColorCodes(String string) { - if(string == null) string = ""; - return LegacyComponentSerializer + public static Component formatTag(String tag, GlobalFont font) { + if(tag == null) tag = ""; + Component component = LegacyComponentSerializer .legacyAmpersand() - .deserialize(string); + .deserialize(tag); + if(font.getCachedLocation() != null) + component.style(component.style().font(font.getCachedLocation())); + return component; } public static @Nullable String getSessionToken() { diff --git a/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java b/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java index 91c40b55..0f8faf76 100644 --- a/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java +++ b/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java @@ -95,7 +95,7 @@ public void initialize(boolean refetched) { "globaltags.settings.tags.tagPreview.empty", NamedTextColor.RED ) - : Util.translateColorCodes(config.tag().get()) + : Util.formatTag(config.tag().get(), config.font().get()) ).addId("text"); if (config.icon().get() != GlobalIcon.NONE) this.addEntryInitialized(new IconWidget(config.icon().get().getIcon()).addId("icon")); diff --git a/core/src/main/resources/assets/globaltags/i18n/de_de.json b/core/src/main/resources/assets/globaltags/i18n/de_de.json index 9a19e849..e2d04dff 100644 --- a/core/src/main/resources/assets/globaltags/i18n/de_de.json +++ b/core/src/main/resources/assets/globaltags/i18n/de_de.json @@ -60,8 +60,10 @@ "font": { "name": "Globale Schriftart", "entries": { + "default": "Zum theme passend", "vanilla": "Vanilla", - "fancy": "Fancy" + "fancy": "Fancy", + "unicode": "Unicode" } }, "position": { diff --git a/core/src/main/resources/assets/globaltags/i18n/en_us.json b/core/src/main/resources/assets/globaltags/i18n/en_us.json index 552aea7d..cc572302 100644 --- a/core/src/main/resources/assets/globaltags/i18n/en_us.json +++ b/core/src/main/resources/assets/globaltags/i18n/en_us.json @@ -60,8 +60,10 @@ "font": { "name": "Global font", "entries": { + "default": "Matching theme", "vanilla": "Vanilla", - "fancy": "Fancy" + "fancy": "Fancy", + "unicode": "Unicode" } }, "position": { From 405a5fceb92db564214b3439f0f63beacf174314 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Tue, 9 Jul 2024 00:23:57 +0200 Subject: [PATCH 12/28] Improve getting font styles, add default and unicode style --- .../java/com/rappytv/globaltags/types/GlobalFont.java | 11 +++++++---- .../main/java/com/rappytv/globaltags/util/Util.java | 4 +--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java index 0d7282eb..862f2e61 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java +++ b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java @@ -1,7 +1,7 @@ package com.rappytv.globaltags.types; import net.labymod.api.client.resources.ResourceLocation; -import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.NotNull; import java.util.HashMap; import java.util.Map; @@ -11,17 +11,20 @@ public enum GlobalFont { private static final Map locations = new HashMap<>(); - @Nullable + @NotNull public ResourceLocation getCachedLocation() { if(locations.containsKey(this)) return locations.get(this); locations.put(this, getResourceLocation()); return getCachedLocation(); } - @Nullable + @NotNull private ResourceLocation getResourceLocation() { return switch (this) { - case DEFAULT -> null; + case DEFAULT -> ResourceLocation.create( + "minecraft", + "default" + ); case UNICODE -> ResourceLocation.create( "minecraft", "uniform" diff --git a/api/src/main/java/com/rappytv/globaltags/util/Util.java b/api/src/main/java/com/rappytv/globaltags/util/Util.java index 03287090..28f88a3d 100644 --- a/api/src/main/java/com/rappytv/globaltags/util/Util.java +++ b/api/src/main/java/com/rappytv/globaltags/util/Util.java @@ -84,9 +84,7 @@ public static Component formatTag(String tag, GlobalFont font) { Component component = LegacyComponentSerializer .legacyAmpersand() .deserialize(tag); - if(font.getCachedLocation() != null) - component.style(component.style().font(font.getCachedLocation())); - return component; + return component.style(component.style().font(font.getCachedLocation())); } public static @Nullable String getSessionToken() { From 725190d535449b8295ea85a9803cc43a9ee5a78a Mon Sep 17 00:00:00 2001 From: RappyTV Date: Tue, 9 Jul 2024 00:25:19 +0200 Subject: [PATCH 13/28] Add dark souls font --- .../rappytv/globaltags/types/GlobalFont.java | 3 ++- .../com/rappytv/globaltags/GlobalTagAddon.java | 13 +++++++++++++ .../assets/globaltags/font/dark_souls.json | 14 ++++++++++++++ .../assets/globaltags/font/dark_souls.ttf | Bin 0 -> 45032 bytes .../resources/assets/globaltags/i18n/de_de.json | 5 ++--- .../resources/assets/globaltags/i18n/en_us.json | 5 ++--- 6 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 core/src/main/resources/assets/globaltags/font/dark_souls.json create mode 100644 core/src/main/resources/assets/globaltags/font/dark_souls.ttf diff --git a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java index 862f2e61..9ac848e6 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java +++ b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java @@ -7,7 +7,8 @@ public enum GlobalFont { DEFAULT, - UNICODE; + UNICODE, + DARK_SOULS; private static final Map locations = new HashMap<>(); diff --git a/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java b/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java index cfbc21b3..58249042 100644 --- a/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java +++ b/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java @@ -11,11 +11,14 @@ import com.rappytv.globaltags.interaction.ToggleAdminBulletPoint; import com.rappytv.globaltags.listener.ServerNavigationListener; import com.rappytv.globaltags.nametag.CustomTag; +import com.rappytv.globaltags.types.GlobalFont; import com.rappytv.globaltags.util.TagCache; import net.labymod.api.Laby; import net.labymod.api.addon.LabyAddon; +import net.labymod.api.client.chat.command.Command; import net.labymod.api.client.component.Component; import net.labymod.api.client.component.format.NamedTextColor; +import net.labymod.api.client.component.format.Style; import net.labymod.api.client.component.format.TextDecoration; import net.labymod.api.client.entity.player.tag.PositionType; import net.labymod.api.client.entity.player.tag.TagRegistry; @@ -63,6 +66,16 @@ protected void enable() { labyAPI().interactionMenuRegistry().register(new ToggleBanBulletPoint()); registerCommand(new GlobalTagCommand()); + registerCommand(new Command("test") { + @Override + public boolean execute(String prefix, String[] arguments) { + Component component = Component.text("lol") + .style(Style.empty().font(GlobalFont.DARK_SOULS.getCachedLocation())); + displayMessage(component); + return true; + } + }); + // Clear cache every 5 minutes new Timer().scheduleAtFixedRate(new TimerTask() { @Override diff --git a/core/src/main/resources/assets/globaltags/font/dark_souls.json b/core/src/main/resources/assets/globaltags/font/dark_souls.json new file mode 100644 index 00000000..406e5f08 --- /dev/null +++ b/core/src/main/resources/assets/globaltags/font/dark_souls.json @@ -0,0 +1,14 @@ +{ + "providers": [ + { + "type": "ttf", + "file": "globaltags:dark_souls.ttf", + "shift": [ + 0, + 0.4 + ], + "size": 11.0, + "oversample": 11.0 + } + ] +} diff --git a/core/src/main/resources/assets/globaltags/font/dark_souls.ttf b/core/src/main/resources/assets/globaltags/font/dark_souls.ttf new file mode 100644 index 0000000000000000000000000000000000000000..dcf331aba4a2eb095fccb36242495e0a790a860d GIT binary patch literal 45032 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 Date: Tue, 9 Jul 2024 00:46:49 +0200 Subject: [PATCH 14/28] Remove test command --- .../java/com/rappytv/globaltags/GlobalTagAddon.java | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java b/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java index 58249042..cfbc21b3 100644 --- a/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java +++ b/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java @@ -11,14 +11,11 @@ import com.rappytv.globaltags.interaction.ToggleAdminBulletPoint; import com.rappytv.globaltags.listener.ServerNavigationListener; import com.rappytv.globaltags.nametag.CustomTag; -import com.rappytv.globaltags.types.GlobalFont; import com.rappytv.globaltags.util.TagCache; import net.labymod.api.Laby; import net.labymod.api.addon.LabyAddon; -import net.labymod.api.client.chat.command.Command; import net.labymod.api.client.component.Component; import net.labymod.api.client.component.format.NamedTextColor; -import net.labymod.api.client.component.format.Style; import net.labymod.api.client.component.format.TextDecoration; import net.labymod.api.client.entity.player.tag.PositionType; import net.labymod.api.client.entity.player.tag.TagRegistry; @@ -66,16 +63,6 @@ protected void enable() { labyAPI().interactionMenuRegistry().register(new ToggleBanBulletPoint()); registerCommand(new GlobalTagCommand()); - registerCommand(new Command("test") { - @Override - public boolean execute(String prefix, String[] arguments) { - Component component = Component.text("lol") - .style(Style.empty().font(GlobalFont.DARK_SOULS.getCachedLocation())); - displayMessage(component); - return true; - } - }); - // Clear cache every 5 minutes new Timer().scheduleAtFixedRate(new TimerTask() { @Override From 782a4f710f42d2fcf954cd581ba31b4ca04bdf18 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Tue, 9 Jul 2024 00:50:43 +0200 Subject: [PATCH 15/28] Add Alagard, Glacial Indifference and Super RPG font --- .../rappytv/globaltags/types/GlobalFont.java | 14 +++++++------- .../java/com/rappytv/globaltags/util/Util.java | 4 +++- .../assets/globaltags/font/alagard.json | 14 ++++++++++++++ .../assets/globaltags/font/alagard.ttf | Bin 0 -> 13544 bytes .../globaltags/font/glacial_indifference.json | 15 +++++++++++++++ .../globaltags/font/glacial_indifference.ttf | Bin 0 -> 31592 bytes .../assets/globaltags/font/super_rpg.json | 14 ++++++++++++++ .../assets/globaltags/font/super_rpg.ttf | Bin 0 -> 39112 bytes .../resources/assets/globaltags/i18n/de_de.json | 3 +++ .../resources/assets/globaltags/i18n/en_us.json | 3 +++ 10 files changed, 59 insertions(+), 8 deletions(-) create mode 100644 core/src/main/resources/assets/globaltags/font/alagard.json create mode 100644 core/src/main/resources/assets/globaltags/font/alagard.ttf create mode 100644 core/src/main/resources/assets/globaltags/font/glacial_indifference.json create mode 100644 core/src/main/resources/assets/globaltags/font/glacial_indifference.ttf create mode 100644 core/src/main/resources/assets/globaltags/font/super_rpg.json create mode 100644 core/src/main/resources/assets/globaltags/font/super_rpg.ttf diff --git a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java index 9ac848e6..dfbe6416 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java +++ b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java @@ -1,31 +1,31 @@ package com.rappytv.globaltags.types; import net.labymod.api.client.resources.ResourceLocation; -import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.HashMap; import java.util.Map; public enum GlobalFont { DEFAULT, UNICODE, + ALAGARD, + GLACIAL_INDIFFERENCE, + SUPER_RPG, DARK_SOULS; private static final Map locations = new HashMap<>(); - @NotNull + @Nullable public ResourceLocation getCachedLocation() { if(locations.containsKey(this)) return locations.get(this); locations.put(this, getResourceLocation()); return getCachedLocation(); } - @NotNull + @Nullable private ResourceLocation getResourceLocation() { return switch (this) { - case DEFAULT -> ResourceLocation.create( - "minecraft", - "default" - ); + case DEFAULT -> null; case UNICODE -> ResourceLocation.create( "minecraft", "uniform" diff --git a/api/src/main/java/com/rappytv/globaltags/util/Util.java b/api/src/main/java/com/rappytv/globaltags/util/Util.java index 28f88a3d..03287090 100644 --- a/api/src/main/java/com/rappytv/globaltags/util/Util.java +++ b/api/src/main/java/com/rappytv/globaltags/util/Util.java @@ -84,7 +84,9 @@ public static Component formatTag(String tag, GlobalFont font) { Component component = LegacyComponentSerializer .legacyAmpersand() .deserialize(tag); - return component.style(component.style().font(font.getCachedLocation())); + if(font.getCachedLocation() != null) + component.style(component.style().font(font.getCachedLocation())); + return component; } public static @Nullable String getSessionToken() { diff --git a/core/src/main/resources/assets/globaltags/font/alagard.json b/core/src/main/resources/assets/globaltags/font/alagard.json new file mode 100644 index 00000000..26aba112 --- /dev/null +++ b/core/src/main/resources/assets/globaltags/font/alagard.json @@ -0,0 +1,14 @@ +{ + "providers": [ + { + "type": "ttf", + "file": "globaltags:alagard.ttf", + "shift": [ + 0, + 0.8 + ], + "size": 11.0, + "oversample": 10.0 + } + ] +} diff --git a/core/src/main/resources/assets/globaltags/font/alagard.ttf b/core/src/main/resources/assets/globaltags/font/alagard.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c7ed1d91950f994bd6c71efba69332a0459d26e4 GIT binary patch literal 13544 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 literal 0 HcmV?d00001 diff --git a/core/src/main/resources/assets/globaltags/font/glacial_indifference.json b/core/src/main/resources/assets/globaltags/font/glacial_indifference.json new file mode 100644 index 00000000..b741748c --- /dev/null +++ b/core/src/main/resources/assets/globaltags/font/glacial_indifference.json @@ -0,0 +1,15 @@ +{ + "providers": [ + { + "type": "ttf", + "file": "globaltags:glacial_indifference.ttf", + "shift": [ + 0, + 0.5 + ], + "size": 12.0, + "oversample": 6.0, + "skip": "" + } + ] +} diff --git a/core/src/main/resources/assets/globaltags/font/glacial_indifference.ttf b/core/src/main/resources/assets/globaltags/font/glacial_indifference.ttf new file mode 100644 index 0000000000000000000000000000000000000000..f828594b7c649948a49c4b18cc1438cd4a60659d GIT binary patch literal 31592 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%0AwpCr8 z|MbmSVReYLf5LhqlK7aQdsR5vIKT5cJ?84~{1MGGJugq#sKT<~2R;QXgNWPk1O`7C zpTa9-=;MWZ;Mo&n;itU6;BWEY(keMLw<}_X9Po9L36hPht ze_{m=yTQ_FaoKeIC4GMYR-TO_DiG1i0!HYJgfTjREkRuVq=CS3)2XWxgjp$c_eCA`!3ps)2 z6Oc@1$rN^ChWz-Nk&!jGlsv}UUOjRAwbzaheb4+*$|fc6>eE+$ZFkCvpS{M_*ADKq zluO@4^Xrgw!r>BjGm>Zvf9n4GFOH2}6d^}Y;6cQZw6Y86kGN|=&kJK?xIjDdLB0>C zanSaP#fB;Xq0~CR%98A!U6e9I89R8OqSTOnLrl_~+3EaV&-x=*MLt`h!&HVb7FtBH z4mrFff|~*Qt+SrL^O#q7x#xA|l;?H4pZ1)dpj+@4ItX&(EJ?LvpMltmhd>M33`YPD z(Im?p$>}e_GLu^jM;>ZFc=BNTL)Slb%h9L!o1P*%0NKpn(dH(20Xbxu4Ma&ooJHvv z`(O-z{FDcJ;Mu@2UFZenmcM~4gkG@9JkqNQ78|BQ*Hoo>-+lY`-G_kX`S0`Rc{&fH z%l&+NKR(Sdy~H;6VofMstmrdz;sI{(VltQKIMkEQ>}`P4=jX z8qOar-`Y+vNgphrD~6(~A6>>2bACb)Y3rB&_=N}B{HW{P9sA{2}q>{3}0TnS}aWN+~K+_)*d)JS1w?|96>D0Gs)Nn;VS z6f!UPkSue)5pmA~=^B)=XHT4X_M?yF>qoqccYXAcZWo|SxlPiS6({@0al_xwoIH8v z?+9=`AAab$*Yg8uLy72{gTCNZZc-KnJ+35r7@y_&f?x8y4;Q5#8owy})_QYz0rF(@ zO@SkW!I^)${o{|fyZa5V^nq5tJURjEz>vfIz)i|0ltq(2&f&4z*eW;~I<{^5_}Bf) z-}^3M;YfYL`4XiRv|!Gf!78Pft^Cqe%ILXBoal_Yy2A=Ar|8h78|2L*t~q7V#g0{$v#THG74(sS@#l@`;oxe*2;g zixzG8#aL2T>6UA*+0s+_-3|5i8|wK=&x$H__D$bEytIm7)k1%ki}?UnJgsm6&p?ig z!i=aWChUCP)AEp|>lgytT2Uv|)BeOZWBN)*BpcD#HH6Ty^@Uo@?B6 zb5#zE$7^#%^;+^R4fL5<7IC$*)PN9b3{4D6$`Yw@0Ie_mn-Z0fpH?_Ggs>Xsf$pYgR>!7b4G$*bYblFoxOL3j)m9cme*-Q-#%DhQe0nOT=I)*&kDz}-mQ5h zE9W+9@G26 zo>71D&xsQNU}AOpZG_ZzkqTB;j=#abC&qezhn*N2n@F58R>4;-4z1;Sm<2EqJ+kvs zlT(Z{!ov&-zkl7joH>;%D)INp@mPZ~Y({vjF~Pw9!;`o9YQstmgEl9n1am_CC68~3 ztFge{BmN%!{tFk*{`kk3!>lJR{8q?`yzB+^^^5Qt+s0Q`y2Do$JSz&MCNf@w0U+@_x;~SG{!As*z2feYS4N1g`-znAZd|c?w?B zc&W30Rnk$nH(@O$BM-teOe;a-5v^us*OZkz=9bN~-+JurU7FP~e_H(hJ% zyZWkr+qJ^Z!<6N~FMNi-oeKgkW9Q?~D`%=TGxyWcVE+?0p_5_gUAOl1oeyrZy1O@vF$tcJ@qUr3bkNw3;7H@KuZ4MtC`$Q{(OeVu z`1=}jZD?mYG7my#?` z6XbyWl)nkO5K9qv6Of}AkcgK5?hXF^H%3Q!lgsl0Ll;)+Rk=m^BP#~X>_xmXziKhZ z8;Yp#jfF~dXa-L-!mtukk}VZANwm6q_bN+f($zC&nIl4z!eT-qln`EC9uXQDJd=-7(3G5#1l3IZdc?xGS<#W9rr2n+vW$l) zCPQp!a%hBk){Lu@GA$Pseo|3FN?(l1h&3w>m5)V4M;b#6{FuW3j$|blL~hIKRTj;kn_g47 zab8hcb;UZc6n0o?n880VJP)~Ib;$kd2)Taee1Tq2@O-JC8G1F3DVOP$;OfFpPtTs^(PurM7cc5sR2Zig z&)jv}u30529ut_L!zdyIGHx!C^~$^ib3V#x+JZWH3i7xsJ3C=!`u>eeQdjIOZ(RI* z5Lx`aw&d&-&qs$2@s8TUx%q8@)R1rER(`u!hrp8KD^S{iyUm+$wkO7NT5}Bd?Am$X zPX2UP&fK{0*Wc%jVIZ!o)R>k zc<47?nFV&n2Lm`W-ZKHgN5c={Pb0_|W9x`qogWx}^1#rlRYM0(1VZ}Z`8)17Ki)6} ztbSNmx`;Ct3X`Q&cS$mng~4^9cy91bk-xBM>AZ~c!sMi+wRQ6{stTgQBcsD(12I|a zT4&BwW9My1OH;xV#-H><3Eh`Gpmmat)z6j#?Aj0Q*LB18nK+*th*i(Rbc-K<+aIqk zyMwT}*8H>?n(J$@iCFT4h#uHJLCH-oFGV6=yykhlbd(Bj{9jRLI?~c| z=n&Q3sMy4hdp?4Vn7szTcuMSvVW|#4oiX8jNB58+sv4)GmDEgeCZmo1vCVDqDzkjlm+3>MO{$vI#RA>Q_Om0 zPOlFB2omB-V1A)2obCXxR@ z)Ao=cu+rr>1q0UM_9H5)Vy85K%ao}}#~(~P|8Jl7PoJNsyZ@dbv>MmVb;U9OoCzWz zMB}^Em)XJ+r?I|CQ+;#_)qF4rf3TX4|0;+8$O`#7E8~ax&9r8y$*)P#x5OWCFL3LB z@3#FS! zY#Ft-&tKDull|RQJi#)*ZQq8fg>C!HA@f?cySF^By|ry#n{^Z?YaZk==6!AR9J%}3 z7FdK$h#IKSQ&a)T$EE~VLJvYsU+@(}p`nezM4#z!UgPtQzT7x@5(Rez zq{p88sYpSdOtA^uT_UDRYNoLW-A4vJ<4zJ1=Zy54d8=FI=hf!4J~xSyxyYS!(iT0}P*t-mV_t4m!}!aSNincF zc*^<;{u1b@X3LOOn?V2;>v?60aKx1V!U6*d-r6%`)io$imnv}1p|Ug{tr)rOT6N(v zOQhk+z3T48{fnChQ2O>OhF`U!?Rdkw%A$7@GP7cn3i&cwG*6$CFoVC8sLn5+IeT|` zSw(H_=#G$tP+2E$ZeF>(tS#OUH#0Uo#Uje+ajB^hS}srf2iTYp&x}x*1yz^H>WQmb zR!@5iF@;&Qxez(L=_|7OZG-;%4jJWnvoo5uhfSB&Um11H2H&29wBt14AEGJFQN%G` zW;bCFj-vc4cNE|?E={|qFbSvd!k59x--i>q|8hvrc-BmdR`Z2v3i*{dkqb$`Vz?aY z9_e5Tz8bsmHXf-1Q*EVacAlo$c{ZC5&6vi{FSnn=S4<9s*L^j4lZ^krrsI@YZ?Lz7 zPWY`~Dj{{OUm)7?KchxU`FkB^(5m+%DbhNJw?a}8qT`wIrRb@6&!blO ztX~xAtFsBP!TTio_i22(%=+co$&BDwzf5e@Oq2-ZhK<}e>q87T(tgdv9-Lkdr^2|e z@UQK~ExP~yvD(^6n~(Q(9y``K{+YHZr>|!s6pASYm_b0M4Xc)kc7p%rl-RG}PfQg| z+I?kqB`A#SmOEH-S4GB4?5k)tj2#8BGN0IO^WR9;&e+z5hne<$t zT+cu&wdD+of%!E=MZPf^OC7PQSz)eSeCy8j%j(Tb79Mk~TRK)#7V(YLdH1B{RnJv% zZ=3Dfk~;H}B^&#$E?7}NH#7CF*m>Vbs4vGhmO{@&@xKV26uEMW*)VA*X#=$Jw4a(o z6`u^)QJMsYG!W0a2JJ}k*P(r$_W~fD8Ta^u(&-_cqx!Js`6q*FliKzjKVVYTF8YH5 zKjr+SY{}ZEk?iDI^NEKmeFe@4KXj8sdTRh?@I>xu3Eol#p4KoEJ6rro@S=WVdkf}$ z=2D|?kBgp>z}~6wfB(cY664PsemC)qgh8W2@_;Hh)9@g{N1b`HyT0HfHhAine&wSa z;3?j)w-6#w@V6k+yfrpP@j|T2469*hM%rD-jf3)HQzta3NTGe6g$Df*zn4nZIR@79 zXTCT#kDd#hckBz)VGr|@!>8TKp_jP&l6>xu{L^0yc#0koqCnJQr^zw34RkHT42$7n ze}(pwsxjOzv)tX(Xm=dHb*H^)h0}h-^XNpRen@O}*OdL&L_)b}A?+Sq{2!kpEQ~Ow6IF&b5{uZzYsorA#-GxzriCd|A}=Aix)OQdo6J*t14HntgPY% z{VSVyHj_N@c?jig@p*_8^2z?S*?d1+@;_JR=pvoi0G&9|A4Qfqk41lOnd(Y-#sDvm z!$ySdaLav%dF)|a3O+DCU->I8W{6(2$%H@gWM-)LsGjoIjm1svD~dL**xu5z-4nUS z&a?Uaar|(n$IE%M=T|(hxfyt3Ajhdc{}D!?(KIYkJ`;Fmu`)atO^=hr(Q^(}qWqD` z6N`9uJzvI|j6BR3 z8M!Yz+l8w*9v1KUbyU>Xqawc^%DEwu#+mr6pZ?VI{!jU5avUB<#ZNqYm$YB}EM$AN zbK$a-wgS&dQj`YWEVtY$7}|{YTq>2I-6_Q z?i^GFNx|&;2c|MT(q%w4#P$KP9iQs$hbGW2Ll5Gnici2353BH$%s;LND)M#GsR8^B z`RT_}KquWIT`2{8C$5UI*FTCDH}I;g1JfTCEZ8HoO=XRO5kyg|fJizU$nWX3yA-fZ ztP7B(miu6J0_qOn92J`EvjYcul3ff6DtduyL|6_9g)F2W_f*yiduqXZ8)ip+{i$pT zfIwWEN~9!Kf64;!>Q+e{8Uj4BJC$|g-GP=-Aq%UZOYccmK8$BFod>YP)Vvt(sH7;5BJ+JzD4lW1S$Xj_%-?Q zznwKeFKA9}c<;hl3uLoQw07ckI_^sitq|WO&3lij+W)^9npit* zp#hRw4PVrPGpQ}4eSMIHl(+7mb-ld2K9XHa36gD-mnVpBp*h2Nx5FYwAa5(q>CUK- zJGoWTA&Lzq@k-W7x;TXXWC3KKGFFhzIs}AnF_s|Np_2q{2U=ub@(NCT%-;rWBRwNK z(Ww{#)FCmJpz3q;jV1lG2@0i?G~tTk8fhrO(kY?%r^hq0YML)aK^4^5an^^Kl3yVD z=&tlfH2*=gP%HT&qD&trDU`JD!F}Qf-KCikP4bFxm_Uv08|WVSLYu}-imQa5xJ#a? z2d_Tf5dGvMNe{{5RnX9nYl2U->$H%hbV}qM33EvFbpyT(B!poI^!R*$Q{yRx8J~wF zOj0ul2T71T4N;>@Akaq_PM(Eh67YT1*tueL1HAw38l_b`mdC z5i3Z?eKRA9iL*WEC+DGK92Ag92Z&bkx;{;pcC!mmX*}s6$y;)VW<@$ezFG2!GA_E; zi(kF%tGOXLR)$$oT=LD%CuQnEGo^chkxthdslUV%;s#MKwTng(ul?h&3DBet6Q6^* ztIJ#G?&Wym<8+`7$yup_3&A`kPExEQt+WY=x%_ym%UN=ms3-1{R!HsfkK#IKe0D$_ z*eC2&_Z@+{?xR;qWj7>f7d-NLKk0u0=Og_EQ6sY+(gA-;i0?8p3B*SnaAFkkTAvxd zkOjY_{U%T=BfYMHPH5N&aOj@c=OOjkQxunat6Q^A!)eaG?1ttwodl$}SdM7ah$!2N zqYDQ`-cC@JjaJ>icjC-n>#_lp_#jswK7XN8Lvr%PkR70w5ofrTzX_$5lMbZZ!-*-PX7|*|7;!21|ry(o%{(!Fk(sbnE(~XB{%1&=*fK zBbi<+^_WlD2E|LtO{9MthCWk_BD#Yk(dG0{okIWgd9DVgz}OeKI+$*rx_qYgtfX^v zNB6&UMObu;cM4BQJxHr5O3@wir+WMtfey+{h@!RLgR*2=$x(k5+CcUot(1I(Y^5BA ztc|eC-a4(4`~DK5j3toM{(VgFBwwus(pD%wk=+p$tDd4Bf|4Lsx(`=!Ev>hc9T5j8Po><#0ZERc7iF!|7NuPMBOGO;l<^VmGV`PuLUu!1AFShY z_PXq*=aZa0t-?C6QfWpUptUhY1Qp+sK;D_omj^|Pc0tPk=p7b(kTgmENs=L-FC{1E zP85>=A^H0!ZG;KQcy;B|8LUeYDR*%RUtECTH4`D(Xvq z&fofcH4Iu`(;Z)Rgm6=|>z-J#>9f~4Mb@XU8FVX?xHAu81KKzkaUr(c4$$$Ld^W1$2pzMs3sLCv*1-^@Ty~aO(PAHn)c7EFGyFuYK1{r z71^xM>SV@1HZCobB&q8H)v%l*+xPXC@{(0bnH`fCB>wC6L8GNN3CycY(WeXdNc*Y3 z|GF$VVZhLd5uK!GC3u%BP=ZAsYA;@cbGv@n4Qa_B`jcOy*zBv!5iK%ylW&%p zxUQK#9#G~_QHNfsqEEP_e2J5!$F?be?AjeX*}h-1ea`;;;YOr19L0sTk(yopvJ^3n%AJX zbvf(&XY52`^XXm(X!2hJ`+LY%%z?P;zq*hs7UB$P0z+ zq&AXn>lz|+3G&jCJ5p0jLT@E6^++BZKXgg!6{$)gYiX-KcsjQOl9o%6m}F1hku-o-b7b*k z$8<)V>J@&DGHj9$-65|*>;21VyM($|ctNV$>$u6&?g9*|nUHq&iY&=DLm8p{vp=Z= zQ}N^S+NF>3_rf%bsX0w^*8Pu8k*qyj&U#3nCR>m65mf?EOvrY8t6M3F zsWK<(FTLdDRzZ|mPz{-~K|L=ZEK{u{NfSugWQo!n{v%ZiqDAMi50k$ZPQP~bhcC5@ z^iOI$No2ZsDc3Xqle(A8FUUJczWHM&d{f2eudaLfwE7>bdzpk32s^D0gROe9PDl;v znpn%ULUZ-{)>rM-k=@H2lYAU`E80PE_(^FGcudt+(joFNKF<65o8VkW=CZn9CdlMz zsXDF8TE=%tH?6Tc5dm62bu&B$t;mS#6*%+XAL~TM+lcn{=tnzDw0qi#SK4oC!(L@G zR%;D7RIFm_#2vbyEj-tH+$D%@*ir974+*0K{b=uPBU%VHS$wOwT7~|!`XifYU>meO zEm|W|&knp2rR`$Rj&PD@(+HZyT3pk46WZ!Ee61KocxjK1R+}U%qO=R`KCFRMHKUKj z*9a;kUzTAGlIA+VroCK(wNc=w%4Qev(kL27JBvhV9gcRqcHl1UFs{WYx}w&#cyC8P zx#LKXi7KL&YNV}z(IMWO0F@{pZc(*^cttDZcHpKSO`xkwP(hezcGQ!&(uMnVfJ);D z>nhPIDI=bcl!+D}6pHnPThgK8{yGgFX+F)r1-}HD#*%jrrh}qr8~PAdf?bby$$R1& z?MeD`M@rnMe?;|iU?F;G-aeW8(@UHWmVrso9jpVoP7y4U4)LQ!aG?|YYXJQONw(0u zNqb1YmuVcNHtIvOA+G9uB@bntg5PY9!41M$h2 za1zZrJ*2awOS&caxI$J&ln^G8HC+*gCP;}isSP}(d%6`$9FiIp)JrXt^P+Kq{MD^R z@28LR?VwNg5E7P-n>5!qcj71UQc_4#mfW~JTzp<@nR95L%ih=TR_F8-s1@aNtBR+5 zI7lr~tpfu?;z6OMeFIjzqqN64P;45tyZhA++px{G$JVPhItSfqEBAR-42^7=(Vbib!$|sdx5Fn?H*cC zRyN$@vJbh3ONTKnr>n25t+54PD_`=@|Cj{*?G3GJV_R#N+S0tNp|!KYpL{U1qFQaV zb-PBau6^KqdCmV5LQ{K3L*457mIkoJruI3lj$wMxi+DMSkLnyuus|j5yPfK=+deSj zu)4tO}wrP>G8(SCbRzo2GV9kA|$;ML)NOsZGP9@^?8r9{sm ztIIuzhqwCeLsDa%;EQWmC?xpP*rHk;P?}*efeCG-nV`u@fJdO7#bDJ)FI22p9dP3D zI#M>G3>YyJm%V$$jTR!*kw zZ6<-N7{vBCfP)4O?o(k6_C1p6G->ds$2v&lbi+~{M2Kym+t%AlXF+6uurjAhqLWGw zc*DBUY5WDR`>k$)%B9(`iT>vgo)^@}rFj#%!ITK1HQtlVeD{ZoP5sVM=#NWKOLGRn zE}O$<^_e(LPRKxY?;Em_ifLSz%y8LukJw!{p?=UG4G$!NHY?<*`w2h$?{$J|LS`Kr za_lpquVA3FXGA~|3W=$V3=?m`d<`amSlw zfafZOUJ#gJo3M}_b_eiJ%u)(io$#)v6%f14HD|bBD%y#GJ>ZWEdP7fWl3op~!y`TY z#12dn+HI1W0ff#G7oO=92#cWzcIcDlzepR^UTw<4{xFs7$==z24#XuX^5G#{kEYZT zxoX|vmhRXD*Q$kyVK+Plu@rM5=xvA|_Cc#d_ig^Li9h5z;3w#@Nk}<>m1Oxt&OyL} zz73oFjVPFZ>IDA?=W5;hv~b{$GstWP;B!cSt-Zpi+|FW1+F^4;3yMu-A0ypxLhcc2 zP)ka5XQASj@Gwrq3^WUUmEP2kXz5=~!7PAO_NhJn)}G| zK^kisw2i8^!98}DbC7sUldT(Z_d8var#NiygG+-4AT%~QgHiXvKMv5j+t$-RXz#H) zOrtJ4NfGF!!3{xqA&k*}C-^@&;kJOD#1%jj(6={qtZwe?gdwPT>aw=h<(g5n+gt(S>DER7;{xh3!Tsky8bObO>1hVPlh0rYu$XdX#SrK?iAaD$W zBup7Oks=^Hpmv#3!W|=V6JE*fm#YaMKa7qdmg$bISJn7QuFnlmR$@f}MTTPA>(;$p z|Hy!Kumrh9uSn+T-`$ZbcDjg}BrQ09mvhKvr)*{bM8YzB-3M%L40I!>u-hEH!y*@? zafARMy5Yuv1j7XF z0e;#@ZSN2wq}{EOIlGYw!Iu0CP_sPpFhog@(}j2r-%3u;v}{5k(u-nrj}Ulm(HK>_XFguo1xs459ExA%dLr5Jtfe;`42wLcd^SY6-TwW4ipmx>-8b*)_+u|QDkS~seznp>9_n;JG?rPbM~ zwsok@tJ_uZBpwouC|cz|yd~p|#5d zs+P62Z|rDpTG3UEL0xDpR=YatmN%@f>sVDx6t-c?9jfS33Mv6ZZCHnXYUhf&mKGIv zO%pKG6>Tlc(Yw9@)YoApDapaa1^RBb&oEzP!pqiYdh+99jJhHp$@hVb-E3xtZrhP*%o#M+sd}F?aay*HpXsYH?za+ z>+C50|JA$fKK2;-lb{v)Ze@C7D9D9ZRoW06^#$IE;N8SDx>~(gYJ%QbX zKe7|-Kk&b^-h>D~WFNDe@LY@?J8c7~`VX@EQSIL?_B`pC88>$IM%f405#EozyervN z>}%{>>>B*{$^-0L_7VF8|F!Zh{I|m=*$>#;?0>UgvZvS?{5Q*I@yWn{WjC@%+4JlO z`vbdRM3thvyiWXM5qu-E7t-Po62AY6zG+Te8QA|qTZp*Ai@0wBZ%di7ys@Q=MLVqS zLCA!9F!8@IeP_P@<>0h`|MZFegijwq=X{sVHAtUl7MKV#X%PO~0RCy^4WeffBuSqa z+Jjl&0?s^)+588O<;i>wui&-3p5Mkl;GZeU$^rCG!vCsD@qU-3dGBE}y{`dM8eUB- z&-*4T^uCTy>%WOl+rGwXybrSZ-a~8wu4}ymY$L{P!uONld%3(n2b>(V&-ea_E%g2? zTE0Ee@+w-+qUCY)%<(=89nQhGGS2sY5ACPXem7g>eH(h6=lvn@Jpp{r1K(q;$@>ey z|2Z@~&wBxPUc{ZBFL!dQh+tly36=m~9a=neTmLf{s^! z?|Jlp6#UBZK8J64dmU%*P?mfWP z;OM}0C*HfzwifT}ytlCp;LJwMXOs64wi!6K;QR{jcVLk@xRZw&7Xo{U_hwcOnku}n zU?x8Rmb-xEE?~I|SndLr!@zPDSk3~=oxpMySPlcrSzvh(Sk3|JTVe)pV${Dw>XZ5Q z8Yp=al>7ozya`W`18L=f|ApTBK*1_te-zm7Vb!?1+`9o3tOu+`pkO^HXa)txK*2Fk zupSf~0|m{X;20?A29I9>6?Xu`^T6hwst74fz`BWu%WG Y599MMP+g3`&l{=9_@3Ut|0Df>0dW+y?f?J) literal 0 HcmV?d00001 diff --git a/core/src/main/resources/assets/globaltags/font/super_rpg.json b/core/src/main/resources/assets/globaltags/font/super_rpg.json new file mode 100644 index 00000000..43cec079 --- /dev/null +++ b/core/src/main/resources/assets/globaltags/font/super_rpg.json @@ -0,0 +1,14 @@ +{ + "providers": [ + { + "type": "ttf", + "file": "globaltags:super_rpg.ttf", + "shift": [ + 0.5, + 0.5 + ], + "size": 10.0, + "oversample": 6.0 + } + ] +} diff --git a/core/src/main/resources/assets/globaltags/font/super_rpg.ttf b/core/src/main/resources/assets/globaltags/font/super_rpg.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d5d2642e295354cb955d4ca6de84e0c6677fe516 GIT binary patch literal 39112 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 Date: Wed, 10 Jul 2024 19:03:19 +0200 Subject: [PATCH 16/28] Fix updateSettings button not showing up --- .../com/rappytv/globaltags/config/subconfig/TagSubConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java b/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java index 9bf4a29a..3c16c208 100644 --- a/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java +++ b/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java @@ -57,7 +57,7 @@ public TagSubConfig() { @SpriteSlot(size = 32, y = 1, x = 2) private final ConfigProperty icon = new ConfigProperty<>(GlobalIcon.NONE); - @MethodOrder(after = "globalIcon") + @MethodOrder(after = "icon") @ButtonSetting @SpriteSlot(size = 32, y = 1, x = 1) @SuppressWarnings("ConstantConditions") From a27b6cd6839ac9da20bffb87071b96055f653438 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Wed, 10 Jul 2024 19:07:57 +0200 Subject: [PATCH 17/28] Fix fontResponse not being respected in result popup --- api/src/main/java/com/rappytv/globaltags/util/Util.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/api/src/main/java/com/rappytv/globaltags/util/Util.java b/api/src/main/java/com/rappytv/globaltags/util/Util.java index 03287090..3029617e 100644 --- a/api/src/main/java/com/rappytv/globaltags/util/Util.java +++ b/api/src/main/java/com/rappytv/globaltags/util/Util.java @@ -47,7 +47,11 @@ public static void update(ResultType type, Component component) { case POSITION -> positionResponse = component; case ICON -> iconResponse = component; } - if(tagResponse == null || positionResponse == null || iconResponse == null) return; + if(tagResponse == null + || fontResponse == null + || positionResponse == null + || iconResponse == null + ) return; SimpleAdvancedPopup popup = SimpleAdvancedPopup .builder() .title(Component.text("Update result", NamedTextColor.AQUA)) From 72d512ac0254bc75031a80132abee55f93433f95 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Wed, 10 Jul 2024 20:40:33 +0200 Subject: [PATCH 18/28] Implement custom extra left-margin for the staff icon per font --- .../com/rappytv/globaltags/types/GlobalFont.java | 14 ++++++++++++++ .../globaltags/config/widget/TagPreviewWidget.java | 1 + .../com/rappytv/globaltags/nametag/CustomTag.java | 8 +++++++- .../assets/globaltags/themes/fancy/lss/preview.lss | 2 +- .../globaltags/themes/vanilla/lss/preview.lss | 2 +- 5 files changed, 24 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java index dfbe6416..a4f71973 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java +++ b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java @@ -15,6 +15,20 @@ public enum GlobalFont { private static final Map locations = new HashMap<>(); + private final double staffMargin; + + GlobalFont() { + this(0); + } + + GlobalFont(double staffMargin) { + this.staffMargin = staffMargin; + } + + public double getStaffMargin() { + return staffMargin; + } + @Nullable public ResourceLocation getCachedLocation() { if(locations.containsKey(this)) return locations.get(this); diff --git a/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java b/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java index 0f8faf76..3a94a975 100644 --- a/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java +++ b/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java @@ -89,6 +89,7 @@ public void initialize(boolean refetched) { I18n.translate("globaltags.settings.tags.staged.description") ); } + setVariable("--staff-margin", config.font().get().getStaffMargin()); ComponentWidget tag = ComponentWidget.component( config.tag().get().isBlank() ? Component.translatable( diff --git a/core/src/main/java/com/rappytv/globaltags/nametag/CustomTag.java b/core/src/main/java/com/rappytv/globaltags/nametag/CustomTag.java index a987cd7c..fe8358a5 100644 --- a/core/src/main/java/com/rappytv/globaltags/nametag/CustomTag.java +++ b/core/src/main/java/com/rappytv/globaltags/nametag/CustomTag.java @@ -70,7 +70,13 @@ public void render(Stack stack, Entity entity) { Laby.labyAPI().renderPipeline().renderSeeThrough(entity, () -> { if(info.getIcon() != null) info.getIcon().render(stack, -11, 0, 9, 9); - if(info.isAdmin()) admin.render(stack, getWidth() + 0.9F, -1.2F, 11, 11); + if(info.isAdmin()) admin.render( + stack, + getWidth() + 0.9F + (float) info.getFont().getStaffMargin(), + -1.2F, + 11, + 11 + ); }); } diff --git a/core/src/main/resources/assets/globaltags/themes/fancy/lss/preview.lss b/core/src/main/resources/assets/globaltags/themes/fancy/lss/preview.lss index 183000c0..8e3d9124 100644 --- a/core/src/main/resources/assets/globaltags/themes/fancy/lss/preview.lss +++ b/core/src/main/resources/assets/globaltags/themes/fancy/lss/preview.lss @@ -18,7 +18,7 @@ TagPreview { } .staff-icon { - margin-left: 2; + margin-left: calc(2 + var(--staff-margin)); height: 11; width: height; } diff --git a/core/src/main/resources/assets/globaltags/themes/vanilla/lss/preview.lss b/core/src/main/resources/assets/globaltags/themes/vanilla/lss/preview.lss index 183000c0..8e3d9124 100644 --- a/core/src/main/resources/assets/globaltags/themes/vanilla/lss/preview.lss +++ b/core/src/main/resources/assets/globaltags/themes/vanilla/lss/preview.lss @@ -18,7 +18,7 @@ TagPreview { } .staff-icon { - margin-left: 2; + margin-left: calc(2 + var(--staff-margin)); height: 11; width: height; } From 50363d5adc51faf72846ac7d5c16b42e6a557859 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Wed, 10 Jul 2024 20:41:31 +0200 Subject: [PATCH 19/28] Adjust alagard to fit --- .../main/java/com/rappytv/globaltags/types/GlobalFont.java | 2 +- core/src/main/resources/assets/globaltags/font/alagard.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java index a4f71973..8788f34b 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java +++ b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java @@ -8,7 +8,7 @@ public enum GlobalFont { DEFAULT, UNICODE, - ALAGARD, + ALAGARD(3), GLACIAL_INDIFFERENCE, SUPER_RPG, DARK_SOULS; diff --git a/core/src/main/resources/assets/globaltags/font/alagard.json b/core/src/main/resources/assets/globaltags/font/alagard.json index 26aba112..38312700 100644 --- a/core/src/main/resources/assets/globaltags/font/alagard.json +++ b/core/src/main/resources/assets/globaltags/font/alagard.json @@ -5,9 +5,9 @@ "file": "globaltags:alagard.ttf", "shift": [ 0, - 0.8 + 1.6 ], - "size": 11.0, + "size": 8.0, "oversample": 10.0 } ] From a05fa7e06cfb07c47848412fe368e6c689ffb175 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Wed, 10 Jul 2024 20:44:23 +0200 Subject: [PATCH 20/28] Reorder custom fonts by alphabet --- .../main/java/com/rappytv/globaltags/types/GlobalFont.java | 4 ++-- core/src/main/resources/assets/globaltags/i18n/de_de.json | 4 ++-- core/src/main/resources/assets/globaltags/i18n/en_us.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java index 8788f34b..a86646c4 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java +++ b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java @@ -9,9 +9,9 @@ public enum GlobalFont { DEFAULT, UNICODE, ALAGARD(3), + DARK_SOULS, GLACIAL_INDIFFERENCE, - SUPER_RPG, - DARK_SOULS; + SUPER_RPG; private static final Map locations = new HashMap<>(); diff --git a/core/src/main/resources/assets/globaltags/i18n/de_de.json b/core/src/main/resources/assets/globaltags/i18n/de_de.json index e054d071..b2c43cae 100644 --- a/core/src/main/resources/assets/globaltags/i18n/de_de.json +++ b/core/src/main/resources/assets/globaltags/i18n/de_de.json @@ -63,9 +63,9 @@ "default": "Zum theme passend", "unicode": "Unicode", "alagard": "Alagard", + "darkSouls": "Dark Souls", "glacialIndifference": "Glacial Indifference", - "superRpg": "Super RPG", - "darkSouls": "Dark Souls" + "superRpg": "Super RPG" } }, "position": { diff --git a/core/src/main/resources/assets/globaltags/i18n/en_us.json b/core/src/main/resources/assets/globaltags/i18n/en_us.json index c02bf942..ef59d618 100644 --- a/core/src/main/resources/assets/globaltags/i18n/en_us.json +++ b/core/src/main/resources/assets/globaltags/i18n/en_us.json @@ -63,9 +63,9 @@ "default": "Matching theme", "unicode": "Unicode", "alagard": "Alagard", + "darkSouls": "Dark Souls", "glacialIndifference": "Glacial Indifference", - "superRpg": "Super RPG", - "darkSouls": "Dark Souls" + "superRpg": "Super RPG" } }, "position": { From eb2ee23cb63b2b19d326f98ffa9ab1e892d8a4f8 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Wed, 10 Jul 2024 21:07:44 +0200 Subject: [PATCH 21/28] Fix not being able to use negative values in GlobalFont constructor --- .../com/rappytv/globaltags/config/widget/TagPreviewWidget.java | 2 +- .../resources/assets/globaltags/themes/fancy/lss/preview.lss | 2 +- .../resources/assets/globaltags/themes/vanilla/lss/preview.lss | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java b/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java index 3a94a975..f913b290 100644 --- a/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java +++ b/core/src/main/java/com/rappytv/globaltags/config/widget/TagPreviewWidget.java @@ -89,7 +89,7 @@ public void initialize(boolean refetched) { I18n.translate("globaltags.settings.tags.staged.description") ); } - setVariable("--staff-margin", config.font().get().getStaffMargin()); + setVariable("--staff-margin", 2 + config.font().get().getStaffMargin()); ComponentWidget tag = ComponentWidget.component( config.tag().get().isBlank() ? Component.translatable( diff --git a/core/src/main/resources/assets/globaltags/themes/fancy/lss/preview.lss b/core/src/main/resources/assets/globaltags/themes/fancy/lss/preview.lss index 8e3d9124..727ec880 100644 --- a/core/src/main/resources/assets/globaltags/themes/fancy/lss/preview.lss +++ b/core/src/main/resources/assets/globaltags/themes/fancy/lss/preview.lss @@ -18,7 +18,7 @@ TagPreview { } .staff-icon { - margin-left: calc(2 + var(--staff-margin)); + margin-left: var(--staff-margin); height: 11; width: height; } diff --git a/core/src/main/resources/assets/globaltags/themes/vanilla/lss/preview.lss b/core/src/main/resources/assets/globaltags/themes/vanilla/lss/preview.lss index 8e3d9124..727ec880 100644 --- a/core/src/main/resources/assets/globaltags/themes/vanilla/lss/preview.lss +++ b/core/src/main/resources/assets/globaltags/themes/vanilla/lss/preview.lss @@ -18,7 +18,7 @@ TagPreview { } .staff-icon { - margin-left: calc(2 + var(--staff-margin)); + margin-left: var(--staff-margin); height: 11; width: height; } From 02b2de9f7ff0fdf39aad68947e39cc3b0ea7064e Mon Sep 17 00:00:00 2001 From: RappyTV Date: Wed, 10 Jul 2024 21:12:05 +0200 Subject: [PATCH 22/28] Set the staff margins for all GlobalFonts --- .../com/rappytv/globaltags/types/GlobalFont.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java index a86646c4..399928a9 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java +++ b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java @@ -6,21 +6,17 @@ import java.util.Map; public enum GlobalFont { - DEFAULT, - UNICODE, + DEFAULT(0), + UNICODE(-10), ALAGARD(3), - DARK_SOULS, - GLACIAL_INDIFFERENCE, - SUPER_RPG; + DARK_SOULS(22), + GLACIAL_INDIFFERENCE(18), + SUPER_RPG(10); private static final Map locations = new HashMap<>(); private final double staffMargin; - GlobalFont() { - this(0); - } - GlobalFont(double staffMargin) { this.staffMargin = staffMargin; } From bc3bbb21ac404c5070d207ef00b0b25facf14d6e Mon Sep 17 00:00:00 2001 From: RappyTV Date: Wed, 10 Jul 2024 21:25:05 +0200 Subject: [PATCH 23/28] Adjust the dark souls font shifting --- core/src/main/resources/assets/globaltags/font/dark_souls.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/assets/globaltags/font/dark_souls.json b/core/src/main/resources/assets/globaltags/font/dark_souls.json index 406e5f08..d6b7ce16 100644 --- a/core/src/main/resources/assets/globaltags/font/dark_souls.json +++ b/core/src/main/resources/assets/globaltags/font/dark_souls.json @@ -5,7 +5,7 @@ "file": "globaltags:dark_souls.ttf", "shift": [ 0, - 0.4 + 0.8 ], "size": 11.0, "oversample": 11.0 From 9d51a92316ad6c5bbbefdc7d4e6644b6924a1d79 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Wed, 10 Jul 2024 21:30:48 +0200 Subject: [PATCH 24/28] Adjust the super rpg font shifting --- core/src/main/resources/assets/globaltags/font/super_rpg.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/resources/assets/globaltags/font/super_rpg.json b/core/src/main/resources/assets/globaltags/font/super_rpg.json index 43cec079..aa3f60c0 100644 --- a/core/src/main/resources/assets/globaltags/font/super_rpg.json +++ b/core/src/main/resources/assets/globaltags/font/super_rpg.json @@ -5,7 +5,7 @@ "file": "globaltags:super_rpg.ttf", "shift": [ 0.5, - 0.5 + 1 ], "size": 10.0, "oversample": 6.0 From 33c4d0f28eaeb252a5ebd35b4cfc31ec8746717c Mon Sep 17 00:00:00 2001 From: RappyTV Date: Wed, 10 Jul 2024 21:39:14 +0200 Subject: [PATCH 25/28] Add IntroducedIn annotation to join discord button --- .../main/java/com/rappytv/globaltags/config/GlobalTagConfig.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core/src/main/java/com/rappytv/globaltags/config/GlobalTagConfig.java b/core/src/main/java/com/rappytv/globaltags/config/GlobalTagConfig.java index fd4b51ed..7de2bbba 100644 --- a/core/src/main/java/com/rappytv/globaltags/config/GlobalTagConfig.java +++ b/core/src/main/java/com/rappytv/globaltags/config/GlobalTagConfig.java @@ -36,6 +36,7 @@ public GlobalTagConfig() { @SpriteSlot(size = 32, y = 2, x = 2) @SwitchSetting private final ConfigProperty localizedResponses = new ConfigProperty<>(true); + @IntroducedIn(namespace = "globaltags", value = "1.2.0") @MethodOrder(after = "localizedResponses") @SpriteSlot(size = 32, y = 2, x = 3) @ButtonSetting From 97792389e733b4175f932850e30baaa22e0b140d Mon Sep 17 00:00:00 2001 From: RappyTV Date: Wed, 10 Jul 2024 22:08:56 +0200 Subject: [PATCH 26/28] Support vanilla theme --- .../rappytv/globaltags/types/GlobalFont.java | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java index 399928a9..7526dd8a 100644 --- a/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java +++ b/api/src/main/java/com/rappytv/globaltags/types/GlobalFont.java @@ -1,28 +1,35 @@ package com.rappytv.globaltags.types; +import net.labymod.api.Laby; import net.labymod.api.client.resources.ResourceLocation; import org.jetbrains.annotations.Nullable; import java.util.HashMap; import java.util.Map; public enum GlobalFont { - DEFAULT(0), - UNICODE(-10), - ALAGARD(3), - DARK_SOULS(22), - GLACIAL_INDIFFERENCE(18), - SUPER_RPG(10); + DEFAULT(0, 0), + UNICODE(-1, -10), + ALAGARD(1, 3), + DARK_SOULS(1, 22), + GLACIAL_INDIFFERENCE(3, 18), + SUPER_RPG(2, 10); private static final Map locations = new HashMap<>(); - private final double staffMargin; + private final double vanillaMargin; + private final double fancyMargin; - GlobalFont(double staffMargin) { - this.staffMargin = staffMargin; + GlobalFont(double vanillaMargin, double fancyMargin) { + this.vanillaMargin = vanillaMargin; + this.fancyMargin = fancyMargin; } public double getStaffMargin() { - return staffMargin; + return switch (Laby.labyAPI().themeService().currentTheme().getId()) { + case "vanilla" -> vanillaMargin; + case "fancy" -> fancyMargin; + default -> 0; + }; } @Nullable From e6448e81712b94f35a705c2abf8ddea76ed45916 Mon Sep 17 00:00:00 2001 From: RappyTV Date: Wed, 10 Jul 2024 22:18:51 +0200 Subject: [PATCH 27/28] Add sprite texture to font config option --- .../config/subconfig/TagSubConfig.java | 1 + .../themes/vanilla/textures/settings.png | Bin 20467 -> 18393 bytes 2 files changed, 1 insertion(+) diff --git a/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java b/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java index 3c16c208..230239df 100644 --- a/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java +++ b/core/src/main/java/com/rappytv/globaltags/config/subconfig/TagSubConfig.java @@ -46,6 +46,7 @@ public TagSubConfig() { private final ConfigProperty tag = new ConfigProperty<>(""); @IntroducedIn(namespace = "globaltags", value = "1.2.1") + @SpriteSlot(size = 32, y = 3) @DropdownSetting private final ConfigProperty font = new ConfigProperty<>(GlobalFont.DEFAULT); diff --git a/core/src/main/resources/assets/globaltags/themes/vanilla/textures/settings.png b/core/src/main/resources/assets/globaltags/themes/vanilla/textures/settings.png index e5aaf2fac8b40cc49ff5400c30983491e1fe3169..806d8685b5296e1493953c100a9ca1da007dd989 100644 GIT binary patch delta 13787 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 From 670a4da814cbe076eb4769a4fd6bca3a5371936d Mon Sep 17 00:00:00 2001 From: RappyTV Date: Wed, 10 Jul 2024 22:20:08 +0200 Subject: [PATCH 28/28] Update dates on the new revisions --- core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java b/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java index cfbc21b3..2991fc34 100644 --- a/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java +++ b/core/src/main/java/com/rappytv/globaltags/GlobalTagAddon.java @@ -37,8 +37,8 @@ protected void preConfigurationLoad() { Laby.references().revisionRegistry().register(new SimpleRevision("globaltags", new SemanticVersion("1.1.0"), "2023-11-24")); Laby.references().revisionRegistry().register(new SimpleRevision("globaltags", new SemanticVersion("1.1.7"), "2024-02-27")); Laby.references().revisionRegistry().register(new SimpleRevision("globaltags", new SemanticVersion("1.1.9"), "2024-06-01")); - Laby.references().revisionRegistry().register(new SimpleRevision("globaltags", new SemanticVersion("1.2.0"), "2024-07-06")); - Laby.references().revisionRegistry().register(new SimpleRevision("globaltags", new SemanticVersion("1.2.1"), "2024-07-08")); + Laby.references().revisionRegistry().register(new SimpleRevision("globaltags", new SemanticVersion("1.2.0"), "2024-07-10")); + Laby.references().revisionRegistry().register(new SimpleRevision("globaltags", new SemanticVersion("1.2.1"), "2024-07-10")); } @Override