diff --git a/api/src/main/java/net/momirealms/customnameplates/api/feature/bubble/BubbleConfig.java b/api/src/main/java/net/momirealms/customnameplates/api/feature/bubble/BubbleConfig.java index 9a99f7e..77e1780 100644 --- a/api/src/main/java/net/momirealms/customnameplates/api/feature/bubble/BubbleConfig.java +++ b/api/src/main/java/net/momirealms/customnameplates/api/feature/bubble/BubbleConfig.java @@ -17,6 +17,7 @@ package net.momirealms.customnameplates.api.feature.bubble; +import net.momirealms.customnameplates.api.feature.PreParsedDynamicText; import net.momirealms.customnameplates.api.util.Vector3; /** @@ -64,14 +65,14 @@ public interface BubbleConfig { * * @return the text prefix */ - String textPrefix(); + PreParsedDynamicText textPrefix(); /** * Returns the text suffix to be applied after the Bubble content. * * @return the text suffix */ - String textSuffix(); + PreParsedDynamicText textSuffix(); /** * Returns the display name of the Bubble. diff --git a/api/src/main/java/net/momirealms/customnameplates/api/feature/bubble/BubbleConfigImpl.java b/api/src/main/java/net/momirealms/customnameplates/api/feature/bubble/BubbleConfigImpl.java index 7e7e54a..0958cf1 100644 --- a/api/src/main/java/net/momirealms/customnameplates/api/feature/bubble/BubbleConfigImpl.java +++ b/api/src/main/java/net/momirealms/customnameplates/api/feature/bubble/BubbleConfigImpl.java @@ -17,6 +17,7 @@ package net.momirealms.customnameplates.api.feature.bubble; +import net.momirealms.customnameplates.api.feature.PreParsedDynamicText; import net.momirealms.customnameplates.api.util.Vector3; import static java.util.Objects.requireNonNull; @@ -30,8 +31,8 @@ public class BubbleConfigImpl implements BubbleConfig { private final int lineWidth; private final int maxLines; private final Bubble[] bubbles; - private final String textPrefix; - private final String textSuffix; + private final PreParsedDynamicText textPrefix; + private final PreParsedDynamicText textSuffix; private final String displayName; private final Vector3 scale; @@ -54,8 +55,8 @@ public class BubbleConfigImpl implements BubbleConfig { this.maxLines = maxLines; this.id = id; this.bubbles = requireNonNull(bubbles); - this.textPrefix = requireNonNull(textPrefix); - this.textSuffix = requireNonNull(textSuffix); + this.textPrefix = new PreParsedDynamicText(requireNonNull(textPrefix), true); + this.textSuffix = new PreParsedDynamicText(requireNonNull(textSuffix), true); this.displayName = requireNonNull(displayName); this.scale = requireNonNull(scale); } @@ -86,12 +87,12 @@ public class BubbleConfigImpl implements BubbleConfig { } @Override - public String textPrefix() { + public PreParsedDynamicText textPrefix() { return textPrefix; } @Override - public String textSuffix() { + public PreParsedDynamicText textSuffix() { return textSuffix; } diff --git a/backend/src/main/java/net/momirealms/customnameplates/backend/feature/bubble/BubbleManagerImpl.java b/backend/src/main/java/net/momirealms/customnameplates/backend/feature/bubble/BubbleManagerImpl.java index 8182ad7..3b95afe 100644 --- a/backend/src/main/java/net/momirealms/customnameplates/backend/feature/bubble/BubbleManagerImpl.java +++ b/backend/src/main/java/net/momirealms/customnameplates/backend/feature/bubble/BubbleManagerImpl.java @@ -32,9 +32,7 @@ import it.unimi.dsi.fastutil.objects.ObjectArrayList; import net.momirealms.customnameplates.api.CNPlayer; import net.momirealms.customnameplates.api.ConfigManager; import net.momirealms.customnameplates.api.CustomNameplates; -import net.momirealms.customnameplates.api.feature.ChatListener; -import net.momirealms.customnameplates.api.feature.ConfiguredCharacter; -import net.momirealms.customnameplates.api.feature.OffsetFont; +import net.momirealms.customnameplates.api.feature.*; import net.momirealms.customnameplates.api.feature.bubble.Bubble; import net.momirealms.customnameplates.api.feature.bubble.BubbleConfig; import net.momirealms.customnameplates.api.feature.bubble.BubbleManager; @@ -304,7 +302,7 @@ public class BubbleManagerImpl implements BubbleManager, ChatListener { return; } - String fullText = config.textPrefix() + AdventureHelper.stripTags(message.replace("\\", "\\\\")) + config.textSuffix(); + String fullText = config.textPrefix().fastCreate(player).render(player) + AdventureHelper.stripTags(message.replace("\\", "\\\\")) + config.textSuffix().fastCreate(player).render(player); int lines = plugin.getAdvanceManager().getLines(fullText, config.lineWidth()); if (lines > config.maxLines()) return; if (lines <= 0) return; diff --git a/platforms/bukkit/compatibility/build.gradle.kts b/platforms/bukkit/compatibility/build.gradle.kts index 098ec52..ee76036 100644 --- a/platforms/bukkit/compatibility/build.gradle.kts +++ b/platforms/bukkit/compatibility/build.gradle.kts @@ -12,6 +12,7 @@ repositories { maven("https://repo.md-5.net/content/groups/public/") // disguise maven("https://repo.opencollab.dev/main/") // geyser maven("https://maven.enginehub.org/repo/") // worldguard worldedit + maven("https://repo.alessiodp.com/releases/") // parties } dependencies { @@ -33,6 +34,8 @@ dependencies { compileOnly("net.william278.huskchat:huskchat-bukkit:3.0.4") compileOnly("net.essentialsx:EssentialsX:2.20.1") compileOnly("net.essentialsx:EssentialsXChat:2.20.1") + compileOnly("com.alessiodp.parties:parties-api:3.2.16") + compileOnly("com.alessiodp.parties:parties-bukkit:3.2.16") // compileOnly("com.github.Brikster:Chatty:v2.19.14") compileOnly(files("libs/Chatty-3.0.0-SNAPSHOT.jar")) // Emoji diff --git a/platforms/bukkit/compatibility/src/main/java/net/momirealms/customnameplates/bukkit/compatibility/NameplatesExtraExpansion.java b/platforms/bukkit/compatibility/src/main/java/net/momirealms/customnameplates/bukkit/compatibility/NameplatesExtraExpansion.java index 1ac4ab2..46a3120 100644 --- a/platforms/bukkit/compatibility/src/main/java/net/momirealms/customnameplates/bukkit/compatibility/NameplatesExtraExpansion.java +++ b/platforms/bukkit/compatibility/src/main/java/net/momirealms/customnameplates/bukkit/compatibility/NameplatesExtraExpansion.java @@ -34,6 +34,7 @@ import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import javax.imageio.ImageIO; import java.util.HashMap; import java.util.Locale; import java.util.Map; diff --git a/platforms/bukkit/compatibility/src/main/java/net/momirealms/customnameplates/bukkit/compatibility/chat/PartiesChatProvider.java b/platforms/bukkit/compatibility/src/main/java/net/momirealms/customnameplates/bukkit/compatibility/chat/PartiesChatProvider.java new file mode 100644 index 0000000..d1f83fc --- /dev/null +++ b/platforms/bukkit/compatibility/src/main/java/net/momirealms/customnameplates/bukkit/compatibility/chat/PartiesChatProvider.java @@ -0,0 +1,36 @@ +package net.momirealms.customnameplates.bukkit.compatibility.chat; + +import com.alessiodp.parties.api.events.bukkit.player.BukkitPartiesPlayerPreChatEvent; +import net.momirealms.customnameplates.api.CNPlayer; +import net.momirealms.customnameplates.api.CustomNameplates; +import net.momirealms.customnameplates.api.feature.chat.AbstractChatMessageProvider; +import net.momirealms.customnameplates.api.feature.chat.ChatManager; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + +public class PartiesChatProvider extends AbstractChatMessageProvider implements Listener { + + public PartiesChatProvider(CustomNameplates plugin, ChatManager manager) { + super(plugin, manager); + } + + @Override + public boolean hasJoinedChannel(CNPlayer player, String channelID) { + return false; + } + + @Override + public boolean canJoinChannel(CNPlayer player, String channelID) { + return false; + } + + @Override + public boolean isIgnoring(CNPlayer sender, CNPlayer receiver) { + return false; + } + + @EventHandler + public void onPlayerChat(BukkitPartiesPlayerPreChatEvent event) { + + } +} diff --git a/platforms/bukkit/src/main/java/net/momirealms/customnameplates/bukkit/BukkitCustomNameplates.java b/platforms/bukkit/src/main/java/net/momirealms/customnameplates/bukkit/BukkitCustomNameplates.java index 680c22b..b0f51da 100644 --- a/platforms/bukkit/src/main/java/net/momirealms/customnameplates/bukkit/BukkitCustomNameplates.java +++ b/platforms/bukkit/src/main/java/net/momirealms/customnameplates/bukkit/BukkitCustomNameplates.java @@ -44,6 +44,7 @@ import net.momirealms.customnameplates.bukkit.compatibility.quest.TypeWriterList import net.momirealms.customnameplates.bukkit.compatibility.region.WorldGuardRegion; import net.momirealms.customnameplates.bukkit.requirement.BukkitRequirementManager; import net.momirealms.customnameplates.bukkit.scheduler.BukkitSchedulerAdapter; +import net.momirealms.customnameplates.bukkit.util.Reflections; import net.momirealms.customnameplates.bukkit.util.SimpleLocation; import net.momirealms.customnameplates.common.dependency.Dependency; import net.momirealms.customnameplates.common.dependency.DependencyManagerImpl; @@ -128,6 +129,7 @@ public class BukkitCustomNameplates extends CustomNameplates implements Listener Dependency.LWJGL, Dependency.LWJGL_NATIVES, Dependency.LWJGL_FREETYPE, Dependency.LWJGL_FREETYPE_NATIVES ) ); + Reflections.load(); } @Override diff --git a/platforms/bukkit/src/main/java/net/momirealms/customnameplates/bukkit/util/Reflections.java b/platforms/bukkit/src/main/java/net/momirealms/customnameplates/bukkit/util/Reflections.java index 249275a..eccd291 100644 --- a/platforms/bukkit/src/main/java/net/momirealms/customnameplates/bukkit/util/Reflections.java +++ b/platforms/bukkit/src/main/java/net/momirealms/customnameplates/bukkit/util/Reflections.java @@ -30,6 +30,8 @@ import static java.util.Objects.requireNonNull; public class Reflections { + public static void load() {} + public static final Class clazz$Component = requireNonNull( ReflectionUtils.getClazz( BukkitReflectionUtils.assembleMCClass("network.chat.Component"),