fix: fix some issues, finish the breaking changes

This commit is contained in:
TheClashFruit 2023-06-13 18:04:41 +02:00
parent 1c05f4675d
commit 92b3f6a664
Signed by: TheClashFruit
GPG key ID: CF4A319B9A73290C
15 changed files with 47 additions and 13 deletions

Binary file not shown.

View file

@ -1,10 +1,13 @@
package me.theclashfruit.hubbit.commands;
import me.clip.placeholderapi.PlaceholderAPI;
import me.theclashfruit.hubbit.Hubbit;
import me.theclashfruit.hubbit.utils.ConfigLoaderSingleton;
import me.theclashfruit.hubbit.utils.MenuInventoryHolder;
import me.theclashfruit.hubbit.utils.MessageFormatter;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
@ -31,7 +34,7 @@ public class MenuCommand implements CommandExecutor {
if(sender instanceof Player) {
Player player = (Player) sender;
Inventory menu = new MenuInventoryHolder(getPlugin(Hubbit.class), menuConfig.getInt("size"), MiniMessage.miniMessage().deserialize(menuConfig.getString("title"))).getInventory();
Inventory menu = new MenuInventoryHolder(getPlugin(Hubbit.class), menuConfig.getInt("size"), MessageFormatter.formatMessage(menuConfig.getString("title"), player)).getInventory();
int inventorySize = menuConfig.getInt("size");
@ -67,13 +70,13 @@ public class MenuCommand implements CommandExecutor {
ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.displayName(MiniMessage.miniMessage().deserialize(item.get("name").toString()));
itemMeta.displayName(MessageFormatter.formatMessage(item.get("name").toString(), player));
List<String> lore = (List<String>) item.get("lore");
List<Component> loreFinal = new java.util.ArrayList<>(List.of());
for (String s : lore) {
loreFinal.add(MiniMessage.miniMessage().deserialize(s));
loreFinal.add(MessageFormatter.formatMessage(s, player));
}
itemMeta.lore(loreFinal);

View file

@ -1,8 +1,11 @@
package me.theclashfruit.hubbit.events;
import me.clip.placeholderapi.PlaceholderAPI;
import me.theclashfruit.hubbit.Hubbit;
import me.theclashfruit.hubbit.utils.MessageFormatter;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.ChatColor;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.configuration.Configuration;
import org.bukkit.event.EventHandler;
@ -24,7 +27,7 @@ public class PlayerActionsListener implements Listener {
public void onPlayerJoin(PlayerJoinEvent event) {
Configuration mainConfig = getPlugin(Hubbit.class).getConfig();
event.joinMessage(MiniMessage.miniMessage().deserialize(mainConfig.getString("messages.player.join")));
event.joinMessage(MessageFormatter.formatMessage(mainConfig.getString("messages.player.join"), event.getPlayer()));
getLogger().log(java.util.logging.Level.INFO, String.valueOf(mainConfig.getStringList("hub.worlds").contains(event.getPlayer().getWorld().getName())));
@ -36,15 +39,16 @@ public class PlayerActionsListener implements Listener {
ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', (String) item.get("name")));
itemMeta.displayName(MessageFormatter.formatMessage(item.get("name").toString(), event.getPlayer()));
List<String> lore = (List<String>) item.get("lore");
List<Component> loreFinal = new java.util.ArrayList<>(List.of());
for (int i = 0; i < lore.size(); i++) {
lore.set(i, ChatColor.translateAlternateColorCodes('&', lore.get(i)));
for (String s : lore) {
loreFinal.add(MessageFormatter.formatMessage(s, event.getPlayer()));
}
itemMeta.setLore(lore);
itemMeta.lore(loreFinal);
itemStack.setItemMeta(itemMeta);
@ -60,7 +64,8 @@ public class PlayerActionsListener implements Listener {
public void onPlayerQuit(PlayerQuitEvent event) {
Configuration mainConfig = getPlugin(Hubbit.class).getConfig();
event.quitMessage(MiniMessage.miniMessage().deserialize(mainConfig.getString("messages.player.quit")));
event.quitMessage(MessageFormatter.formatMessage(mainConfig.getString("messages.player.leave"), event.getPlayer()));
}
@EventHandler

View file

@ -0,0 +1,26 @@
package me.theclashfruit.hubbit.utils;
import me.clip.placeholderapi.PlaceholderAPI;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.tag.Tag;
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class MessageFormatter {
public static Component formatMessage(String message, Player player) {
return MiniMessage.miniMessage().deserialize(message, new MessageFormatter().papiTag(player));
}
public @NotNull TagResolver papiTag(final @NotNull Player player) {
return TagResolver.resolver("papi", (argumentQueue, context) -> {
final String papiPlaceholder = argumentQueue.popOr("papi tag requires an argument").value();
final String parsedPlaceholder = PlaceholderAPI.setPlaceholders(player, '%' + papiPlaceholder + '%');
final Component componentPlaceholder = LegacyComponentSerializer.legacySection().deserialize(parsedPlaceholder);
return Tag.selfClosingInserting(componentPlaceholder);
});
}
}

View file

@ -1,8 +1,8 @@
messages:
prefix: '<dark_grey>[<aqua><bold>Hubbit</bold><dark_grey>]</dark_grey>'
player:
join: '<dark_grey>[<dark_green>+<dark_grey>] <grey>%player_name% joined the server!'
leave: '<dark_grey>[<red>-<dark_grey>] <grey>%player_name% left the server!'
join: '<dark_grey>[<dark_green>+<dark_grey>] <grey><papi:player_name> joined the server!'
leave: '<dark_grey>[<red>-<dark_grey>] <grey><papi:player_name> left the server!'
hub:
worlds:

View file

@ -4,7 +4,7 @@ main: me.theclashfruit.hubbit.Hubbit
api-version: 1.19
load: STARTUP
softdepend: [ PlaceholderAPI ]
depend: [ PlaceholderAPI ]
commands:
hubbit: