9
0
mirror of https://github.com/Xiao-MoMi/Custom-Nameplates.git synced 2026-01-04 15:31:47 +00:00
This commit is contained in:
Xiao-MoMi
2023-05-06 15:49:36 +08:00
parent 5777a3f995
commit 167f74c3b8
8 changed files with 114 additions and 34 deletions

View File

@@ -70,9 +70,10 @@ public class ForcePreviewCommand extends AbstractSubCommand {
.append(Component.text(player.getName()).color(TextColor.color(AdventureUtils.colorToDecimal(nameplateConfig.color()))).font(Key.key("minecraft:default"))
.append(MiniMessage.miniMessage().deserialize(suffixImage)));
ArmorStandUtils.preview(holoComponent, player, (int) nameplateManager.getPreview_time());
}
else {
} else if (nameplateManager.getMode() == DisplayMode.ARMOR_STAND) {
nameplateManager.showPlayerArmorStandTags(player, nameplate);
} else {
AdventureUtils.sendMessage(sender, MessageManager.prefix + "<white>Nameplate is disabled.");
}
return true;
}

View File

@@ -57,9 +57,11 @@ public class PreviewCommand extends AbstractSubCommand {
.append(team.getNameplateSuffixComponent()));
ArmorStandUtils.preview(full, player, (int) nameplateManager.getPreview_time());
}
}
else {
} else if (nameplateManager.getMode() == DisplayMode.ARMOR_STAND) {
nameplateManager.showPlayerArmorStandTags(player);
} else {
AdventureUtils.playerMessage(player, MessageManager.prefix + "<white>Nameplate is disabled.");
return true;
}
AdventureUtils.playerMessage(player, MessageManager.prefix + MessageManager.preview);
return true;

View File

@@ -26,6 +26,7 @@ import net.momirealms.customnameplates.object.armorstand.ArmorStandManager;
import net.momirealms.customnameplates.object.font.OffsetFont;
import net.momirealms.customnameplates.object.nameplate.NameplateConfig;
import net.momirealms.customnameplates.object.nameplate.mode.AbstractNameplateTag;
import net.momirealms.customnameplates.object.nameplate.mode.DisableNameplate;
import net.momirealms.customnameplates.object.nameplate.mode.DisplayMode;
import net.momirealms.customnameplates.object.nameplate.mode.EntityTag;
import net.momirealms.customnameplates.object.nameplate.mode.armorstand.ArmorStandTag;
@@ -161,6 +162,8 @@ public class NameplateManager extends Function {
contentMap.put(new ConditionalText(requirements, text), offset);
}
}
} else if (mode == DisplayMode.DISABLE) {
this.nameplateTag = new DisableNameplate(plugin);
}
plugin.getTeamManager().setTeamPacketInterface();
if (this.nameplateTag != null) {

View File

@@ -0,0 +1,41 @@
package net.momirealms.customnameplates.object.nameplate.mode;
import net.momirealms.customnameplates.CustomNameplates;
import org.bukkit.entity.Player;
public class DisableNameplate extends AbstractNameplateTag {
public DisableNameplate(CustomNameplates plugin) {
super(plugin);
}
@Override
public void load() {
}
@Override
public void unload() {
}
@Override
public void onJoin(Player player) {
}
@Override
public void onQuit(Player player) {
}
@Override
public void arrangeRefreshTask() {
}
@Override
public void loadToAllPlayers() {
}
}

View File

@@ -19,5 +19,6 @@ package net.momirealms.customnameplates.object.nameplate.mode;
public enum DisplayMode {
TEAM,
ARMOR_STAND
ARMOR_STAND,
DISABLE
}

View File

@@ -55,37 +55,65 @@ public class AdventureUtils {
au.sendActionBar(component);
}
public static String replaceLegacy(String str) {
public static String replaceLegacy(String legacy) {
StringBuilder stringBuilder = new StringBuilder();
char[] chars = str.replace("&","§").toCharArray();
char[] chars = legacy.toCharArray();
for (int i = 0; i < chars.length; i++) {
if (chars[i] == '§') {
if (isColorCode(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 'k' -> {i++;stringBuilder.append("<obfuscated>");}
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 '0' -> stringBuilder.append("<black>");
case '1' -> stringBuilder.append("<dark_blue>");
case '2' -> stringBuilder.append("<dark_green>");
case '3' -> stringBuilder.append("<dark_aqua>");
case '4' -> stringBuilder.append("<dark_red>");
case '5' -> stringBuilder.append("<dark_purple>");
case '6' -> stringBuilder.append("<gold>");
case '7' -> stringBuilder.append("<gray>");
case '8' -> stringBuilder.append("<dark_gray>");
case '9' -> stringBuilder.append("<blue>");
case 'a' -> stringBuilder.append("<green>");
case 'b' -> stringBuilder.append("<aqua>");
case 'c' -> stringBuilder.append("<red>");
case 'd' -> stringBuilder.append("<light_purple>");
case 'e' -> stringBuilder.append("<yellow>");
case 'f' -> stringBuilder.append("<white>");
case 'r' -> stringBuilder.append("<reset><!italic>");
case 'l' -> stringBuilder.append("<bold>");
case 'm' -> stringBuilder.append("<strikethrough>");
case 'o' -> stringBuilder.append("<italic>");
case 'n' -> stringBuilder.append("<underlined>");
case 'k' -> stringBuilder.append("<obfuscated>");
case 'x' -> {
if (i + 13 >= chars.length
|| !isColorCode(chars[i+2])
|| !isColorCode(chars[i+4])
|| !isColorCode(chars[i+6])
|| !isColorCode(chars[i+8])
|| !isColorCode(chars[i+10])
|| !isColorCode(chars[i+12])) {
stringBuilder.append(chars[i]);
continue;
}
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;
}
default -> {
stringBuilder.append(chars[i]);
continue;
}
}
i++;
} else {
stringBuilder.append(chars[i]);
}
}
else {
@@ -95,6 +123,10 @@ public class AdventureUtils {
return stringBuilder.toString();
}
private static boolean isColorCode(char c) {
return c == '§' || c == '&';
}
public static int colorToDecimal(ChatColor color){
switch (String.valueOf(color.getChar())){
case "0" -> {return 0;}

View File

@@ -1,5 +1,5 @@
# mode: Team / Armor_Stand
# 模式 队伍/盔甲架
# mode: Team / Armor_Stand / Disable
# 模式 队伍/盔甲架/禁用
mode: Team
# Disable this when you are running a BungeeCord server