going on an adventure

This commit is contained in:
2022-06-16 23:52:30 +02:00
parent 6fd3e4b671
commit b99c14b631
7 changed files with 135 additions and 69 deletions
+23
View File
@@ -127,5 +127,28 @@
<version>2.11.1</version> <version>2.11.1</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-api</artifactId>
<version>4.11.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-platform-bukkit</artifactId>
<version>4.1.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-text-minimessage</artifactId>
<version>4.11.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>net.kyori</groupId>
<artifactId>adventure-text-serializer-legacy</artifactId>
<version>4.11.0</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
@@ -11,6 +11,7 @@ import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import me.youhavetrouble.preventstabby.util.DatabaseSQLite; import me.youhavetrouble.preventstabby.util.DatabaseSQLite;
import lombok.Getter; import lombok.Getter;
import me.youhavetrouble.preventstabby.util.Util; import me.youhavetrouble.preventstabby.util.Util;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bstats.bukkit.Metrics; import org.bstats.bukkit.Metrics;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.PluginCommand; import org.bukkit.command.PluginCommand;
@@ -29,6 +30,8 @@ public final class PreventStabby extends JavaPlugin {
private SmartCache smartCache; private SmartCache smartCache;
private static boolean worldGuardHook; private static boolean worldGuardHook;
private static BukkitAudiences adventure;
@Override @Override
public void onEnable() { public void onEnable() {
plugin = this; plugin = this;
@@ -43,6 +46,7 @@ public final class PreventStabby extends JavaPlugin {
getServer().getPluginManager().disablePlugin(this); getServer().getPluginManager().disablePlugin(this);
return; return;
} }
adventure = BukkitAudiences.create(this);
playerManager = new PlayerManager(); playerManager = new PlayerManager();
smartCache = new SmartCache(); smartCache = new SmartCache();
smartCache.runSmartCache(); smartCache.runSmartCache();
@@ -114,4 +118,8 @@ public final class PreventStabby extends JavaPlugin {
public SmartCache getSmartCache() { public SmartCache getSmartCache() {
return smartCache; return smartCache;
} }
public static BukkitAudiences getAudiences() {
return adventure;
}
} }
@@ -3,24 +3,27 @@ package me.youhavetrouble.preventstabby.commands;
import me.youhavetrouble.preventstabby.PreventStabby; import me.youhavetrouble.preventstabby.PreventStabby;
import me.youhavetrouble.preventstabby.config.PreventStabbyPermission; import me.youhavetrouble.preventstabby.config.PreventStabbyPermission;
import me.youhavetrouble.preventstabby.util.PluginMessages; import me.youhavetrouble.preventstabby.util.PluginMessages;
import net.kyori.adventure.audience.MessageType;
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import java.util.ArrayList;
import java.util.List;
public class HelpCommand { public class HelpCommand {
// TODO change this to be 1 component when transitioning to adventure
public static void help(CommandSender sender, String[] args) { public static void help(CommandSender sender, String[] args) {
Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> { Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> {
List<String> helpPage = new ArrayList<>(); Component helpComponent = PluginMessages.MINIMESSAGE
helpPage.add(PluginMessages.parseMessage("&b&m &bPreventStabby Help&b&m ")); .deserialize("<aqua><strikethrough> </strikethrough> PreventStabby Help <strikethrough> </strikethrough>")
helpPage.add(PluginMessages.parseMessage("&9/pvp &b&lhelp &f- shows this message")); .append(Component.newline())
.append(PluginMessages.MINIMESSAGE.deserialize("<blue>/pvp <aqua><bold>help</bold> <white>- shows this message"));
if (PreventStabbyPermission.COMMAND_TOGGLE.doesCommandSenderHave(sender)) { if (PreventStabbyPermission.COMMAND_TOGGLE.doesCommandSenderHave(sender)) {
helpPage.add(PluginMessages.parseMessage("&9/pvp &b&l[on/off] &f- enables or disables PvP")); helpComponent = helpComponent.append(Component.newline());
helpPage.add(PluginMessages.parseMessage("&9/pvp &b&ltoggle &f- toggles PvP status")); helpComponent = helpComponent
.append(PluginMessages.MINIMESSAGE.deserialize("<blue>/pvp <aqua><bold>[on/off]</bold> <white>- enables or disables PvP"))
.append(Component.newline())
.append(PluginMessages.MINIMESSAGE.deserialize("<blue>/pvp <aqua><bold>toggle</bold> <white>- toggles PvP status"));
} }
String[] helpReady = helpPage.toArray(new String[0]); PreventStabby.getAudiences().sender(sender).sendMessage(helpComponent, MessageType.SYSTEM);
sender.sendMessage(helpReady);
}); });
} }
@@ -26,13 +26,11 @@ public class PvpToggleCommand {
} }
boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId()); boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
String message;
if (currentState) { if (currentState) {
message = PluginMessages.parseMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_enabled()); PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_enabled());
} else { } else {
message = PluginMessages.parseMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_disabled()); PluginMessages.sendMessage(sender, PreventStabby.getPlugin().getConfigCache().getPvp_disabled());
} }
PluginMessages.sendMessage(sender, message);
} else { } else {
PluginMessages.sendMessage(sender, "Try /pvp toggle <player>"); PluginMessages.sendMessage(sender, "Try /pvp toggle <player>");
} }
@@ -51,7 +49,7 @@ public class PvpToggleCommand {
Player player = Bukkit.getPlayer(args[1]); Player player = Bukkit.getPlayer(args[1]);
if (player == null) { if (player == null) {
PluginMessages.sendMessage(sender, "&cPlayer offline."); PluginMessages.sendMessage(sender, "<red>Player offline.");
return; return;
} }
boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId()); boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
@@ -103,7 +101,7 @@ public class PvpToggleCommand {
} }
Player player = Bukkit.getPlayer(args[1]); Player player = Bukkit.getPlayer(args[1]);
if (player == null) { if (player == null) {
PluginMessages.sendMessage(sender, PluginMessages.parseMessage("&cPlayer offline.")); PluginMessages.sendMessage(sender, "<red>Player offline.");
return; return;
} }
String message = PreventStabby.getPlugin().getConfigCache().getPvp_enabled_other(); String message = PreventStabby.getPlugin().getConfigCache().getPvp_enabled_other();
@@ -149,7 +147,7 @@ public class PvpToggleCommand {
} }
Player player = Bukkit.getPlayer(args[1]); Player player = Bukkit.getPlayer(args[1]);
if (player == null) { if (player == null) {
PluginMessages.sendMessage(sender, PluginMessages.parseMessage("&cPlayer offline.")); PluginMessages.sendMessage(sender, "<red>Player offline.");
return; return;
} }
String message = PreventStabby.getPlugin().getConfigCache().getPvp_disabled_other(); String message = PreventStabby.getPlugin().getConfigCache().getPvp_disabled_other();
@@ -51,7 +51,7 @@ public class ConfigCache {
addComment("settings.punish_for_combat_logout", "Kill the player if they log out during combat"); addComment("settings.punish_for_combat_logout", "Kill the player if they log out during combat");
addDefault("settings.punish_for_combat_logout.enabled", true); addDefault("settings.punish_for_combat_logout.enabled", true);
addDefault("settings.punish_for_combat_logout.announce", true); addDefault("settings.punish_for_combat_logout.announce", true);
addDefault("settings.punish_for_combat_logout.message", "&f%player% logged out while in combat. What a loser."); addDefault("settings.punish_for_combat_logout.message", "%player%<reset> <white>logged out while in combat. What a loser.");
addDefault("settings.snowballs_do_knockback", false, "Set to true if snowballs should cause knockback to players"); addDefault("settings.snowballs_do_knockback", false, "Set to true if snowballs should cause knockback to players");
@@ -68,21 +68,21 @@ public class ConfigCache {
addDefault("settings.cache_time", 30, "Time (in seconds) to keep player data in memory when players goes offline.\nThis is used for checking if offline players pvp state.\nAdjust only if you know what you're doing. NEVER set to less than 6."); addDefault("settings.cache_time", 30, "Time (in seconds) to keep player data in memory when players goes offline.\nThis is used for checking if offline players pvp state.\nAdjust only if you know what you're doing. NEVER set to less than 6.");
addDefault("messages.pvp_enabled", "&cYou enabled PvP!"); addDefault("messages.pvp_enabled", "<red>You enabled PvP!");
addDefault("messages.pvp_disabled", "&cYou disabled PvP!"); addDefault("messages.pvp_disabled", "<red>You disabled PvP!");
addDefault("messages.cannot_attack_victim", "&cYou can't attack players that have PvP turned off!"); addDefault("messages.cannot_attack_victim", "<red>You can't attack players that have PvP turned off!");
addDefault("messages.cannot_attack_attacker", "&cYou can't attack players while you have PvP turned off!"); addDefault("messages.cannot_attack_attacker", "<red>You can't attack players while you have PvP turned off!");
addDefault("messages.cannot_attack_pets_victim", "&cYou can't attack pets of players that have PvP turned off"); addDefault("messages.cannot_attack_pets_victim", "<red>You can't attack pets of players that have PvP turned off");
addDefault("messages.cannot_attack_pets_attacker", "&cYou can't attack pets while you have PvP turned off"); addDefault("messages.cannot_attack_pets_attacker", "<red>You can't attack pets while you have PvP turned off");
addDefault("messages.cannot_attack_mounts_victim", "&cYou can't attack mounts of players that have PvP turned off"); addDefault("messages.cannot_attack_mounts_victim", "<red>You can't attack mounts of players that have PvP turned off");
addDefault("messages.cannot_attack_mounts_attacker", "&cYou can't attack mounts while you have PvP turned off"); addDefault("messages.cannot_attack_mounts_attacker", "<red>You can't attack mounts while you have PvP turned off");
addDefault("messages.no_permission", "&cYou don't have permission to use that."); addDefault("messages.no_permission", "<red>You don't have permission to use that.");
addDefault("messages.no_such_command", "&cNo such command."); addDefault("messages.no_such_command", "<red>No such command.");
addDefault("messages.pvp_enabled_others", "&cYou've enabled %player%'s PvP."); addDefault("messages.pvp_enabled_others", "<red>You've enabled %player%'s PvP.");
addDefault("messages.pvp_disabled_others", "&cYou've disabled %player%'s PvP."); addDefault("messages.pvp_disabled_others", "<red>You've disabled %player%'s PvP.");
addDefault("messages.entering_combat", "&cEntering combat"); addDefault("messages.entering_combat", "<red>Entering combat");
addDefault("messages.leaving_combat", "&cLeaving combat"); addDefault("messages.leaving_combat", "<red>Leaving combat");
addDefault("messages.cant_do_that_during_combat", "&cYou can't do that while in combat!"); addDefault("messages.cant_do_that_during_combat", "<red>You can't do that while in combat!");
addDefault("placeholder.placeholder_combat_time", "Combat time: %time%"); addDefault("placeholder.placeholder_combat_time", "Combat time: %time%");
addDefault("placeholder.not_in_combat", "Not in combat"); addDefault("placeholder.not_in_combat", "Not in combat");
} }
@@ -106,7 +106,7 @@ public class ConfigCache {
this.combat_time = config.getLong("settings.combat_time", 25L); this.combat_time = config.getLong("settings.combat_time", 25L);
this.punish_for_combat_logout = config.getBoolean("settings.punish_for_combat_logout.enabled", true); this.punish_for_combat_logout = config.getBoolean("settings.punish_for_combat_logout.enabled", true);
this.punish_for_combat_logout_announce = config.getBoolean("settings.punish_for_combat_logout.announce", true); this.punish_for_combat_logout_announce = config.getBoolean("settings.punish_for_combat_logout.announce", true);
this.punish_for_combat_logout_message = config.getString("settings.punish_for_combat_logout.message", "&f%player% logged out while in combat. What a loser."); this.punish_for_combat_logout_message = config.getString("settings.punish_for_combat_logout.message", "%player%<reset><white> logged out while in combat. What a loser.");
this.only_owner_can_interact_with_pet = config.getBoolean("settings.only_owner_can_interact_with_pet", false); this.only_owner_can_interact_with_pet = config.getBoolean("settings.only_owner_can_interact_with_pet", false);
this.snowballs_knockback = config.getBoolean("settings.snowballs_do_knockback", false); this.snowballs_knockback = config.getBoolean("settings.snowballs_do_knockback", false);
@@ -123,21 +123,21 @@ public class ConfigCache {
this.teleport_protection_time = config.getLong("settings.teleport_protection_time", 0); this.teleport_protection_time = config.getLong("settings.teleport_protection_time", 0);
// Messages // Messages
this.pvp_enabled = config.getString("messages.pvp_enabled", "&cYou enabled PvP!"); this.pvp_enabled = config.getString("messages.pvp_enabled", "<red>You enabled PvP!");
this.pvp_disabled = config.getString("messages.pvp_disabled", "&cYou disabled PvP!"); this.pvp_disabled = config.getString("messages.pvp_disabled", "<red>You disabled PvP!");
this.cannot_attack_victim = config.getString("messages.cannot_attack_victim", "&cYou can't attack players that have PvP turned off!"); this.cannot_attack_victim = config.getString("messages.cannot_attack_victim", "<red>You can't attack players that have PvP turned off!");
this.cannot_attack_attacker = config.getString("messages.cannot_attack_attacker", "&cYou can't attack players while you have PvP turned off!"); this.cannot_attack_attacker = config.getString("messages.cannot_attack_attacker", "<red>You can't attack players while you have PvP turned off!");
this.cannot_attack_pets_victim = config.getString("messages.cannot_attack_pets_victim", "&cYou can't attack pets while you have PvP turned off"); this.cannot_attack_pets_victim = config.getString("messages.cannot_attack_pets_victim", "<red>You can't attack pets while you have PvP turned off");
this.cannot_attack_pets_attacker = config.getString("messages.cannot_attack_pets_attacker", "&cYou can't attack pets of players that have PvP turned off"); this.cannot_attack_pets_attacker = config.getString("messages.cannot_attack_pets_attacker", "<red>You can't attack pets of players that have PvP turned off");
this.cannot_attack_mounts_victim = config.getString("messages.cannot_attack_mounts_victim", "&cYou can't attack mounts of players that have PvP turned off"); this.cannot_attack_mounts_victim = config.getString("messages.cannot_attack_mounts_victim", "<red>You can't attack mounts of players that have PvP turned off");
this.cannot_attack_mounts_attacker = config.getString("messages.cannot_attack_mounts_attacker", "&cYou can't attack mounts while you have PvP turned off"); this.cannot_attack_mounts_attacker = config.getString("messages.cannot_attack_mounts_attacker", "<red>You can't attack mounts while you have PvP turned off");
this.no_permission = config.getString("messages.no_permission", "&cYou don't have permission to use that."); this.no_permission = config.getString("messages.no_permission", "<red>You don't have permission to use that.");
this.no_such_command = config.getString("messages.no_such_command", "&cNo such command."); this.no_such_command = config.getString("messages.no_such_command", "<red>No such command.");
this.pvp_enabled_other = config.getString("messages.pvp_enabled_others", "&cYou've enabled %player%'s PvP."); this.pvp_enabled_other = config.getString("messages.pvp_enabled_others", "<red>You've enabled %player%'s PvP.");
this.pvp_disabled_other = config.getString("messages.pvp_disabled_others", "&cYou've disabled %player%'s PvP."); this.pvp_disabled_other = config.getString("messages.pvp_disabled_others", "<red>You've disabled %player%'s PvP.");
this.entering_combat = config.getString("messages.entering_combat", "&cEntering combat"); this.entering_combat = config.getString("messages.entering_combat", "<red>Entering combat");
this.leaving_combat = config.getString("messages.leaving_combat", "&cLeaving combat"); this.leaving_combat = config.getString("messages.leaving_combat", "<red>Leaving combat");
this.cant_do_that_during_combat = config.getString("messages.cant_do_that_during_combat", "&cYou can't do that while in combat!"); this.cant_do_that_during_combat = config.getString("messages.cant_do_that_during_combat", "<red>You can't do that while in combat!");
this.placeholder_combat_time = config.getString("placeholder.placeholder_combat_time", "Combat time: %time%"); this.placeholder_combat_time = config.getString("placeholder.placeholder_combat_time", "Combat time: %time%");
this.placeholder_not_in_combat = config.getString("placeholder.not_in_combat", "Not in combat"); this.placeholder_not_in_combat = config.getString("placeholder.not_in_combat", "Not in combat");
@@ -3,6 +3,7 @@ package me.youhavetrouble.preventstabby.hooks;
import me.clip.placeholderapi.expansion.PlaceholderExpansion; import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import me.youhavetrouble.preventstabby.PreventStabby; import me.youhavetrouble.preventstabby.PreventStabby;
import me.youhavetrouble.preventstabby.util.PluginMessages; import me.youhavetrouble.preventstabby.util.PluginMessages;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -12,9 +13,11 @@ import java.util.UUID;
public class PlacoholderApiHook extends PlaceholderExpansion { public class PlacoholderApiHook extends PlaceholderExpansion {
private final PreventStabby plugin; private final PreventStabby plugin;
private final LegacyComponentSerializer legacyComponentSerializer;
public PlacoholderApiHook(PreventStabby preventStabby) { public PlacoholderApiHook(PreventStabby preventStabby) {
plugin = preventStabby; plugin = preventStabby;
this.legacyComponentSerializer = LegacyComponentSerializer.legacyAmpersand();
} }
@Override @Override
@@ -48,9 +51,9 @@ public class PlacoholderApiHook extends PlaceholderExpansion {
if (seconds > 0) { if (seconds > 0) {
String msg = plugin.getConfigCache().getPlaceholder_combat_time(); String msg = plugin.getConfigCache().getPlaceholder_combat_time();
msg = msg.replaceAll("%time%", String.valueOf(seconds)); msg = msg.replaceAll("%time%", String.valueOf(seconds));
return PluginMessages.parseMessage(msg); return legacyComponentSerializer.serialize(PluginMessages.parseMessage(msg));
} }
return PluginMessages.parseMessage(plugin.getConfigCache().getPlaceholder_not_in_combat()); return legacyComponentSerializer.serialize(PluginMessages.parseMessage(plugin.getConfigCache().getPlaceholder_not_in_combat()));
} }
} }
@@ -2,11 +2,10 @@ package me.youhavetrouble.preventstabby.util;
import me.clip.placeholderapi.PlaceholderAPI; import me.clip.placeholderapi.PlaceholderAPI;
import me.youhavetrouble.preventstabby.PreventStabby; import me.youhavetrouble.preventstabby.PreventStabby;
import net.md_5.bungee.api.ChatMessageType; import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import net.md_5.bungee.api.chat.BaseComponent; import net.kyori.adventure.text.Component;
import net.md_5.bungee.api.chat.TextComponent; import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -14,17 +13,21 @@ import java.util.UUID;
public class PluginMessages { public class PluginMessages {
public static String parseMessage(String message) { public static final MiniMessage MINIMESSAGE = MiniMessage.miniMessage();
return ChatColor.translateAlternateColorCodes('&', message); private static final BukkitAudiences audiences = PreventStabby.getAudiences();
public static Component parseMessage(String message) {
message = makeColorsWork('&', message);
return MINIMESSAGE.deserialize(message);
} }
public static String parseMessage(CommandSender sender,String message) { public static Component parseMessage(CommandSender sender,String message) {
if (sender instanceof Player && isPlaceholderApiEnabled()) { if (sender instanceof Player && isPlaceholderApiEnabled()) {
Player player = (Player) sender; Player player = (Player) sender;
message = PlaceholderAPI.setPlaceholders(player, message); message = PlaceholderAPI.setPlaceholders(player, message);
} }
return ChatColor.translateAlternateColorCodes('&', message); return parseMessage(message);
} }
private static boolean isPlaceholderApiEnabled() { private static boolean isPlaceholderApiEnabled() {
@@ -32,15 +35,12 @@ public class PluginMessages {
} }
public static void sendMessage(CommandSender sender, String message) { public static void sendMessage(CommandSender sender, String message) {
message = parseMessage(sender, message); audiences.sender(sender).sendMessage(parseMessage(sender, message));
sender.sendMessage(message);
} }
public static void sendActionBar(Player player, String message) { public static void sendActionBar(Player player, String message) {
// TODO use adventure Component parsedMessage = parseMessage(player, message);
message = parseMessage(player, message); audiences.player(player).sendActionBar(parsedMessage);
BaseComponent[] component = TextComponent.fromLegacyText(parseMessage(message));
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, component);
} }
public static void sendActionBar(UUID uuid, String message) { public static void sendActionBar(UUID uuid, String message) {
@@ -51,7 +51,7 @@ public class PluginMessages {
public static String parsePlayerName(Player player, String message) { public static String parsePlayerName(Player player, String message) {
message = message.replaceAll("%player%", player.getDisplayName()); message = message.replaceAll("%player%", player.getDisplayName());
return parseMessage(message); return message;
} }
public static void broadcastMessage(Player player, String message) { public static void broadcastMessage(Player player, String message) {
@@ -59,9 +59,40 @@ public class PluginMessages {
if (PreventStabby.getPlugin().getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) { if (PreventStabby.getPlugin().getServer().getPluginManager().getPlugin("PlaceholderAPI") != null) {
message = PlaceholderAPI.setPlaceholders(player, message); message = PlaceholderAPI.setPlaceholders(player, message);
} }
message = parseMessage(message); audiences.all().sendMessage(parseMessage(message));
BaseComponent[] component = TextComponent.fromLegacyText(parseMessage(message)); }
Bukkit.spigot().broadcast(component);
/**
* Swaps most legacy color codes to adventure minimessage tags.
* @param symbol Usually '&'.
* @param string String to replace symbols in.
* @return String with legacy color codes replaced with minimessage tags.
*/
private static String makeColorsWork(Character symbol, String string) {
// Adventure and ChatColor do not like each other, so this is a thing.
string = string.replaceAll(symbol + "0", "<black>");
string = string.replaceAll(symbol + "1", "<dark_blue>");
string = string.replaceAll(symbol + "2", "<dark_green>");
string = string.replaceAll(symbol + "3", "<dark_aqua>");
string = string.replaceAll(symbol + "4", "<dark_red>");
string = string.replaceAll(symbol + "5", "<dark_purple>");
string = string.replaceAll(symbol + "6", "<gold>");
string = string.replaceAll(symbol + "7", "<gray>");
string = string.replaceAll(symbol + "8", "<dark_gray>");
string = string.replaceAll(symbol + "9", "<blue>");
string = string.replaceAll(symbol + "a", "<green>");
string = string.replaceAll(symbol + "b", "<aqua>");
string = string.replaceAll(symbol + "c", "<red>");
string = string.replaceAll(symbol + "d", "<light_purple>");
string = string.replaceAll(symbol + "e", "<yellow>");
string = string.replaceAll(symbol + "f", "<white>");
string = string.replaceAll(symbol + "k", "<obfuscated>");
string = string.replaceAll(symbol + "l", "<bold>");
string = string.replaceAll(symbol + "m", "<strikethrough>");
string = string.replaceAll(symbol + "n", "<underlined>");
string = string.replaceAll(symbol + "o", "<italic>");
string = string.replaceAll(symbol + "r", "<reset>");
return string;
} }
} }