package gq.unurled.raxen.utils; import gq.unurled.raxen.Raxen; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver; import net.kyori.adventure.text.minimessage.tag.standard.StandardTags; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; public class Utils { /** * * @param stringToComponent a string * @return a component */ public static @NotNull Component colorComp(String stringToComponent) { MiniMessage minimessage = MiniMessage.builder() .tags(TagResolver.builder() .resolver(StandardTags.color()) .resolver(StandardTags.decorations()) .resolver(StandardTags.reset()) .build() ) .build(); return minimessage.deserialize(stringToComponent); } public static @NotNull TextComponent colorTextComp(String stringToComponent) { MiniMessage minimessage = MiniMessage.builder() .tags(TagResolver.builder() .resolver(StandardTags.color()) .resolver(StandardTags.decorations()) .resolver(StandardTags.reset()) .build() ) .build(); return (TextComponent) minimessage.deserialize(stringToComponent); } /** * * @param string a string * @return a colored string */ public static @NotNull String colorString(String string) { MiniMessage minimessage = MiniMessage.builder() .tags(TagResolver.builder() .resolver(StandardTags.color()) .resolver(StandardTags.decorations()) .resolver(StandardTags.reset()) .build() ) .build(); return LegacyComponentSerializer.legacyAmpersand().serialize(minimessage.deserialize(string)); } public static String coloredString(String string) { MiniMessage minimessage = MiniMessage.builder() .tags(TagResolver.builder() .resolver(StandardTags.color()) .resolver(StandardTags.decorations()) .resolver(StandardTags.reset()) .build() ) .build(); return ChatColor.translateAlternateColorCodes('&', LegacyComponentSerializer.legacyAmpersand() .serialize(minimessage.deserialize(string))); } public static String decolor(String string) { return MiniMessage.miniMessage().stripTags(string); } /** * debug output to console if debug is set to true in config * @param main Raxen instance * @param strings ouptut to console */ public static void debug(Raxen main, String... strings) { FileConfiguration config = main.getConfig(); if(config.getBoolean("debug")) { for(String string : strings) { main.getLogger().info(string); } } } /** * debug output to console if debug is set to true in config * @param strings output to console */ public static void debug(String... strings) { Raxen main = (Raxen) Bukkit.getPluginManager().getPlugin("Raxen"); assert main != null; FileConfiguration config = main.getConfig(); if(config.getBoolean("debug")) { for(String string : strings) { main.getLogger().info(string); } } } /** * debug output to console if debug is set to true in config * @param config main file config * @param strings ouput to console */ public static void debug(FileConfiguration config, String... strings) { Raxen main = (Raxen) Bukkit.getPluginManager().getPlugin("Raxen"); assert main != null; if(config.getBoolean("debug")) { for(String string : strings) { main.getLogger().info(string); } } } public static void log(Raxen main, String... strings) { for(String string : strings) { main.getLogger().info(string); } } public static void log(String... strings) { Raxen main = (Raxen) Bukkit.getPluginManager().getPlugin("Raxen"); assert main != null; for(String string : strings) { main.getLogger().info(string); } } public static void warn(String... strings) { Raxen main = (Raxen) Bukkit.getPluginManager().getPlugin("Raxen"); assert main != null; for(String string : strings) { main.getLogger().warning(string); } } public static void warn(Raxen main, String... strings) { for(String string : strings) { main.getLogger().warning(string); } } public static void error(String... strings) { Raxen main = (Raxen) Bukkit.getPluginManager().getPlugin("Raxen"); assert main != null; for(String string : strings) { main.getLogger().severe(string); } } public static void error(Raxen main, String... strings) { for(String string : strings) { main.getLogger().severe(string); } } public static void msgPlayer(Player player, String... strings) { for(String string : strings) { player.sendMessage(colorComp(string)); } } public static void msgPlayer(Player player, TextComponent strings) { player.sendMessage(colorComp(PlainTextComponentSerializer.plainText().serialize(strings))); } public static void msgSender(CommandSender player, TextComponent strings) { player.sendMessage(colorComp(PlainTextComponentSerializer.plainText().serialize(strings))); } public static void msgSender(CommandSender player, String... strings) { for(String string : strings) { player.sendMessage(colorComp(string)); } } public static Inventory fillGreyPane(Inventory inv) { Integer in = -1; for (ItemStack it : inv) { in++; if (it == null || it.getType() == Material.AIR) { inv.setItem(in, Items.greyPane()); } } return inv; } public static Component noPerms() { return colorComp("You don't have the permission to use this feature."); } public static Component error() { return colorComp("An Error has occurred. Please retry or contact an Admin."); } }