From 62ef95596abbf099f1ea8837483f9ff52f9e1116 Mon Sep 17 00:00:00 2001 From: UsainSrht Date: Sun, 29 Mar 2026 13:28:37 +0300 Subject: [PATCH 1/3] folia support and papi fix --- gradle.properties | 3 ++- paper/build.gradle | 5 +++++ .../java/dev/vatten/baserad/BukkitScheduledTask.java | 6 ++---- .../dev/vatten/baserad/PaperFancyTagsExpansion.java | 2 +- .../java/dev/vatten/baserad/PaperVattenPlatform.java | 12 ++++++++---- paper/src/main/resources/paper-plugin.yml | 1 + plugin/src/main/java/dev/vatten/baserad/Plugin.java | 7 +++++-- plugin/src/main/java/dev/vatten/baserad/Tag.java | 4 +++- .../java/dev/vatten/baserad/symbols/AtlasSymbol.java | 5 +++++ .../dev/vatten/baserad/symbols/PlayerSymbol.java | 5 +++++ .../main/java/dev/vatten/baserad/symbols/Symbol.java | 6 ++++++ 11 files changed, 43 insertions(+), 13 deletions(-) diff --git a/gradle.properties b/gradle.properties index 1d8f96f..b1bab0b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,3 @@ pluginName=FancyTags -version=unspecified \ No newline at end of file +version=0.1.0-SNAPSHOT +org.gradle.java.home=C:/Program Files/Eclipse Adoptium/jdk-21.0.2.13-hotspot diff --git a/paper/build.gradle b/paper/build.gradle index cc03bd3..3623085 100644 --- a/paper/build.gradle +++ b/paper/build.gradle @@ -9,10 +9,15 @@ repositories { name = "papermc-repo" url = "https://repo.papermc.io/repository/maven-public/" } + maven { + name = "arim-mvn-lgpl3" + url = "https://mvn-repo.arim.space/lesser-gpl3/" + } } dependencies { compileOnly("io.papermc.paper:paper-api:1.21.11-R0.1-SNAPSHOT") + implementation("space.arim.morepaperlib:morepaperlib:0.4.3") implementation("org.bstats:bstats-bukkit:3.0.2") implementation(project(":common")) implementation(project(":plugin")) diff --git a/paper/src/main/java/dev/vatten/baserad/BukkitScheduledTask.java b/paper/src/main/java/dev/vatten/baserad/BukkitScheduledTask.java index 0f3f7a7..677e713 100644 --- a/paper/src/main/java/dev/vatten/baserad/BukkitScheduledTask.java +++ b/paper/src/main/java/dev/vatten/baserad/BukkitScheduledTask.java @@ -16,10 +16,8 @@ package dev.vatten.baserad; -import org.bukkit.scheduler.BukkitTask; - -public class BukkitScheduledTask extends ScheduledTask { - public BukkitScheduledTask(BukkitTask task) { +public class BukkitScheduledTask extends ScheduledTask { + public BukkitScheduledTask(space.arim.morepaperlib.scheduling.ScheduledTask task) { super(task); } diff --git a/paper/src/main/java/dev/vatten/baserad/PaperFancyTagsExpansion.java b/paper/src/main/java/dev/vatten/baserad/PaperFancyTagsExpansion.java index 61af074..9fdab60 100644 --- a/paper/src/main/java/dev/vatten/baserad/PaperFancyTagsExpansion.java +++ b/paper/src/main/java/dev/vatten/baserad/PaperFancyTagsExpansion.java @@ -58,7 +58,7 @@ public boolean persist() { @Override public @Nullable String onPlaceholderRequest(Player player, @NotNull String params) { if(plugin.getTagStore().getTagNames().contains(params)) { - return plugin.getMiniMessage().serialize(plugin.getTagStore().getTag(params).asComponent()); + return plugin.getTagStore().getTag(params).asMiniMessage(); } return null; } diff --git a/paper/src/main/java/dev/vatten/baserad/PaperVattenPlatform.java b/paper/src/main/java/dev/vatten/baserad/PaperVattenPlatform.java index 3db0669..16669d5 100644 --- a/paper/src/main/java/dev/vatten/baserad/PaperVattenPlatform.java +++ b/paper/src/main/java/dev/vatten/baserad/PaperVattenPlatform.java @@ -30,16 +30,18 @@ import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.scheduler.BukkitTask; import org.jspecify.annotations.Nullable; +import space.arim.morepaperlib.MorePaperLib; import java.util.Collection; -public class PaperVattenPlatform extends JavaPlugin implements VattenPlatform, Listener { +public class PaperVattenPlatform extends JavaPlugin implements VattenPlatform, Listener { private VattenPlugin plugin; + private MorePaperLib morePaperLib; @Override public void onEnable() { + this.morePaperLib = new MorePaperLib(this); this.plugin = new Plugin( this, VattenPlugin.Type.SERVER, @@ -62,12 +64,14 @@ public void onEnable() { @Override public BukkitScheduledTask scheduleTask(Runnable runnable, int delay) { - return new BukkitScheduledTask(getServer().getScheduler().runTaskLater(this, runnable, delay/50)); + long initialDelayTicks = Math.max(1L, delay / 50L); + return new BukkitScheduledTask(morePaperLib.scheduling().globalRegionalScheduler().runDelayed(runnable, initialDelayTicks)); } @Override public BukkitScheduledTask scheduleRepeatingTask(Runnable runnable, int delay, int period) { - return new BukkitScheduledTask(getServer().getScheduler().runTaskTimer(this, runnable, delay/50, period/50)); + long initialDelayTicks = Math.max(1L, delay / 50L); + return new BukkitScheduledTask(morePaperLib.scheduling().globalRegionalScheduler().runAtFixedRate(runnable, initialDelayTicks, period / 50L)); } @Override diff --git a/paper/src/main/resources/paper-plugin.yml b/paper/src/main/resources/paper-plugin.yml index cc4db2a..e6cc75c 100644 --- a/paper/src/main/resources/paper-plugin.yml +++ b/paper/src/main/resources/paper-plugin.yml @@ -18,6 +18,7 @@ name: "${pluginName}" version: "${version}" main: "dev.vatten.baserad.PaperVattenPlatform" api-version: '1.21.11' +folia-supported: true dependencies: server: diff --git a/plugin/src/main/java/dev/vatten/baserad/Plugin.java b/plugin/src/main/java/dev/vatten/baserad/Plugin.java index 041e62a..f927300 100644 --- a/plugin/src/main/java/dev/vatten/baserad/Plugin.java +++ b/plugin/src/main/java/dev/vatten/baserad/Plugin.java @@ -37,7 +37,7 @@ import java.util.function.Consumer; public class Plugin extends VattenPlugin { - private MiniMessage MINIMESSAGE = null; + private MiniMessage MINIMESSAGE; private ConfigInstance PLUGIN_CONFIG; private ConfigInstance TAGS_CONFIG; @Getter @@ -75,7 +75,7 @@ protected void onEnable() { getEventHandler().registerEventHandler(PlayerLoadInEvent.class, this::onPlayerLoadIn); - MINIMESSAGE = MiniMessage.builder().tags(TagResolver.builder().resolver(StandardTags.defaults()).resolver(TagResolver.resolver("fancytags", (ArgumentQueue queue, Context ctx) -> Tag.selfClosingInserting(getTagStore().getTag(queue.pop().value()).asComponent()))).resolver(TagResolver.resolver("fancytags_internal", (ArgumentQueue queue, Context ctx) -> Tag.selfClosingInserting(getInternalTagStore().getTag(queue.pop().value()).asComponent()))).build()).build(); + getMiniMessage(); } @Override @@ -128,6 +128,9 @@ TagsConfig getTagsConfig() { } public MiniMessage getMiniMessage() { + if(MINIMESSAGE == null) { + MINIMESSAGE = MiniMessage.builder().tags(TagResolver.builder().resolver(StandardTags.defaults()).resolver(TagResolver.resolver("fancytags", (ArgumentQueue queue, Context ctx) -> Tag.selfClosingInserting(getTagStore().getTag(queue.pop().value()).asComponent()))).resolver(TagResolver.resolver("fancytags_internal", (ArgumentQueue queue, Context ctx) -> Tag.selfClosingInserting(getInternalTagStore().getTag(queue.pop().value()).asComponent()))).build()).build(); + } return MINIMESSAGE; } diff --git a/plugin/src/main/java/dev/vatten/baserad/Tag.java b/plugin/src/main/java/dev/vatten/baserad/Tag.java index 303f347..4afbdc7 100644 --- a/plugin/src/main/java/dev/vatten/baserad/Tag.java +++ b/plugin/src/main/java/dev/vatten/baserad/Tag.java @@ -38,11 +38,13 @@ public Tag(List symbols) { Component serialize(MiniMessage miniMessage) { TextComponent.Builder componentBuilder = Component.text(); + StringBuilder miniMessageBuilder = new StringBuilder(); for(Symbol symbol : symbols) { componentBuilder.append(symbol.serialize()); + miniMessageBuilder.append(symbol.serializeMiniMessage()); } this.component = componentBuilder.build(); - this.miniMessage = miniMessage.serialize(this.component); + this.miniMessage = miniMessageBuilder.toString(); return this.component; } diff --git a/plugin/src/main/java/dev/vatten/baserad/symbols/AtlasSymbol.java b/plugin/src/main/java/dev/vatten/baserad/symbols/AtlasSymbol.java index f9afa8c..acae383 100644 --- a/plugin/src/main/java/dev/vatten/baserad/symbols/AtlasSymbol.java +++ b/plugin/src/main/java/dev/vatten/baserad/symbols/AtlasSymbol.java @@ -37,4 +37,9 @@ public AtlasSymbol(String atlas, String sprite) { public Component serialize() { return Component.object(ObjectContents.sprite(Key.key(this.atlas), Key.key(this.sprite))); } + + @Override + public String serializeMiniMessage() { + return ""; + } } diff --git a/plugin/src/main/java/dev/vatten/baserad/symbols/PlayerSymbol.java b/plugin/src/main/java/dev/vatten/baserad/symbols/PlayerSymbol.java index 1431596..f919e5b 100644 --- a/plugin/src/main/java/dev/vatten/baserad/symbols/PlayerSymbol.java +++ b/plugin/src/main/java/dev/vatten/baserad/symbols/PlayerSymbol.java @@ -37,4 +37,9 @@ public PlayerSymbol(String value, String signature) { public Component serialize() { return Component.object(ObjectContents.playerHead().profileProperty(PlayerHeadObjectContents.property("textures", this.value, this.signature)).build()); } + + @Override + public String serializeMiniMessage() { + return ""; + } } diff --git a/plugin/src/main/java/dev/vatten/baserad/symbols/Symbol.java b/plugin/src/main/java/dev/vatten/baserad/symbols/Symbol.java index f207cb4..264a47d 100644 --- a/plugin/src/main/java/dev/vatten/baserad/symbols/Symbol.java +++ b/plugin/src/main/java/dev/vatten/baserad/symbols/Symbol.java @@ -24,4 +24,10 @@ @Configuration public abstract class Symbol { public abstract Component serialize(); + + public abstract String serializeMiniMessage(); + + protected static String quotedMiniMessageArgument(String input) { + return "'" + input.replace("\\", "\\\\").replace("'", "\\'") + "'"; + } } From 18f0450e3873566c828f369e6ca6dd319b04076c Mon Sep 17 00:00:00 2001 From: UsainSrht Date: Tue, 31 Mar 2026 20:41:19 +0300 Subject: [PATCH 2/3] use custom minimessage tag --- plugin/src/main/java/dev/vatten/baserad/Plugin.java | 8 +++++++- plugin/src/main/java/dev/vatten/baserad/Tag.java | 6 +++--- .../main/java/dev/vatten/baserad/symbols/AtlasSymbol.java | 2 +- .../java/dev/vatten/baserad/symbols/PlayerSymbol.java | 2 +- .../src/main/java/dev/vatten/baserad/symbols/Symbol.java | 5 ----- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/plugin/src/main/java/dev/vatten/baserad/Plugin.java b/plugin/src/main/java/dev/vatten/baserad/Plugin.java index f927300..4bfaedb 100644 --- a/plugin/src/main/java/dev/vatten/baserad/Plugin.java +++ b/plugin/src/main/java/dev/vatten/baserad/Plugin.java @@ -129,7 +129,13 @@ TagsConfig getTagsConfig() { public MiniMessage getMiniMessage() { if(MINIMESSAGE == null) { - MINIMESSAGE = MiniMessage.builder().tags(TagResolver.builder().resolver(StandardTags.defaults()).resolver(TagResolver.resolver("fancytags", (ArgumentQueue queue, Context ctx) -> Tag.selfClosingInserting(getTagStore().getTag(queue.pop().value()).asComponent()))).resolver(TagResolver.resolver("fancytags_internal", (ArgumentQueue queue, Context ctx) -> Tag.selfClosingInserting(getInternalTagStore().getTag(queue.pop().value()).asComponent()))).build()).build(); + MINIMESSAGE = MiniMessage.builder() + .tags(TagResolver.builder() + .resolver(StandardTags.defaults()) + .resolver(TagResolver.resolver("fancytags", (ArgumentQueue queue, Context ctx) -> Tag.selfClosingInserting(getTagStore().getTag(queue.pop().value()).asComponent()))) + .resolver(TagResolver.resolver("fancytags_internal", (ArgumentQueue queue, Context ctx) -> Tag.selfClosingInserting(getInternalTagStore().getTag(queue.pop().value()).asComponent()))) + .build() + ).build(); } return MINIMESSAGE; } diff --git a/plugin/src/main/java/dev/vatten/baserad/Tag.java b/plugin/src/main/java/dev/vatten/baserad/Tag.java index 4afbdc7..0f5ceef 100644 --- a/plugin/src/main/java/dev/vatten/baserad/Tag.java +++ b/plugin/src/main/java/dev/vatten/baserad/Tag.java @@ -38,13 +38,13 @@ public Tag(List symbols) { Component serialize(MiniMessage miniMessage) { TextComponent.Builder componentBuilder = Component.text(); - StringBuilder miniMessageBuilder = new StringBuilder(); + StringBuilder minimessageBuilder = new StringBuilder(); for(Symbol symbol : symbols) { componentBuilder.append(symbol.serialize()); - miniMessageBuilder.append(symbol.serializeMiniMessage()); + minimessageBuilder.append(symbol.serializeMiniMessage()); } this.component = componentBuilder.build(); - this.miniMessage = miniMessageBuilder.toString(); + this.miniMessage = minimessageBuilder.toString(); return this.component; } diff --git a/plugin/src/main/java/dev/vatten/baserad/symbols/AtlasSymbol.java b/plugin/src/main/java/dev/vatten/baserad/symbols/AtlasSymbol.java index acae383..ff4822c 100644 --- a/plugin/src/main/java/dev/vatten/baserad/symbols/AtlasSymbol.java +++ b/plugin/src/main/java/dev/vatten/baserad/symbols/AtlasSymbol.java @@ -40,6 +40,6 @@ public Component serialize() { @Override public String serializeMiniMessage() { - return ""; + return ""; } } diff --git a/plugin/src/main/java/dev/vatten/baserad/symbols/PlayerSymbol.java b/plugin/src/main/java/dev/vatten/baserad/symbols/PlayerSymbol.java index f919e5b..404f9c4 100644 --- a/plugin/src/main/java/dev/vatten/baserad/symbols/PlayerSymbol.java +++ b/plugin/src/main/java/dev/vatten/baserad/symbols/PlayerSymbol.java @@ -40,6 +40,6 @@ public Component serialize() { @Override public String serializeMiniMessage() { - return ""; + return ""; } } diff --git a/plugin/src/main/java/dev/vatten/baserad/symbols/Symbol.java b/plugin/src/main/java/dev/vatten/baserad/symbols/Symbol.java index 264a47d..b35532b 100644 --- a/plugin/src/main/java/dev/vatten/baserad/symbols/Symbol.java +++ b/plugin/src/main/java/dev/vatten/baserad/symbols/Symbol.java @@ -24,10 +24,5 @@ @Configuration public abstract class Symbol { public abstract Component serialize(); - public abstract String serializeMiniMessage(); - - protected static String quotedMiniMessageArgument(String input) { - return "'" + input.replace("\\", "\\\\").replace("'", "\\'") + "'"; - } } From d05f837be280a3ae43394fe0592dd017a08850ca Mon Sep 17 00:00:00 2001 From: UsainSrht Date: Wed, 1 Apr 2026 10:20:03 +0300 Subject: [PATCH 3/3] expose the plugin --- .../src/main/java/dev/vatten/baserad/PaperVattenPlatform.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/paper/src/main/java/dev/vatten/baserad/PaperVattenPlatform.java b/paper/src/main/java/dev/vatten/baserad/PaperVattenPlatform.java index 16669d5..78469a5 100644 --- a/paper/src/main/java/dev/vatten/baserad/PaperVattenPlatform.java +++ b/paper/src/main/java/dev/vatten/baserad/PaperVattenPlatform.java @@ -115,4 +115,8 @@ public void onPlayerLeave(PlayerQuitEvent event) { public void onPlayerLoadedIn(PlayerClientLoadedWorldEvent event) { plugin.getEventHandler().dispatchEvent(new PlayerLoadInEvent(wrapPlayer(event.getPlayer()))); } + + public VattenPlugin getPlugin() { + return this.plugin; + } }