mirror of
https://github.com/Xiao-MoMi/Custom-Nameplates.git
synced 2025-12-19 15:09:23 +00:00
2.1.2
This commit is contained in:
@@ -4,7 +4,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = 'net.momirealms'
|
||||
version = '2.1.1'
|
||||
version = '2.1.2'
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
||||
@@ -64,8 +64,8 @@ public class ForcePreviewCommand extends AbstractSubCommand {
|
||||
AdventureUtil.sendMessage(sender, MessageManager.prefix + MessageManager.np_not_exist);
|
||||
return true;
|
||||
}
|
||||
String playerPrefix = NameplateManager.hidePrefix ? "" : CustomNameplates.plugin.getPlaceholderManager().parsePlaceholders(player, NameplateManager.player_prefix);
|
||||
String playerSuffix = NameplateManager.hideSuffix ? "" : CustomNameplates.plugin.getPlaceholderManager().parsePlaceholders(player, NameplateManager.player_suffix);
|
||||
String playerPrefix = NameplateManager.hidePrefix ? "" : AdventureUtil.replaceLegacy(CustomNameplates.plugin.getPlaceholderManager().parsePlaceholders(player, NameplateManager.player_prefix));
|
||||
String playerSuffix = NameplateManager.hideSuffix ? "" : AdventureUtil.replaceLegacy(CustomNameplates.plugin.getPlaceholderManager().parsePlaceholders(player, NameplateManager.player_suffix));
|
||||
Component prefix = Component.text(CustomNameplates.plugin.getNameplateManager().makeCustomNameplate(MiniMessage.miniMessage().stripTags(playerPrefix), args.get(0), MiniMessage.miniMessage().stripTags(playerSuffix), nameplateConfig)).font(ConfigManager.key).append(MiniMessage.miniMessage().deserialize(playerPrefix));
|
||||
Component suffix = MiniMessage.miniMessage().deserialize(playerSuffix).append(Component.text(CustomNameplates.plugin.getNameplateManager().getSuffixChar(MiniMessage.miniMessage().stripTags(playerPrefix) + args.get(0) + MiniMessage.miniMessage().stripTags(playerSuffix))).font(ConfigManager.key));
|
||||
Component full = prefix.append(Component.text(player.getName()).color(TextColor.color(color2decimal(nameplateConfig.color()))).font(Key.key("default")).append(suffix));
|
||||
|
||||
@@ -35,6 +35,7 @@ import net.momirealms.customnameplates.objects.nameplates.BubbleConfig;
|
||||
import net.momirealms.customnameplates.objects.nameplates.FakeArmorStand;
|
||||
import net.momirealms.customnameplates.objects.nameplates.mode.EntityTag;
|
||||
import net.momirealms.customnameplates.objects.nameplates.mode.bubbles.BBPacketsHandle;
|
||||
import net.momirealms.customnameplates.utils.AdventureUtil;
|
||||
import net.momirealms.customnameplates.utils.ConfigUtil;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.GameMode;
|
||||
@@ -173,6 +174,8 @@ public class ChatBubblesManager extends EntityTag {
|
||||
return;
|
||||
}
|
||||
|
||||
text = AdventureUtil.replaceLegacy(text);
|
||||
|
||||
BubbleConfig bubbleConfig = ResourceManager.BUBBLES.get(bubblesEvent.getBubble());
|
||||
WrappedChatComponent wrappedChatComponent;
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ public class ActionBarTask {
|
||||
}
|
||||
}
|
||||
|
||||
AdventureUtil.playerActionbar(player, PlaceholderAPI.setPlaceholders(player, text));
|
||||
AdventureUtil.playerActionbar(player, AdventureUtil.replaceLegacy(PlaceholderAPI.setPlaceholders(player, text)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,7 +115,7 @@ public class BossBarSender {
|
||||
PacketContainer packet = new PacketContainer(PacketType.Play.Server.BOSS);
|
||||
packet.getModifier().write(0, uuid);
|
||||
InternalStructure internalStructure = packet.getStructures().read(1);
|
||||
internalStructure.getChatComponents().write(0, WrappedChatComponent.fromJson(GsonComponentSerializer.gson().serialize(MiniMessage.miniMessage().deserialize(text.getLatestValue()))));
|
||||
internalStructure.getChatComponents().write(0, WrappedChatComponent.fromJson(GsonComponentSerializer.gson().serialize(MiniMessage.miniMessage().deserialize(AdventureUtil.replaceLegacy(text.getLatestValue())))));
|
||||
internalStructure.getFloat().write(0,1F);
|
||||
internalStructure.getEnumModifier(BarColor.class, 2).write(0, config.getColor());
|
||||
internalStructure.getEnumModifier(Overlay.class, 3).write(0, config.getOverlay());
|
||||
|
||||
@@ -27,6 +27,7 @@ import net.momirealms.customnameplates.CustomNameplates;
|
||||
import net.momirealms.customnameplates.manager.ChatBubblesManager;
|
||||
import net.momirealms.customnameplates.manager.NameplateManager;
|
||||
import net.momirealms.customnameplates.objects.TextCache;
|
||||
import net.momirealms.customnameplates.utils.AdventureUtil;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
@@ -258,7 +259,7 @@ public class FakeArmorStand implements ArmorStand {
|
||||
WrappedDataWatcher.Serializer serializer2 = WrappedDataWatcher.Registry.get(Byte.class);
|
||||
//设置名称
|
||||
if (dynamic) {
|
||||
wrappedDataWatcher.setObject(new WrappedDataWatcher.WrappedDataWatcherObject(2, WrappedDataWatcher.Registry.getChatComponentSerializer(true)), Optional.of(WrappedChatComponent.fromJson(GsonComponentSerializer.gson().serialize(MiniMessage.miniMessage().deserialize(text))).getHandle()));
|
||||
wrappedDataWatcher.setObject(new WrappedDataWatcher.WrappedDataWatcherObject(2, WrappedDataWatcher.Registry.getChatComponentSerializer(true)), Optional.of(WrappedChatComponent.fromJson(GsonComponentSerializer.gson().serialize(MiniMessage.miniMessage().deserialize(AdventureUtil.replaceLegacy(text)))).getHandle()));
|
||||
}
|
||||
else {
|
||||
wrappedDataWatcher.setObject(new WrappedDataWatcher.WrappedDataWatcherObject(2, WrappedDataWatcher.Registry.getChatComponentSerializer(true)), Optional.of(wrappedChatComponent));
|
||||
|
||||
@@ -23,6 +23,7 @@ import net.momirealms.customnameplates.CustomNameplates;
|
||||
import net.momirealms.customnameplates.manager.ConfigManager;
|
||||
import net.momirealms.customnameplates.manager.NameplateManager;
|
||||
import net.momirealms.customnameplates.manager.TeamManager;
|
||||
import net.momirealms.customnameplates.utils.AdventureUtil;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -66,8 +67,8 @@ public class NameplatesTeam {
|
||||
String nameplate = CustomNameplates.plugin.getDataManager().getPlayerData(this.player).getEquippedNameplate();
|
||||
|
||||
if (nameplate.equals("none")) {
|
||||
this.prefix = MiniMessage.miniMessage().deserialize(CustomNameplates.plugin.getPlaceholderManager().parsePlaceholders(this.player, NameplateManager.player_prefix));
|
||||
this.suffix = MiniMessage.miniMessage().deserialize(CustomNameplates.plugin.getPlaceholderManager().parsePlaceholders(this.player, NameplateManager.player_suffix));
|
||||
this.prefix = MiniMessage.miniMessage().deserialize(AdventureUtil.replaceLegacy(CustomNameplates.plugin.getPlaceholderManager().parsePlaceholders(this.player, NameplateManager.player_prefix)));
|
||||
this.suffix = MiniMessage.miniMessage().deserialize(AdventureUtil.replaceLegacy(CustomNameplates.plugin.getPlaceholderManager().parsePlaceholders(this.player, NameplateManager.player_suffix)));
|
||||
|
||||
this.prefixText = CustomNameplates.plugin.getPlaceholderManager().parsePlaceholders(this.player, NameplateManager.player_prefix);
|
||||
this.suffixText = CustomNameplates.plugin.getPlaceholderManager().parsePlaceholders(this.player, NameplateManager.player_suffix);
|
||||
@@ -91,9 +92,9 @@ public class NameplatesTeam {
|
||||
String playerPrefix;
|
||||
String playerSuffix;
|
||||
|
||||
if (!NameplateManager.hidePrefix) playerPrefix = CustomNameplates.plugin.getPlaceholderManager().parsePlaceholders(this.player, NameplateManager.player_prefix);
|
||||
if (!NameplateManager.hidePrefix) playerPrefix = AdventureUtil.replaceLegacy(CustomNameplates.plugin.getPlaceholderManager().parsePlaceholders(this.player, NameplateManager.player_prefix));
|
||||
else playerPrefix = "";
|
||||
if (!NameplateManager.hideSuffix) playerSuffix = CustomNameplates.plugin.getPlaceholderManager().parsePlaceholders(this.player, NameplateManager.player_suffix);
|
||||
if (!NameplateManager.hideSuffix) playerSuffix = AdventureUtil.replaceLegacy(CustomNameplates.plugin.getPlaceholderManager().parsePlaceholders(this.player, NameplateManager.player_suffix));
|
||||
else playerSuffix = "";
|
||||
|
||||
this.dynamic = playerPrefix + playerSuffix;
|
||||
|
||||
@@ -35,20 +35,130 @@ public class AdventureUtil {
|
||||
public static void consoleMessage(String s) {
|
||||
Audience au = CustomNameplates.adventure.sender(Bukkit.getConsoleSender());
|
||||
MiniMessage mm = MiniMessage.miniMessage();
|
||||
Component parsed = mm.deserialize(s);
|
||||
Component parsed = mm.deserialize(replaceLegacy(s));
|
||||
au.sendMessage(parsed);
|
||||
}
|
||||
|
||||
public static void playerMessage(Player player, String s){
|
||||
Audience au = CustomNameplates.adventure.player(player);
|
||||
MiniMessage mm = MiniMessage.miniMessage();
|
||||
Component parsed = mm.deserialize(s);
|
||||
Component parsed = mm.deserialize(replaceLegacy(s));
|
||||
au.sendMessage(parsed);
|
||||
}
|
||||
|
||||
public static void playerActionbar(Player player, String s) {
|
||||
Audience au = CustomNameplates.adventure.player(player);
|
||||
MiniMessage mm = MiniMessage.miniMessage();
|
||||
au.sendActionBar(mm.deserialize(s));
|
||||
au.sendActionBar(mm.deserialize(replaceLegacy(s)));
|
||||
}
|
||||
|
||||
public static String replaceLegacy(String s) {
|
||||
if (!(s.contains("&") || s.contains("§"))) return s;
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
char[] chars = s.replaceAll("&","§").toCharArray();
|
||||
for (int i = 0; i < chars.length; i++) {
|
||||
if (chars[i] == '§') {
|
||||
if (i + 1 < chars.length) {
|
||||
switch (chars[i+1]){
|
||||
case '0' -> {
|
||||
i++;
|
||||
stringBuilder.append("<black>");
|
||||
}
|
||||
case '1' -> {
|
||||
i++;
|
||||
stringBuilder.append("<dark_blue>");
|
||||
}
|
||||
case '2' -> {
|
||||
i++;
|
||||
stringBuilder.append("<dark_green>");
|
||||
}
|
||||
case '3' -> {
|
||||
i++;
|
||||
stringBuilder.append("<dark_aqua>");
|
||||
}
|
||||
case '4' -> {
|
||||
i++;
|
||||
stringBuilder.append("<dark_red>");
|
||||
}
|
||||
case '5' -> {
|
||||
i++;
|
||||
stringBuilder.append("<dark_purple>");
|
||||
}
|
||||
case '6' -> {
|
||||
i++;
|
||||
stringBuilder.append("<gold>");
|
||||
}
|
||||
case '7' -> {
|
||||
i++;
|
||||
stringBuilder.append("<gray>");
|
||||
}
|
||||
case '8' -> {
|
||||
i++;
|
||||
stringBuilder.append("<dark_gray>");
|
||||
}
|
||||
case '9' -> {
|
||||
i++;
|
||||
stringBuilder.append("<blue>");
|
||||
}
|
||||
case 'a' -> {
|
||||
i++;
|
||||
stringBuilder.append("<green>");
|
||||
}
|
||||
case 'b' -> {
|
||||
i++;
|
||||
stringBuilder.append("<aqua>");
|
||||
}
|
||||
case 'c' -> {
|
||||
i++;
|
||||
stringBuilder.append("<red>");
|
||||
}
|
||||
case 'd' -> {
|
||||
i++;
|
||||
stringBuilder.append("<light_purple>");
|
||||
}
|
||||
case 'e' -> {
|
||||
i++;
|
||||
stringBuilder.append("<yellow>");
|
||||
}
|
||||
case 'f' -> {
|
||||
i++;
|
||||
stringBuilder.append("<white>");
|
||||
}
|
||||
case 'r' -> {
|
||||
i++;
|
||||
stringBuilder.append("<reset><!italic>");
|
||||
}
|
||||
case 'l' -> {
|
||||
i++;
|
||||
stringBuilder.append("<bold>");
|
||||
}
|
||||
case 'm' -> {
|
||||
i++;
|
||||
stringBuilder.append("<strikethrough>");
|
||||
}
|
||||
case 'o' -> {
|
||||
i++;
|
||||
stringBuilder.append("<italic>");
|
||||
}
|
||||
case 'n' -> {
|
||||
i++;
|
||||
stringBuilder.append("<underlined>");
|
||||
}
|
||||
case 'x' -> {
|
||||
stringBuilder.append("<#").append(chars[i+3]).append(chars[i+5]).append(chars[i+7]).append(chars[i+9]).append(chars[i+11]).append(chars[i+13]).append(">");
|
||||
i += 13;
|
||||
}
|
||||
case 'k' -> {
|
||||
i++;
|
||||
stringBuilder.append("<obfuscated>");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
stringBuilder.append(chars[i]);
|
||||
}
|
||||
}
|
||||
return stringBuilder.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@ import net.momirealms.customnameplates.manager.TeamManager;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.world.WorldLoadEvent;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.Collections;
|
||||
|
||||
@@ -39,10 +39,7 @@ nameplate:
|
||||
# Placeholder based prefix and suffix system. When enabled, it is recommended
|
||||
# to use PlaceholderAPI to be able to use this feature to the fullest extent.
|
||||
# keep it empty if you don't want to enable this feature.
|
||||
# You should make sure the papi doesn't contain "&" (legacy color code)
|
||||
# Nameplates work on the custom font system where legacy color code is not supported!
|
||||
# Please use MiniMessage format: https://docs.adventure.kyori.net/minimessage/format.html
|
||||
# keep in mind that %nameplates_prefix/suffix% would only return the nameplate unicode without prefix and suffix
|
||||
prefix: '<font:minecraft:default><rainbow>Hello! </rainbow></font>'
|
||||
suffix: '<font:minecraft:default> <red>%player_health_rounded%♥</font>'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user