feat: finish string breaking changes

This commit is contained in:
TheClashFruit 2023-06-12 09:13:44 +02:00
parent 35038ea9d2
commit 81f7a688a9
Signed by: TheClashFruit
GPG key ID: CF4A319B9A73290C
15 changed files with 50 additions and 21 deletions

Binary file not shown.

Binary file not shown.

View file

@ -1,6 +1,11 @@
package me.theclashfruit.hubbit.commands; package me.theclashfruit.hubbit.commands;
import me.theclashfruit.hubbit.Hubbit;
import me.theclashfruit.hubbit.utils.ConfigLoaderSingleton; import me.theclashfruit.hubbit.utils.ConfigLoaderSingleton;
import me.theclashfruit.hubbit.utils.MenuInventoryHolder;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
@ -9,6 +14,7 @@ import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
@ -18,6 +24,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
import static org.bukkit.plugin.java.JavaPlugin.getPlugin;
import static org.bukkit.Bukkit.getLogger; import static org.bukkit.Bukkit.getLogger;
public class MenuCommand implements CommandExecutor { public class MenuCommand implements CommandExecutor {
@ -28,7 +35,7 @@ public class MenuCommand implements CommandExecutor {
if(sender instanceof Player) { if(sender instanceof Player) {
Player player = (Player) sender; Player player = (Player) sender;
Inventory menu = Bukkit.createInventory(player, menuConfig.getInt("size"), ChatColor.translateAlternateColorCodes('&', menuConfig.getString("title"))); Inventory menu = new MenuInventoryHolder(getPlugin(Hubbit.class), menuConfig.getInt("size"), MiniMessage.miniMessage().deserialize(menuConfig.getString("title"))).getInventory();
int inventorySize = menuConfig.getInt("size"); int inventorySize = menuConfig.getInt("size");
@ -39,7 +46,7 @@ public class MenuCommand implements CommandExecutor {
ItemMeta borderItemMeta = borderItem.getItemMeta(); ItemMeta borderItemMeta = borderItem.getItemMeta();
borderItemMeta.setDisplayName(" "); borderItemMeta.displayName(MiniMessage.miniMessage().deserialize(" "));
borderItem.setItemMeta(borderItemMeta); borderItem.setItemMeta(borderItemMeta);
@ -64,15 +71,16 @@ public class MenuCommand implements CommandExecutor {
ItemMeta itemMeta = itemStack.getItemMeta(); ItemMeta itemMeta = itemStack.getItemMeta();
itemMeta.setDisplayName(ChatColor.translateAlternateColorCodes('&', (String) item.get("name"))); itemMeta.displayName(MiniMessage.miniMessage().deserialize(item.get("name").toString()));
List<String> lore = (List<String>) item.get("lore"); 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++) { for (String s : lore) {
lore.set(i, ChatColor.translateAlternateColorCodes('&', lore.get(i))); loreFinal.add(MiniMessage.miniMessage().deserialize(s));
} }
itemMeta.setLore(lore); itemMeta.lore(loreFinal);
itemStack.setItemMeta(itemMeta); itemStack.setItemMeta(itemMeta);
@ -84,7 +92,7 @@ public class MenuCommand implements CommandExecutor {
player.openInventory(menu); player.openInventory(menu);
} else { } else {
sender.sendMessage("You must be a player to use this command!"); sender.sendRichMessage("You must be a player to use this command!");
} }
return true; return true;

View file

@ -1,6 +1,7 @@
package me.theclashfruit.hubbit.events; package me.theclashfruit.hubbit.events;
import me.theclashfruit.hubbit.utils.ConfigLoaderSingleton; import me.theclashfruit.hubbit.utils.ConfigLoaderSingleton;
import net.kyori.adventure.text.minimessage.MiniMessage;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
@ -23,7 +24,7 @@ public class MenuListener implements Listener {
Player player = (Player) event.getWhoClicked(); Player player = (Player) event.getWhoClicked();
if(event.getView().getTitle().equalsIgnoreCase(ChatColor.translateAlternateColorCodes('&', menuConfig.getString("title")))) { if(event.getView().title().equals(MiniMessage.miniMessage().deserialize(menuConfig.getString("title")))) {
int eventSlot = event.getSlot(); int eventSlot = event.getSlot();
menuConfig.getMapList("pages").forEach(page -> { menuConfig.getMapList("pages").forEach(page -> {
@ -38,12 +39,12 @@ public class MenuListener implements Listener {
case "send_message" -> { case "send_message" -> {
player.closeInventory(); player.closeInventory();
player.sendMessage(ChatColor.translateAlternateColorCodes('&', menuEvent.get("data").toString())); player.sendMessage(MiniMessage.miniMessage().deserialize(menuEvent.get("data").toString()));
} }
case "join_server" -> { case "join_server" -> {
player.closeInventory(); player.closeInventory();
player.performCommand("/server " + menuEvent.get("data").toString()); player.performCommand("server " + menuEvent.get("data").toString());
} }
case "execute_command" -> { case "execute_command" -> {
player.closeInventory(); player.closeInventory();
@ -54,8 +55,11 @@ public class MenuListener implements Listener {
default -> { default -> {
player.closeInventory(); player.closeInventory();
player.sendMessage(ChatColor.RED + "An error occurred while executing the action of the item."); player.sendRichMessage(
player.sendMessage(ChatColor.RED + "Please contact an administrator."); "<red>An error occurred while executing the action of the item." +
"<newline>" +
"<red>Please contact an administrator."
);
} }
} }
}); });
@ -73,8 +77,6 @@ public class MenuListener implements Listener {
Player player = event.getPlayer(); Player player = event.getPlayer();
if(player.getInventory().getItemInMainHand().getType() == Material.valueOf(menuConfig.getString("open_material"))) { if(player.getInventory().getItemInMainHand().getType() == Material.valueOf(menuConfig.getString("open_material"))) {
event.setCancelled(true); event.setCancelled(true);

View file

@ -1,8 +1,6 @@
package me.theclashfruit.hubbit.events; package me.theclashfruit.hubbit.events;
import me.theclashfruit.hubbit.Hubbit; import me.theclashfruit.hubbit.Hubbit;
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.MiniMessage;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;

View file

@ -0,0 +1,21 @@
package me.theclashfruit.hubbit.utils;
import me.theclashfruit.hubbit.Hubbit;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.jetbrains.annotations.NotNull;
import java.awt.*;
public class MenuInventoryHolder implements InventoryHolder {
private final Inventory inventory;
public MenuInventoryHolder(Hubbit plugin, int InventorySize, net.kyori.adventure.text.Component title) {
this.inventory = plugin.getServer().createInventory(this, InventorySize, title);
}
@Override
public @NotNull Inventory getInventory() {
return this.inventory;
}
}

View file

@ -1,4 +1,4 @@
title: '&3Servers' title: '<dark_aqua>Servers'
size: 54 size: 54
border: border:
@ -8,17 +8,17 @@ border:
open_material: 'COMPASS' open_material: 'COMPASS'
pages: pages:
- title: '&3Servers' - title: '<dark_aqua>Servers'
items: items:
- name: '&aGetting Started' - name: '<green>Getting Started'
material: 'OAK_SIGN' material: 'OAK_SIGN'
slot: 22 slot: 22
count: 1 count: 1
lore: lore:
- '&7Edit menu/server_menu.yml to change this menu.' - '<grey>Edit menu/server_menu.yml to change this menu.'
events: events:
- type: 'click' - type: 'click'
action: 'send_message' action: 'send_message'
data: '&aYou clicked on Getting Started!' data: '<green>You clicked on Getting Started!'
navigation: false navigation: false