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;
import me.theclashfruit.hubbit.Hubbit;
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.ChatColor;
import org.bukkit.Material;
@ -9,6 +14,7 @@ import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryType;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
@ -18,6 +24,7 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;
import static org.bukkit.plugin.java.JavaPlugin.getPlugin;
import static org.bukkit.Bukkit.getLogger;
public class MenuCommand implements CommandExecutor {
@ -28,7 +35,7 @@ public class MenuCommand implements CommandExecutor {
if(sender instanceof Player) {
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");
@ -39,7 +46,7 @@ public class MenuCommand implements CommandExecutor {
ItemMeta borderItemMeta = borderItem.getItemMeta();
borderItemMeta.setDisplayName(" ");
borderItemMeta.displayName(MiniMessage.miniMessage().deserialize(" "));
borderItem.setItemMeta(borderItemMeta);
@ -64,15 +71,16 @@ public class MenuCommand implements CommandExecutor {
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<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(MiniMessage.miniMessage().deserialize(s));
}
itemMeta.setLore(lore);
itemMeta.lore(loreFinal);
itemStack.setItemMeta(itemMeta);
@ -84,7 +92,7 @@ public class MenuCommand implements CommandExecutor {
player.openInventory(menu);
} 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;

View file

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

View file

@ -1,8 +1,6 @@
package me.theclashfruit.hubbit.events;
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 org.bukkit.ChatColor;
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
border:
@ -8,17 +8,17 @@ border:
open_material: 'COMPASS'
pages:
- title: '&3Servers'
- title: '<dark_aqua>Servers'
items:
- name: '&aGetting Started'
- name: '<green>Getting Started'
material: 'OAK_SIGN'
slot: 22
count: 1
lore:
- '&7Edit menu/server_menu.yml to change this menu.'
- '<grey>Edit menu/server_menu.yml to change this menu.'
events:
- type: 'click'
action: 'send_message'
data: '&aYou clicked on Getting Started!'
data: '<green>You clicked on Getting Started!'
navigation: false