9
0
mirror of https://github.com/Xiao-MoMi/Custom-Nameplates.git synced 2025-12-19 15:09:23 +00:00
This commit is contained in:
Xiao-MoMi
2022-10-29 20:56:00 +08:00
parent 4a4bdd9404
commit e06034e17d
10 changed files with 129 additions and 16 deletions

View File

@@ -4,7 +4,7 @@ plugins {
}
group = 'net.momirealms'
version = '2.1.1'
version = '2.1.2'
repositories {
mavenCentral()

View File

@@ -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));

View File

@@ -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;

View File

@@ -79,7 +79,7 @@ public class ActionBarTask {
}
}
AdventureUtil.playerActionbar(player, PlaceholderAPI.setPlaceholders(player, text));
AdventureUtil.playerActionbar(player, AdventureUtil.replaceLegacy(PlaceholderAPI.setPlaceholders(player, text)));
}
}
}

View File

@@ -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());

View File

@@ -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));

View File

@@ -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;

View File

@@ -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();
}
}

View File

@@ -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;

View File

@@ -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>'