From bbfa249dc66341284454de87ae71f8dff85cf795 Mon Sep 17 00:00:00 2001 From: RettichLP Date: Wed, 12 Aug 2026 18:13:25 +0200 Subject: [PATCH 1/4] Update dependencies and API version in build.gradle and plugin.yml to support Minecraft 26.2 Co-authored-by: AI --- build.gradle.kts | 4 ++-- src/main/resources/paper-plugin.yml | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 7d6fa94..3313345 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -2,7 +2,7 @@ import org.gradle.api.JavaVersion.VERSION_25 plugins { id("java") - id("io.papermc.paperweight.userdev") version "2.0.0-beta.19" + id("io.papermc.paperweight.userdev") version "2.0.0-beta.21" id("com.gradleup.shadow") version "9.3.1" id("xyz.jpenilla.run-paper") version "3.0.2" } @@ -15,7 +15,7 @@ repositories { } dependencies { - paperweight.paperDevBundle("1.21.11-R0.1-SNAPSHOT") + paperweight.paperDevBundle("26.2.build.+") implementation("org.bstats:bstats-bukkit:3.1.0") } diff --git a/src/main/resources/paper-plugin.yml b/src/main/resources/paper-plugin.yml index be96edd..f830d4c 100644 --- a/src/main/resources/paper-plugin.yml +++ b/src/main/resources/paper-plugin.yml @@ -1,10 +1,11 @@ name: DisplayEntityEditor version: ${version} main: goldenshadow.displayentityeditor.DisplayEntityEditor -api-version: 1.21.11 +api-version: 26.2 authors: - _GoldenShadow - officialMex + - RettichLP -description: A full suite of tools to edit text, item and block display entities \ No newline at end of file +description: A full suite of tools to edit text, item and block display entities From 11ab8445af1c3611ed6ee8021c01fddbf1c8cf91 Mon Sep 17 00:00:00 2001 From: RettichLP Date: Sun, 16 Aug 2026 15:25:31 +0200 Subject: [PATCH 2/4] Add build directory to .gitignore to prevent build artifacts from being tracked Co-authored-by: AI --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 05f02cc..ddc8b36 100644 --- a/.gitignore +++ b/.gitignore @@ -118,3 +118,4 @@ buildNumber.properties # Common working directory run/ +/build/ From 1a34f82b8fc6f265c71ade02fda084306021dbe4 Mon Sep 17 00:00:00 2001 From: RettichLP Date: Sun, 16 Aug 2026 15:38:45 +0200 Subject: [PATCH 3/4] Reformat code Co-authored-by: AI --- .../DisplayEntityEditor.java | 34 +- .../displayentityeditor/EditingHandler.java | 19 +- .../displayentityeditor/MessageManager.java | 27 +- .../displayentityeditor/SelectionMode.java | 34 +- .../displayentityeditor/Utilities.java | 78 ++-- .../DisplayEntityEditorBrigadierCommand.java | 39 +- .../conversation/BytePrompt.java | 3 +- .../conversation/FloatPrompt.java | 3 +- .../conversation/InputManager.java | 19 +- .../conversation/IntegerPrompt.java | 3 +- .../conversation/TextPrompt.java | 7 +- .../enums/LockSearchMode.java | 9 +- .../displayentityeditor/events/Interact.java | 419 ++++++++---------- .../events/InventoryClick.java | 100 +++-- .../events/OffhandSwap.java | 205 ++++----- .../events/PlayerJoin.java | 3 +- .../events/PlayerLeave.java | 1 - .../inventories/InventoryFactory.java | 221 +++++---- .../displayentityeditor/items/GUIItems.java | 10 +- .../items/InventoryItems.java | 7 +- src/main/resources/paper-plugin.yml | 6 +- 21 files changed, 597 insertions(+), 650 deletions(-) diff --git a/src/main/java/goldenshadow/displayentityeditor/DisplayEntityEditor.java b/src/main/java/goldenshadow/displayentityeditor/DisplayEntityEditor.java index a5d0b0c..67babdd 100644 --- a/src/main/java/goldenshadow/displayentityeditor/DisplayEntityEditor.java +++ b/src/main/java/goldenshadow/displayentityeditor/DisplayEntityEditor.java @@ -1,7 +1,12 @@ package goldenshadow.displayentityeditor; import goldenshadow.displayentityeditor.commands.DisplayEntityEditorBrigadierCommand; -import goldenshadow.displayentityeditor.events.*; +import goldenshadow.displayentityeditor.events.Interact; +import goldenshadow.displayentityeditor.events.InventoryClick; +import goldenshadow.displayentityeditor.events.InventoryClose; +import goldenshadow.displayentityeditor.events.OffhandSwap; +import goldenshadow.displayentityeditor.events.PlayerJoin; +import goldenshadow.displayentityeditor.events.PlayerLeave; import goldenshadow.displayentityeditor.inventories.InventoryFactory; import goldenshadow.displayentityeditor.items.GUIItems; import goldenshadow.displayentityeditor.items.InventoryItems; @@ -20,11 +25,16 @@ import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; -import java.io.*; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; import java.net.URL; import java.nio.file.Files; import java.nio.file.StandardCopyOption; -import java.util.*; +import java.util.HashMap; +import java.util.List; +import java.util.Scanner; +import java.util.UUID; import java.util.function.Consumer; public final class DisplayEntityEditor extends JavaPlugin { @@ -87,13 +97,13 @@ public void onEnable() { registerBrigadierCommand(); - Bukkit.getPluginManager().registerEvents(new Interact(editingHandler), plugin); - Bukkit.getPluginManager().registerEvents(new OffhandSwap(editingHandler), plugin); + Bukkit.getPluginManager().registerEvents(new Interact(this.editingHandler), plugin); + Bukkit.getPluginManager().registerEvents(new OffhandSwap(this.editingHandler), plugin); Bukkit.getPluginManager().registerEvents(new InventoryClick(), plugin); Bukkit.getPluginManager().registerEvents(new InventoryClose(), plugin); Bukkit.getPluginManager().registerEvents(new PlayerJoin(), plugin); Bukkit.getPluginManager().registerEvents(new PlayerLeave(), plugin); - + toolSelectionModeKey = new NamespacedKey(plugin, "toolSelectionMode"); toolSelectionRangeKey = new NamespacedKey(plugin, "toolSelectionRange"); toolSelectionMultipleKey = new NamespacedKey(plugin, "toolSelectionMultiple"); @@ -119,22 +129,20 @@ public void onEnable() { getLogger().warning(messageManager.getString("messages_file_incomplete")); } } - } - + @Override public void onDisable() { for (Player player : Bukkit.getOnlinePlayers()) { - command.returnInventory(player); + this.command.returnInventory(player); } } - @SuppressWarnings("UnstableApiUsage") private void registerBrigadierCommand() { LifecycleEventManager manager = this.getLifecycleManager(); manager.registerEventHandler(LifecycleEvents.COMMANDS, event -> { final Commands commands = event.registrar(); - commands.register(command.createCommand(), "Command for Display Entity Editor plugin", List.of("dee")); + commands.register(this.command.createCommand(), "Command for Display Entity Editor plugin", List.of("dee")); }); } @@ -174,10 +182,10 @@ public static void checkForMessageFile() throws IOException { } public EditingHandler getEditingHandler() { - return editingHandler; + return this.editingHandler; } public DisplayEntityEditorBrigadierCommand command() { - return command; + return this.command; } } diff --git a/src/main/java/goldenshadow/displayentityeditor/EditingHandler.java b/src/main/java/goldenshadow/displayentityeditor/EditingHandler.java index b02c4c7..b69d108 100644 --- a/src/main/java/goldenshadow/displayentityeditor/EditingHandler.java +++ b/src/main/java/goldenshadow/displayentityeditor/EditingHandler.java @@ -1,12 +1,14 @@ package goldenshadow.displayentityeditor; +import goldenshadow.displayentityeditor.enums.LockSearchMode; import org.bukkit.entity.Display; import org.bukkit.entity.Player; -import goldenshadow.displayentityeditor.enums.LockSearchMode; - import javax.annotation.Nullable; -import java.util.*; +import java.util.Collection; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; public class EditingHandler { @@ -20,28 +22,28 @@ public class EditingHandler { * @param displays The collection of displays the player should be editing. */ public void setEditingDisplays(Player player, Collection displays) { - editingDisplaysMap.put(player.getUniqueId(), displays); + this.editingDisplaysMap.put(player.getUniqueId(), displays); } /** * @param player The player that should no longer be editing any displays. */ public void removeEditingDisplays(Player player) { - editingDisplaysMap.remove(player.getUniqueId()); + this.editingDisplaysMap.remove(player.getUniqueId()); } /** * @param player The player that is editing display(s). * @return The collection of displays the player is currently editing. * If the player is not editing any displays, an display search is being started according to the players' @{link SelectionMode}. - * + *

* Please note that this method will use the players' currently selected {@link LockSearchMode}. */ @Nullable public Collection getEditingDisplays(Player player) { return getEditingDisplays(player, Utilities.getToolSearchMode(player)); } - + /** * @param player The player that is editing display(s). * @param lockSearchMode The lock search mode to check if an entity should be included in the selection or not. @@ -51,11 +53,10 @@ public Collection getEditingDisplays(Player player) { */ @Nullable public Collection getEditingDisplays(Player player, LockSearchMode lockSearchMode) { - Collection displays = editingDisplaysMap.get(player.getUniqueId()); + Collection displays = this.editingDisplaysMap.get(player.getUniqueId()); if (displays != null) { return displays; } return Utilities.getToolSelectMode(player).select(player, lockSearchMode); } - } diff --git a/src/main/java/goldenshadow/displayentityeditor/MessageManager.java b/src/main/java/goldenshadow/displayentityeditor/MessageManager.java index a52ba21..69a6cdd 100644 --- a/src/main/java/goldenshadow/displayentityeditor/MessageManager.java +++ b/src/main/java/goldenshadow/displayentityeditor/MessageManager.java @@ -21,22 +21,22 @@ public MessageManager() throws IOException { File f = new File(DisplayEntityEditor.getPlugin().getDataFolder().getAbsolutePath() + "/messages.yml"); InputStream configStream = new FileInputStream(f); assert fallbackFileStream != null; - fallbackMap = yaml.load(fallbackFileStream); - messageMap = yaml.load(configStream); + this.fallbackMap = yaml.load(fallbackFileStream); + this.messageMap = yaml.load(configStream); configStream.close(); fallbackFileStream.close(); } public String getString(String key) { String s = ""; - if (messageMap.containsKey(key) && DisplayEntityEditor.getPlugin().getConfig().getBoolean("use-messages-file")) { - Object o = messageMap.get(key); + if (this.messageMap.containsKey(key) && DisplayEntityEditor.getPlugin().getConfig().getBoolean("use-messages-file")) { + Object o = this.messageMap.get(key); if (o instanceof String) { s = (String) o; } } else { - if (fallbackMap.containsKey(key) && !key.equals("file_version")) { //file version should never be gotten from fallback - Object o = fallbackMap.get(key); + if (this.fallbackMap.containsKey(key) && !key.equals("file_version")) { //file version should never be gotten from fallback + Object o = this.fallbackMap.get(key); if (o instanceof String) { s = (String) o; } @@ -47,10 +47,10 @@ public String getString(String key) { public List getList(String key) { Object o = null; - if (messageMap.containsKey(key) && DisplayEntityEditor.getPlugin().getConfig().getBoolean("use-messages-file")) { - o = messageMap.get(key); - } else if (fallbackMap.containsKey(key)) { - o = fallbackMap.get(key); + if (this.messageMap.containsKey(key) && DisplayEntityEditor.getPlugin().getConfig().getBoolean("use-messages-file")) { + o = this.messageMap.get(key); + } else if (this.fallbackMap.containsKey(key)) { + o = this.fallbackMap.get(key); } List returnList = new ArrayList<>(); @@ -69,10 +69,11 @@ public List getList(String key) { * @return True if everything is fine, false if the file should be updated */ public boolean isMessageMapComplete() { - for (String key : fallbackMap.keySet()) { - if (!messageMap.containsKey(key)) return false; + for (String key : this.fallbackMap.keySet()) { + if (!this.messageMap.containsKey(key)) { + return false; + } } return true; } - } diff --git a/src/main/java/goldenshadow/displayentityeditor/SelectionMode.java b/src/main/java/goldenshadow/displayentityeditor/SelectionMode.java index 500a4b3..946d568 100644 --- a/src/main/java/goldenshadow/displayentityeditor/SelectionMode.java +++ b/src/main/java/goldenshadow/displayentityeditor/SelectionMode.java @@ -1,12 +1,6 @@ package goldenshadow.displayentityeditor; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.stream.Stream; - +import goldenshadow.displayentityeditor.enums.LockSearchMode; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.entity.Display; @@ -14,7 +8,12 @@ import org.bukkit.entity.Player; import org.bukkit.util.Vector; -import goldenshadow.displayentityeditor.enums.LockSearchMode; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Stream; public abstract class SelectionMode { @@ -37,9 +36,8 @@ public static SelectionMode get(String mode) { @Override protected Stream select(Player p, double range, Predicate lockFilter) { return p.getWorld().getNearbyEntities(p.getLocation(), range, range, range).stream().filter(DISPLAY_FILTER).map(DISPLAY_CAST) - .filter(lockFilter); + .filter(lockFilter); } - }; public static final SelectionMode RAYCAST = new SelectionMode("raycast") { @@ -58,7 +56,7 @@ protected Stream select(Player p, double range, Predicate lock List displays; for (double distance = 0d; distance < range; distance += 0.25d) { displays = world.getNearbyEntities(loc = new Location(world, x + dx * distance, y + dy * distance, z + dz * distance), - 0.75d, 0.25d, 0.75d).stream().filter(DISPLAY_FILTER).map(DISPLAY_CAST).filter(lockFilter).toList(); + 0.75d, 0.25d, 0.75d).stream().filter(DISPLAY_FILTER).map(DISPLAY_CAST).filter(lockFilter).toList(); if (displays.isEmpty()) { continue; } @@ -76,7 +74,6 @@ protected Stream select(Player p, double range, Predicate lock } return Stream.empty(); } - }; private final String id; @@ -88,21 +85,21 @@ public SelectionMode(String id) { } public final String id() { - return id; + return this.id; } public final int index() { - return idOrder.indexOf(id); + return idOrder.indexOf(this.id); } public final SelectionMode previousMode() { - int i = idOrder.indexOf(id); - return idToMode.get(i == 0 ? idOrder.get(idOrder.size() - 1) : idOrder.get(i - 1)); + int i = idOrder.indexOf(this.id); + return idToMode.get(i == 0 ? idOrder.getLast() : idOrder.get(i - 1)); } public final SelectionMode nextMode() { - int i = idOrder.indexOf(id); - return idToMode.get(i + 1 == idOrder.size() ? idOrder.get(0) : idOrder.get(i + 1)); + int i = idOrder.indexOf(this.id); + return idToMode.get(i + 1 == idOrder.size() ? idOrder.getFirst() : idOrder.get(i + 1)); } public final List select(Player p, LockSearchMode lockSearchMode) { @@ -131,5 +128,4 @@ public final List select(Player p, LockSearchMode lockSearchMode) { } protected abstract Stream select(Player p, double range, Predicate lockFilter); - } diff --git a/src/main/java/goldenshadow/displayentityeditor/Utilities.java b/src/main/java/goldenshadow/displayentityeditor/Utilities.java index adf82b4..62267ee 100644 --- a/src/main/java/goldenshadow/displayentityeditor/Utilities.java +++ b/src/main/java/goldenshadow/displayentityeditor/Utilities.java @@ -1,26 +1,33 @@ package goldenshadow.displayentityeditor; +import goldenshadow.displayentityeditor.enums.LockSearchMode; import net.md_5.bungee.api.ChatMessageType; -import net.md_5.bungee.api.chat.*; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.api.chat.ClickEvent; +import net.md_5.bungee.api.chat.ComponentBuilder; +import net.md_5.bungee.api.chat.HoverEvent; +import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.chat.hover.content.Text; import org.bukkit.ChatColor; import org.bukkit.Color; import org.bukkit.Location; import org.bukkit.NamespacedKey; -import org.bukkit.entity.*; +import org.bukkit.entity.Display; +import org.bukkit.entity.Entity; +import org.bukkit.entity.ItemDisplay; +import org.bukkit.entity.Player; +import org.bukkit.entity.TextDisplay; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.persistence.PersistentDataType; -import goldenshadow.displayentityeditor.enums.LockSearchMode; - import javax.annotation.Nullable; import java.util.Collection; import java.util.List; public class Utilities { - + /** * Used to easily set an items meta * @param item The item @@ -31,7 +38,7 @@ public class Utilities { public static void setMeta(ItemStack item, String name, List lore, String data) { ItemMeta meta = item.getItemMeta(); assert meta != null; - meta.setDisplayName(ChatColor.translateAlternateColorCodes('&' ,name)); + meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', name)); lore.replaceAll(textToTranslate -> ChatColor.translateAlternateColorCodes('&', textToTranslate)); meta.setLore(lore); meta.getPersistentDataContainer().set(DisplayEntityEditor.toolKey, PersistentDataType.STRING, data); @@ -52,7 +59,7 @@ public static void setMeta(ItemStack item, String name, List lore, Strin public static void setMeta(ItemStack item, String name, List lore, String data, Object... formatData) { ItemMeta meta = item.getItemMeta(); assert meta != null; - meta.setDisplayName(ChatColor.translateAlternateColorCodes('&' ,name)); + meta.setDisplayName(ChatColor.translateAlternateColorCodes('&', name)); lore.replaceAll(textToTranslate -> ChatColor.translateAlternateColorCodes('&', textToTranslate).formatted(formatData)); meta.setLore(lore); meta.getPersistentDataContainer().set(DisplayEntityEditor.toolKey, PersistentDataType.STRING, data); @@ -114,7 +121,9 @@ public static boolean getData(Display entity, String dataKey) { * @return The string representation */ public static String getColor(Color color) { - if (color == null) return DisplayEntityEditor.messageManager.getString("none"); + if (color == null) { + return DisplayEntityEditor.messageManager.getString("none"); + } return DisplayEntityEditor.messageManager.getString("rgb").formatted(color.getRed(), color.getBlue(), color.getGreen()); } @@ -147,7 +156,7 @@ public static Display getNearestDisplayEntity(Location location, boolean lockSea Display entity = null; double distance = 5; assert location.getWorld() != null; - for (Entity e : location.getWorld().getNearbyEntities(location, 5,5,5)) { + for (Entity e : location.getWorld().getNearbyEntities(location, 5, 5, 5)) { if (e instanceof Display d) { if (lockSearchToggle) { if (!d.getScoreboardTags().contains("dee:locked")) { @@ -191,50 +200,42 @@ public static BaseComponent[] getClipboardMessage(String messageKey, String clip } public static String getObjectNameMessage(Object object) { - if (object instanceof Boolean b) { - return DisplayEntityEditor.messageManager.getList("boolean").get(b ? 0 : 1); - } - else if (object instanceof Display.Billboard b) { - return DisplayEntityEditor.messageManager.getList("billboard").get(b.ordinal()); - } - else if (object instanceof TextDisplay.TextAlignment t) { - return DisplayEntityEditor.messageManager.getList("text_alignment").get(t.ordinal()); - } - else if (object instanceof ItemDisplay.ItemDisplayTransform t) { - return DisplayEntityEditor.messageManager.getList("item_display_transform").get(t.ordinal()); - } - else if (object instanceof LockSearchMode m) { - return DisplayEntityEditor.messageManager.getList("lock_search_mode").get(m.ordinal()); - } - else if (object instanceof SelectionMode m) { - return DisplayEntityEditor.messageManager.getList("selection_mode").get(m.index()); - } - else return ""; + return switch (object) { + case Boolean b -> DisplayEntityEditor.messageManager.getList("boolean").get(b ? 0 : 1); + case Display.Billboard b -> DisplayEntityEditor.messageManager.getList("billboard").get(b.ordinal()); + case TextDisplay.TextAlignment t -> DisplayEntityEditor.messageManager.getList("text_alignment").get(t.ordinal()); + case ItemDisplay.ItemDisplayTransform t -> DisplayEntityEditor.messageManager.getList("item_display_transform").get(t.ordinal()); + case LockSearchMode m -> DisplayEntityEditor.messageManager.getList("lock_search_mode").get(m.ordinal()); + case SelectionMode m -> DisplayEntityEditor.messageManager.getList("selection_mode").get(m.index()); + case null, default -> ""; + }; } - + public static SelectionMode getToolSelectMode(Player p) { return SelectionMode.get(p.getPersistentDataContainer().getOrDefault(DisplayEntityEditor.toolSelectionModeKey, PersistentDataType.STRING, "nearby")); } - + public static LockSearchMode getToolSearchMode(Player p) { return LockSearchMode.valueOf(p.getPersistentDataContainer().getOrDefault(DisplayEntityEditor.toolSelectionSearchModeKey, PersistentDataType.STRING, "UNLOCKED")); } - + public static boolean getToolSelectMultiple(Player p) { - return p.getPersistentDataContainer().getOrDefault(DisplayEntityEditor.toolSelectionMultipleKey, PersistentDataType.BOOLEAN, false); + return p.getPersistentDataContainer().getOrDefault(DisplayEntityEditor.toolSelectionMultipleKey, PersistentDataType.BOOLEAN, false); } - + public static float getToolSelectRange(Player p) { - return p.getPersistentDataContainer().getOrDefault(DisplayEntityEditor.toolSelectionRangeKey, PersistentDataType.DOUBLE, 5d).floatValue(); + return p.getPersistentDataContainer().getOrDefault(DisplayEntityEditor.toolSelectionRangeKey, PersistentDataType.DOUBLE, 5d).floatValue(); } public static float getToolPrecision(Player p) { - Double i = p.getPersistentDataContainer().get(DisplayEntityEditor.toolPrecisionKey, PersistentDataType.DOUBLE); + Double i = p.getPersistentDataContainer().get(DisplayEntityEditor.toolPrecisionKey, PersistentDataType.DOUBLE); return i != null ? i.floatValue() : 1; } public static Location getAverageLocation(Collection displays) { - if (displays == null || displays.isEmpty()) return null; + if (displays == null || displays.isEmpty()) { + return null; + } double x = 0, y = 0, z = 0; for (Display d : displays) { x += d.getLocation().getX(); @@ -245,7 +246,9 @@ public static Location getAverageLocation(Collection displays) { } public static void rotateGroup(Collection displays, Location pivot, float angle, boolean horizontal, Player player) { - if (displays == null || displays.isEmpty() || pivot == null) return; + if (displays == null || displays.isEmpty() || pivot == null) { + return; + } double rad = Math.toRadians(angle); double cos = Math.cos(rad); double sin = Math.sin(rad); @@ -302,5 +305,4 @@ public static void rotateGroup(Collection displays, Location pivot, flo public static String reduceFloatLength(String s) { return s.substring(0, Math.min(s.length(), 4)); } - } diff --git a/src/main/java/goldenshadow/displayentityeditor/commands/DisplayEntityEditorBrigadierCommand.java b/src/main/java/goldenshadow/displayentityeditor/commands/DisplayEntityEditorBrigadierCommand.java index d766752..b419dc2 100644 --- a/src/main/java/goldenshadow/displayentityeditor/commands/DisplayEntityEditorBrigadierCommand.java +++ b/src/main/java/goldenshadow/displayentityeditor/commands/DisplayEntityEditorBrigadierCommand.java @@ -30,7 +30,6 @@ * Manages all command registration and execution for editing display entities. * Handles inventory management and command processing for players. */ -@SuppressWarnings("UnstableApiUsage") public class DisplayEntityEditorBrigadierCommand { /** Stores saved player inventories mapped by player UUID for later restoration */ @@ -45,9 +44,11 @@ public LiteralCommandNode createCommand() { return Commands.literal("displayentityeditor") .executes(ctx -> { Player p = getPlayerOrFail(ctx); - if (p == null) return 0; + if (p == null) { + return 0; + } - if (savedInventories.containsKey(p.getUniqueId())) { + if (this.savedInventories.containsKey(p.getUniqueId())) { returnInventory(p); p.sendMessage(Utilities.getInfoMessageFormat(DisplayEntityEditor.messageManager.getString("inventory_returned"))); return Command.SINGLE_SUCCESS; @@ -68,7 +69,9 @@ public LiteralCommandNode createCommand() { .then(Commands.literal("reload") .executes(ctx -> { Player p = getPlayerOrFail(ctx); - if (p == null) return 0; + if (p == null) { + return 0; + } try { DisplayEntityEditor.getPlugin().reloadConfig(); @@ -113,7 +116,9 @@ private LiteralCommandNode editCommand(String name, InputTyp .executes(ctx -> { // Validate player is online and alternate text input is enabled Player p = getPlayerOrFail(ctx); - if (p == null || !DisplayEntityEditor.alternateTextInput) return 0; + if (p == null || !DisplayEntityEditor.alternateTextInput) { + return 0; + } // Get the input string and nearest display entity String input = StringArgumentType.getString(ctx, "value"); @@ -151,7 +156,9 @@ private LiteralCommandNode floatCommand(String name, InputTy .executes(ctx -> { // Validate player is online and alternate text input is enabled Player p = getPlayerOrFail(ctx); - if (p == null || !DisplayEntityEditor.alternateTextInput) return 0; + if (p == null || !DisplayEntityEditor.alternateTextInput) { + return 0; + } // Get float value and nearest display entity float value = FloatArgumentType.getFloat(ctx, "value"); @@ -185,7 +192,9 @@ private LiteralCommandNode byteCommand(String name, InputTyp .executes(ctx -> { // Validate player is online and alternate text input is enabled Player p = getPlayerOrFail(ctx); - if (p == null || !DisplayEntityEditor.alternateTextInput) return 0; + if (p == null || !DisplayEntityEditor.alternateTextInput) { + return 0; + } // Get byte value and nearest display entity int value = IntegerArgumentType.getInteger(ctx, "value"); @@ -218,7 +227,9 @@ private LiteralCommandNode integerCommand(String name, Input .executes(ctx -> { // Validate player is online and alternate text input is enabled Player p = getPlayerOrFail(ctx); - if (p == null || !DisplayEntityEditor.alternateTextInput) return 0; + if (p == null || !DisplayEntityEditor.alternateTextInput) { + return 0; + } // Get integer value and nearest display entity int value = IntegerArgumentType.getInteger(ctx, "value"); @@ -261,7 +272,7 @@ private Player getPlayerOrFail(com.mojang.brigadier.context.CommandContext { byte b = (byte) integer; @@ -122,7 +118,7 @@ public static void successfulByteInput(InputData inputData, int integer, Player if (t.getBackgroundColor() != null) { t.setBackgroundColor(Color.fromARGB(integer, t.getBackgroundColor().getRed(), t.getBackgroundColor().getGreen(), t.getBackgroundColor().getBlue())); } else { - t.setBackgroundColor(Color.fromARGB(integer,0,0,0)); + t.setBackgroundColor(Color.fromARGB(integer, 0, 0, 0)); } player.sendRawMessage(Utilities.getInfoMessageFormat(DisplayEntityEditor.messageManager.getString("opacity_success"))); } @@ -159,7 +155,7 @@ public static void successfulFloatInput(InputData inputData, float f, Player pla } @SuppressWarnings("deprecation") - public static void successfulTextInput(InputData inputData, String s ,Player player) { + public static void successfulTextInput(@NonNull InputData inputData, String s, Player player) { switch (inputData.inputType()) { case NAME -> { @@ -207,7 +203,7 @@ public static void successfulTextInput(InputData inputData, String s ,Player pla if (t.getBackgroundColor() != null) { t.setBackgroundColor(Color.fromARGB(t.getBackgroundColor().getAlpha(), array[0], array[1], array[2])); } else { - t.setBackgroundColor(Color.fromARGB(255,array[0],array[1],array[2])); + t.setBackgroundColor(Color.fromARGB(255, array[0], array[1], array[2])); } player.sendRawMessage(Utilities.getInfoMessageFormat(DisplayEntityEditor.messageManager.getString("background_color_success"))); } else { @@ -219,8 +215,9 @@ public static void successfulTextInput(InputData inputData, String s ,Player pla if (array != null) { BlockData blockData; - if (inputData.entity() instanceof BlockDisplay) blockData = ((BlockDisplay) inputData.entity()).getBlock(); - else { + if (inputData.entity() instanceof BlockDisplay) { + blockData = ((BlockDisplay) inputData.entity()).getBlock(); + } else { blockData = null; } diff --git a/src/main/java/goldenshadow/displayentityeditor/conversation/IntegerPrompt.java b/src/main/java/goldenshadow/displayentityeditor/conversation/IntegerPrompt.java index c9b3e21..fa8994a 100644 --- a/src/main/java/goldenshadow/displayentityeditor/conversation/IntegerPrompt.java +++ b/src/main/java/goldenshadow/displayentityeditor/conversation/IntegerPrompt.java @@ -9,7 +9,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; - public class IntegerPrompt extends NumericPrompt { private final String message; @@ -30,7 +29,7 @@ public IntegerPrompt(String message) { @NotNull @Override public String getPromptText(@NotNull ConversationContext conversationContext) { - return message; + return this.message; } /** diff --git a/src/main/java/goldenshadow/displayentityeditor/conversation/TextPrompt.java b/src/main/java/goldenshadow/displayentityeditor/conversation/TextPrompt.java index a340698..03d926f 100644 --- a/src/main/java/goldenshadow/displayentityeditor/conversation/TextPrompt.java +++ b/src/main/java/goldenshadow/displayentityeditor/conversation/TextPrompt.java @@ -7,7 +7,6 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; - public class TextPrompt extends StringPrompt { private final String message; @@ -28,7 +27,7 @@ public TextPrompt(String message) { @NotNull @Override public String getPromptText(@NotNull ConversationContext conversationContext) { - return message; + return this.message; } /** @@ -48,8 +47,4 @@ public Prompt acceptInput(@NotNull ConversationContext conversationContext, @Nul } return END_OF_CONVERSATION; } - - - - } diff --git a/src/main/java/goldenshadow/displayentityeditor/enums/LockSearchMode.java b/src/main/java/goldenshadow/displayentityeditor/enums/LockSearchMode.java index 8886051..3c475b1 100644 --- a/src/main/java/goldenshadow/displayentityeditor/enums/LockSearchMode.java +++ b/src/main/java/goldenshadow/displayentityeditor/enums/LockSearchMode.java @@ -1,9 +1,9 @@ package goldenshadow.displayentityeditor.enums; -import java.util.function.Predicate; - import org.bukkit.entity.Display; +import java.util.function.Predicate; + public enum LockSearchMode { ALL(display -> true), @@ -14,12 +14,12 @@ public enum LockSearchMode { private final Predicate predicate; - private LockSearchMode(final Predicate predicate) { + LockSearchMode(final Predicate predicate) { this.predicate = predicate; } public Predicate getPredicate() { - return predicate; + return this.predicate; } public LockSearchMode previousMode() { @@ -31,5 +31,4 @@ public LockSearchMode nextMode() { int i = ordinal(); return i + 1 == MODES.length ? MODES[0] : MODES[i + 1]; } - } diff --git a/src/main/java/goldenshadow/displayentityeditor/events/Interact.java b/src/main/java/goldenshadow/displayentityeditor/events/Interact.java index f3913c8..c9ef3f9 100644 --- a/src/main/java/goldenshadow/displayentityeditor/events/Interact.java +++ b/src/main/java/goldenshadow/displayentityeditor/events/Interact.java @@ -5,8 +5,17 @@ import goldenshadow.displayentityeditor.SelectionMode; import goldenshadow.displayentityeditor.Utilities; import goldenshadow.displayentityeditor.enums.LockSearchMode; -import org.bukkit.*; -import org.bukkit.entity.*; +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.Particle; +import org.bukkit.entity.BlockDisplay; +import org.bukkit.entity.Display; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.ItemDisplay; +import org.bukkit.entity.Player; +import org.bukkit.entity.TextDisplay; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; @@ -143,47 +152,47 @@ private static void updateItems(Player p) { if (s != null) { switch (s) { case "InventoryRotateYaw" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().rotateYaw(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().rotateYaw(p)); case "InventoryRotatePitch" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().rotatePitch(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().rotatePitch(p)); case "InventoryMoveX" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().moveX(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().moveX(p)); case "InventoryMoveY" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().moveY(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().moveY(p)); case "InventoryMoveZ" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().moveZ(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().moveZ(p)); case "InventoryLRX" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().leftRotationX(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().leftRotationX(p)); case "InventoryLRY" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().leftRotationY(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().leftRotationY(p)); case "InventoryLRZ" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().leftRotationZ(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().leftRotationZ(p)); case "InventoryRRX" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().rightRotationX(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().rightRotationX(p)); case "InventoryRRY" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().rightRotationY(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().rightRotationY(p)); case "InventoryRRZ" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().rightRotationZ(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().rightRotationZ(p)); case "InventoryTX" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().translationX(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().translationX(p)); case "InventoryTY" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().translationY(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().translationY(p)); case "InventoryTZ" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().translationZ(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().translationZ(p)); case "InventorySX" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().scaleX(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().scaleX(p)); case "InventorySY" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().scaleY(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().scaleY(p)); case "InventorySZ" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().scaleZ(p)); - case "InventoryToolPrecision" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().toolPrecision(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().scaleZ(p)); + case "InventoryToolPrecision" -> + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().toolPrecision(p)); case "InventoryToolSelectionRange" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().toolSelectionRange(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().toolSelectionRange(p)); case "InventoryToolSelectionMode" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().toolSelectionMode(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().toolSelectionMode(p)); case "InventoryGroupSelect" -> - p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.getInventoryItems().groupSelectTool(p)); + p.getInventory().setItem(i, DisplayEntityEditor.inventoryFactory.inventoryItems().groupSelectTool(p)); } } } @@ -243,7 +252,7 @@ public void interact(PlayerInteractEvent event) { return; } case "InventoryUnlock" -> { - Collection displays = editingHandler.getEditingDisplays(player, LockSearchMode.LOCKED); + Collection displays = this.editingHandler.getEditingDisplays(player, LockSearchMode.LOCKED); if (displays == null) { player.sendMessage(Utilities.getErrorMessageFormat(DisplayEntityEditor.messageManager.getString("unlock_fail"))); @@ -334,7 +343,7 @@ public void interact(PlayerInteractEvent event) { } } - Collection displays = editingHandler.getEditingDisplays(player); + Collection displays = this.editingHandler.getEditingDisplays(player); if (displays == null) { player.sendMessage(Utilities.getErrorMessageFormat(DisplayEntityEditor.messageManager.getString("generic_fail"))); @@ -391,8 +400,6 @@ public void interact(PlayerInteractEvent event) { display.teleport(display.getLocation().add(0.1 * Utilities.getToolPrecision(player), 0, 0)); Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("move_x").formatted(df.format(display.getLocation().getX()))); }); - - } case "InventoryMoveY" -> { if (player.isSneaking()) { @@ -407,7 +414,6 @@ public void interact(PlayerInteractEvent event) { display.teleport(display.getLocation().add(0, 0.1 * Utilities.getToolPrecision(player), 0)); Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("move_y").formatted(df.format(display.getLocation().getY()))); }); - } case "InventoryMoveZ" -> { if (player.isSneaking()) { @@ -422,11 +428,8 @@ public void interact(PlayerInteractEvent event) { display.teleport(display.getLocation().add(0, 0, 0.1 * Utilities.getToolPrecision(player))); Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("move_z").formatted(df.format(display.getLocation().getZ()))); }); - - } - case "InventoryHighlight" -> { - displays.forEach(Interact::highlightEntity); } + case "InventoryHighlight" -> displays.forEach(Interact::highlightEntity); case "InventoryCenterPivot" -> { displays.forEach(display -> { Transformation t = display.getTransformation(); @@ -439,193 +442,166 @@ public void interact(PlayerInteractEvent event) { }); Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("center_pivot")); } - case "InventoryTX" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - if (player.isSneaking()) { - t.getTranslation().add((float) (-0.1f * Utilities.getToolPrecision(player)), 0, 0); - } else { - t.getTranslation().add((float) (0.1f * Utilities.getToolPrecision(player)), 0, 0); - } - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("translation_x").formatted(df.format(t.getTranslation().x()))); - display.setTransformation(t); - }); - } - case "InventoryTY" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - if (player.isSneaking()) { - t.getTranslation().add(0, (float) (-0.1f * Utilities.getToolPrecision(player)), 0); - } else { - t.getTranslation().add(0, (float) (0.1f * Utilities.getToolPrecision(player)), 0); - } - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("translation_y").formatted(df.format(t.getTranslation().y()))); - display.setTransformation(t); - }); - } - case "InventoryTZ" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - if (player.isSneaking()) { - t.getTranslation().add(0, 0, (float) (-0.1f * Utilities.getToolPrecision(player))); - } else { - t.getTranslation().add(0, 0, (float) (0.1f * Utilities.getToolPrecision(player))); - } - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("translation_z").formatted(df.format(t.getTranslation().z()))); - display.setTransformation(t); - }); - } - case "InventorySX" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - if (player.isSneaking()) { - t.getScale().add((float) (-0.1f * Utilities.getToolPrecision(player)), 0, 0); - } else { - t.getScale().add((float) (0.1f * Utilities.getToolPrecision(player)), 0, 0); - } - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("scale_x").formatted(df.format(t.getScale().x()))); - display.setTransformation(t); - }); - } - case "InventorySY" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - if (player.isSneaking()) { - t.getScale().add(0, (float) (-0.1f * Utilities.getToolPrecision(player)), 0); - } else { - t.getScale().add(0, (float) (0.1f * Utilities.getToolPrecision(player)), 0); - } - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("scale_y").formatted(df.format(t.getScale().y()))); - display.setTransformation(t); - }); - } - case "InventorySZ" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - if (player.isSneaking()) { - t.getScale().add(0, 0, (float) (-0.1f * Utilities.getToolPrecision(player))); - } else { - t.getScale().add(0, 0, (float) (0.1f * Utilities.getToolPrecision(player))); - } - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("scale_z").formatted(df.format(t.getScale().z()))); - display.setTransformation(t); - }); - } - case "InventoryLRX" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - boolean b = Utilities.getData(display, "GUILRNormalize"); - if (player.isSneaking()) { - t.getLeftRotation().add((float) (-0.1f * Utilities.getToolPrecision(player)), 0, 0, 0); - } else { - t.getLeftRotation().add((float) (0.1f * Utilities.getToolPrecision(player)), 0, 0, 0); - } - if (b) { - t.getLeftRotation().normalize(); - } - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("left_rot_x").formatted((b ? DisplayEntityEditor.messageManager.getString("normalized") : ""), df.format(t.getLeftRotation().x()))); - display.setTransformation(t); - }); - } - case "InventoryLRY" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - boolean b = Utilities.getData(display, "GUILRNormalize"); - if (player.isSneaking()) { - t.getLeftRotation().add(0, (float) (-0.1f * Utilities.getToolPrecision(player)), 0, 0); - } else { - t.getLeftRotation().add(0, (float) (0.1f * Utilities.getToolPrecision(player)), 0, 0); - } - if (b) { - t.getLeftRotation().normalize(); - } - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("left_rot_y").formatted((b ? DisplayEntityEditor.messageManager.getString("normalized") : ""), df.format(t.getLeftRotation().y()))); - display.setTransformation(t); - }); - } - case "InventoryLRZ" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - boolean b = Utilities.getData(display, "GUILRNormalize"); - if (player.isSneaking()) { - t.getLeftRotation().add(0, 0, (float) (-0.1f * Utilities.getToolPrecision(player)), 0); - } else { - t.getLeftRotation().add(0, 0, (float) (0.1f * Utilities.getToolPrecision(player)), 0); - } - if (b) { - t.getLeftRotation().normalize(); - } - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("left_rot_z").formatted((b ? DisplayEntityEditor.messageManager.getString("normalized") : ""), df.format(t.getLeftRotation().z()))); - display.setTransformation(t); - }); - } - case "InventoryRRX" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - boolean b = Utilities.getData(display, "GUIRRNormalize"); - if (player.isSneaking()) { - t.getRightRotation().add((float) (-0.1f * Utilities.getToolPrecision(player)), 0, 0, 0); - } else { - t.getRightRotation().add((float) (0.1f * Utilities.getToolPrecision(player)), 0, 0, 0); - } - if (b) { - t.getRightRotation().normalize(); - } - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("right_rot_x").formatted((b ? DisplayEntityEditor.messageManager.getString("normalized") : ""), df.format(t.getRightRotation().x()))); - display.setTransformation(t); - }); - } - case "InventoryRRY" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - boolean b = Utilities.getData(display, "GUIRRNormalize"); - if (player.isSneaking()) { - t.getRightRotation().add(0, (float) (-0.1f * Utilities.getToolPrecision(player)), 0, 0); - } else { - t.getRightRotation().add(0, (float) (0.1f * Utilities.getToolPrecision(player)), 0, 0); - } - if (b) { - t.getRightRotation().normalize(); - } - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("right_rot_y").formatted((b ? DisplayEntityEditor.messageManager.getString("normalized") : ""), df.format(t.getRightRotation().y()))); - display.setTransformation(t); - }); - } - case "InventoryRRZ" -> { - displays.forEach(display -> { + case "InventoryTX" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + if (player.isSneaking()) { + t.getTranslation().add(-0.1f * Utilities.getToolPrecision(player), 0, 0); + } else { + t.getTranslation().add(0.1f * Utilities.getToolPrecision(player), 0, 0); + } + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("translation_x").formatted(df.format(t.getTranslation().x()))); + display.setTransformation(t); + }); + case "InventoryTY" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + if (player.isSneaking()) { + t.getTranslation().add(0, -0.1f * Utilities.getToolPrecision(player), 0); + } else { + t.getTranslation().add(0, 0.1f * Utilities.getToolPrecision(player), 0); + } + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("translation_y").formatted(df.format(t.getTranslation().y()))); + display.setTransformation(t); + }); + case "InventoryTZ" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + if (player.isSneaking()) { + t.getTranslation().add(0, 0, -0.1f * Utilities.getToolPrecision(player)); + } else { + t.getTranslation().add(0, 0, 0.1f * Utilities.getToolPrecision(player)); + } + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("translation_z").formatted(df.format(t.getTranslation().z()))); + display.setTransformation(t); + }); + case "InventorySX" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + if (player.isSneaking()) { + t.getScale().add(-0.1f * Utilities.getToolPrecision(player), 0, 0); + } else { + t.getScale().add(0.1f * Utilities.getToolPrecision(player), 0, 0); + } + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("scale_x").formatted(df.format(t.getScale().x()))); + display.setTransformation(t); + }); + case "InventorySY" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + if (player.isSneaking()) { + t.getScale().add(0, -0.1f * Utilities.getToolPrecision(player), 0); + } else { + t.getScale().add(0, 0.1f * Utilities.getToolPrecision(player), 0); + } + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("scale_y").formatted(df.format(t.getScale().y()))); + display.setTransformation(t); + }); + case "InventorySZ" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + if (player.isSneaking()) { + t.getScale().add(0, 0, -0.1f * Utilities.getToolPrecision(player)); + } else { + t.getScale().add(0, 0, 0.1f * Utilities.getToolPrecision(player)); + } + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("scale_z").formatted(df.format(t.getScale().z()))); + display.setTransformation(t); + }); + case "InventoryLRX" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + boolean b = Utilities.getData(display, "GUILRNormalize"); + if (player.isSneaking()) { + t.getLeftRotation().add(-0.1f * Utilities.getToolPrecision(player), 0, 0, 0); + } else { + t.getLeftRotation().add(0.1f * Utilities.getToolPrecision(player), 0, 0, 0); + } + if (b) { + t.getLeftRotation().normalize(); + } + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("left_rot_x").formatted((b ? DisplayEntityEditor.messageManager.getString("normalized") : ""), df.format(t.getLeftRotation().x()))); + display.setTransformation(t); + }); + case "InventoryLRY" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + boolean b = Utilities.getData(display, "GUILRNormalize"); + if (player.isSneaking()) { + t.getLeftRotation().add(0, -0.1f * Utilities.getToolPrecision(player), 0, 0); + } else { + t.getLeftRotation().add(0, 0.1f * Utilities.getToolPrecision(player), 0, 0); + } + if (b) { + t.getLeftRotation().normalize(); + } + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("left_rot_y").formatted((b ? DisplayEntityEditor.messageManager.getString("normalized") : ""), df.format(t.getLeftRotation().y()))); + display.setTransformation(t); + }); + case "InventoryLRZ" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + boolean b = Utilities.getData(display, "GUILRNormalize"); + if (player.isSneaking()) { + t.getLeftRotation().add(0, 0, -0.1f * Utilities.getToolPrecision(player), 0); + } else { + t.getLeftRotation().add(0, 0, 0.1f * Utilities.getToolPrecision(player), 0); + } + if (b) { + t.getLeftRotation().normalize(); + } + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("left_rot_z").formatted((b ? DisplayEntityEditor.messageManager.getString("normalized") : ""), df.format(t.getLeftRotation().z()))); + display.setTransformation(t); + }); + case "InventoryRRX" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + boolean b = Utilities.getData(display, "GUIRRNormalize"); + if (player.isSneaking()) { + t.getRightRotation().add(-0.1f * Utilities.getToolPrecision(player), 0, 0, 0); + } else { + t.getRightRotation().add(0.1f * Utilities.getToolPrecision(player), 0, 0, 0); + } + if (b) { + t.getRightRotation().normalize(); + } + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("right_rot_x").formatted((b ? DisplayEntityEditor.messageManager.getString("normalized") : ""), df.format(t.getRightRotation().x()))); + display.setTransformation(t); + }); + case "InventoryRRY" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + boolean b = Utilities.getData(display, "GUIRRNormalize"); + if (player.isSneaking()) { + t.getRightRotation().add(0, -0.1f * Utilities.getToolPrecision(player), 0, 0); + } else { + t.getRightRotation().add(0, 0.1f * Utilities.getToolPrecision(player), 0, 0); + } + if (b) { + t.getRightRotation().normalize(); + } + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("right_rot_y").formatted((b ? DisplayEntityEditor.messageManager.getString("normalized") : ""), df.format(t.getRightRotation().y()))); + display.setTransformation(t); + }); + case "InventoryRRZ" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + boolean b = Utilities.getData(display, "GUIRRNormalize"); + if (player.isSneaking()) { + t.getRightRotation().add(0, 0, -0.1f * Utilities.getToolPrecision(player), 0); + } else { + t.getRightRotation().add(0, 0, 0.1f * Utilities.getToolPrecision(player), 0); + } + if (b) { + t.getRightRotation().normalize(); + } + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("right_rot_z").formatted((b ? DisplayEntityEditor.messageManager.getString("normalized") : ""), df.format(t.getRightRotation().z()))); + display.setTransformation(t); + }); + case "InventoryCenterBlock" -> displays.forEach(display -> { + if (display instanceof BlockDisplay) { Transformation t = display.getTransformation(); - boolean b = Utilities.getData(display, "GUIRRNormalize"); - if (player.isSneaking()) { - t.getRightRotation().add(0, 0, (float) (-0.1f * Utilities.getToolPrecision(player)), 0); - } else { - t.getRightRotation().add(0, 0, (float) (0.1f * Utilities.getToolPrecision(player)), 0); - } - if (b) { - t.getRightRotation().normalize(); - } - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("right_rot_z").formatted((b ? DisplayEntityEditor.messageManager.getString("normalized") : ""), df.format(t.getRightRotation().z()))); + t.getTranslation().set(-1 * (t.getScale().x() / 2), -1 * (t.getScale().y() / 2), -1 * (t.getScale().z() / 2)); display.setTransformation(t); - }); - } - case "InventoryCenterBlock" -> { - displays.forEach(display -> { - if (display instanceof BlockDisplay) { - Transformation t = display.getTransformation(); - t.getTranslation().set(-1 * (t.getScale().x() / 2), -1 * (t.getScale().y() / 2), -1 * (t.getScale().z() / 2)); - display.setTransformation(t); - } - - Location loc = display.getLocation(); - loc.setX((int) loc.getX() + (((loc.getX()) < 0 ? -1 : 1) * 0.5)); - loc.setZ((int) loc.getZ() + (((loc.getZ()) < 0 ? -1 : 1) * 0.5)); - if (!player.isSneaking()) { - loc.setY((int) loc.getY() + (((loc.getY()) < 0 ? -1 : 1) * 0.5)); - } - display.teleport(loc); - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("center_block").formatted(loc.getX(), loc.getY(), loc.getZ())); - }); + } - } + Location loc = display.getLocation(); + loc.setX((int) loc.getX() + (((loc.getX()) < 0 ? -1 : 1) * 0.5)); + loc.setZ((int) loc.getZ() + (((loc.getZ()) < 0 ? -1 : 1) * 0.5)); + if (!player.isSneaking()) { + loc.setY((int) loc.getY() + (((loc.getY()) < 0 ? -1 : 1) * 0.5)); + } + display.teleport(loc); + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("center_block").formatted(loc.getX(), loc.getY(), loc.getZ())); + }); case "InventoryClone" -> { displays.forEach(display -> { Display clone = (Display) display.getWorld().spawnEntity(display.getLocation(), display.getType(), false); @@ -638,7 +614,7 @@ public void interact(PlayerInteractEvent event) { Collection group = new HashSet<>(); double distance = Utilities.getToolSelectRange(player); Predicate predicate = Utilities.getToolSearchMode(player).getPredicate(); - for (Entity e : player.getNearbyEntities(distance,distance,distance)) { + for (Entity e : player.getNearbyEntities(distance, distance, distance)) { if (e instanceof Display d) { if (predicate.test(d)) { group.add(d); @@ -647,17 +623,16 @@ public void interact(PlayerInteractEvent event) { } } if (!group.isEmpty()) { - editingHandler.setEditingDisplays(player, group); + this.editingHandler.setEditingDisplays(player, group); player.sendMessage(Utilities.getInfoMessageFormat(DisplayEntityEditor.messageManager.getString("group_select_success").formatted(group.size()))); } else { player.sendMessage(Utilities.getErrorMessageFormat(DisplayEntityEditor.messageManager.getString("group_select_fail"))); } } else { - editingHandler.removeEditingDisplays(player); + this.editingHandler.removeEditingDisplays(player); player.sendMessage(Utilities.getInfoMessageFormat(DisplayEntityEditor.messageManager.getString("group_select_clear"))); } } } } - -} \ No newline at end of file +} diff --git a/src/main/java/goldenshadow/displayentityeditor/events/InventoryClick.java b/src/main/java/goldenshadow/displayentityeditor/events/InventoryClick.java index 2ef4596..11f5c05 100644 --- a/src/main/java/goldenshadow/displayentityeditor/events/InventoryClick.java +++ b/src/main/java/goldenshadow/displayentityeditor/events/InventoryClick.java @@ -9,16 +9,18 @@ import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.block.data.BlockData; -import org.bukkit.entity.*; +import org.bukkit.entity.BlockDisplay; +import org.bukkit.entity.Display; +import org.bukkit.entity.ItemDisplay; +import org.bukkit.entity.Player; +import org.bukkit.entity.TextDisplay; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.inventory.ItemStack; - public class InventoryClick implements Listener { - /** * Used to listen for when a player clicks on a gui item * @param event The event @@ -26,7 +28,7 @@ public class InventoryClick implements Listener { @EventHandler public void inventoryClick(InventoryClickEvent event) { Player player = (Player) event.getWhoClicked(); - if (player.getOpenInventory().getTitle().equals(ChatColor.translateAlternateColorCodes('&' ,DisplayEntityEditor.messageManager.getString("item_display_gui_name"))) || player.getOpenInventory().getTitle().equals(ChatColor.translateAlternateColorCodes('&' ,DisplayEntityEditor.messageManager.getString("block_display_gui_name"))) || player.getOpenInventory().getTitle().equals(ChatColor.translateAlternateColorCodes('&' ,DisplayEntityEditor.messageManager.getString("text_display_gui_name")))) { + if (player.getOpenInventory().getTitle().equals(ChatColor.translateAlternateColorCodes('&', DisplayEntityEditor.messageManager.getString("item_display_gui_name"))) || player.getOpenInventory().getTitle().equals(ChatColor.translateAlternateColorCodes('&', DisplayEntityEditor.messageManager.getString("block_display_gui_name"))) || player.getOpenInventory().getTitle().equals(ChatColor.translateAlternateColorCodes('&', DisplayEntityEditor.messageManager.getString("text_display_gui_name")))) { Display entity = DisplayEntityEditor.currentEditMap.get(player.getUniqueId()); if (event.getClickedInventory() != null && !event.getClickedInventory().equals(player.getInventory())) { if (event.getCurrentItem() != null && Utilities.hasDataKey(event.getCurrentItem())) { @@ -53,7 +55,7 @@ public void inventoryClick(InventoryClickEvent event) { } else { entity.setCustomNameVisible(false); entity.setCustomName(null); - player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.getGuiItems().name(null)); + player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.guiItems().name(null)); } } case "GUIGlow" -> { @@ -61,8 +63,9 @@ public void inventoryClick(InventoryClickEvent event) { boolean b = !entity.isGlowing(); BlockData blockData; - if (entity instanceof BlockDisplay) blockData = ((BlockDisplay) entity).getBlock(); - else { + if (entity instanceof BlockDisplay) { + blockData = ((BlockDisplay) entity).getBlock(); + } else { blockData = null; } @@ -72,7 +75,7 @@ public void inventoryClick(InventoryClickEvent event) { Bukkit.getScheduler().scheduleSyncDelayedTask(DisplayEntityEditor.getPlugin(), () -> ((BlockDisplay) entity).setBlock(blockData), 1L); } - player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.getGuiItems().glowing(b)); + player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.guiItems().glowing(b)); } } case "GUIGlowColor" -> { @@ -89,14 +92,14 @@ public void inventoryClick(InventoryClickEvent event) { if (event.isLeftClick()) { boolean b = !Utilities.getData(entity, "GUILRNormalize"); Utilities.setData(entity, "GUILRNormalize", b); - player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.getGuiItems().leftRotNormalize(b)); + player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.guiItems().leftRotNormalize(b)); } } case "GUIRRNormalize" -> { if (event.isLeftClick()) { boolean b = !Utilities.getData(entity, "GUIRRNormalize"); Utilities.setData(entity, "GUIRRNormalize", b); - player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.getGuiItems().rightRotNormalize(b)); + player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.guiItems().rightRotNormalize(b)); } } case "GUIViewRange" -> { @@ -115,7 +118,7 @@ public void inventoryClick(InventoryClickEvent event) { player.closeInventory(); if (DisplayEntityEditor.alternateTextInput) { - player.spigot().sendMessage(Utilities.getCommandMessage("display_width ","")); + player.spigot().sendMessage(Utilities.getCommandMessage("display_width ", "")); } else { InputManager.createFloatInput(player, DisplayEntityEditor.messageManager.getString("generic_hint"), new InputData(entity, InputType.DISPLAY_WIDTH, null)); } @@ -136,20 +139,21 @@ public void inventoryClick(InventoryClickEvent event) { if (event.isLeftClick()) { BlockData blockData; - if (entity instanceof BlockDisplay) blockData = ((BlockDisplay) entity).getBlock(); - else { + if (entity instanceof BlockDisplay) { + blockData = ((BlockDisplay) entity).getBlock(); + } else { blockData = null; } Display.Billboard billboard = entity.getBillboard(); - billboard = Display.Billboard.values()[(billboard.ordinal()+1) % Display.Billboard.values().length]; + billboard = Display.Billboard.values()[(billboard.ordinal() + 1) % Display.Billboard.values().length]; entity.setBillboard(billboard); if (entity instanceof BlockDisplay) { Bukkit.getScheduler().scheduleSyncDelayedTask(DisplayEntityEditor.getPlugin(), () -> ((BlockDisplay) entity).setBlock(blockData), 1L); } - player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.getGuiItems().billboard(billboard)); + player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.guiItems().billboard(billboard)); } } case "GUIShadowRadius" -> { @@ -185,16 +189,17 @@ public void inventoryClick(InventoryClickEvent event) { if (event.isLeftClick()) { BlockData blockData; - if (entity instanceof BlockDisplay) blockData = ((BlockDisplay) entity).getBlock(); - else { + if (entity instanceof BlockDisplay) { + blockData = ((BlockDisplay) entity).getBlock(); + } else { blockData = null; } Display.Brightness b; if (entity.getBrightness() != null) { - b = new Display.Brightness(entity.getBrightness().getBlockLight(), (entity.getBrightness().getSkyLight()+1) % 16); + b = new Display.Brightness(entity.getBrightness().getBlockLight(), (entity.getBrightness().getSkyLight() + 1) % 16); } else { - b = new Display.Brightness(0,0); + b = new Display.Brightness(0, 0); } entity.setBrightness(b); @@ -202,14 +207,15 @@ public void inventoryClick(InventoryClickEvent event) { Bukkit.getScheduler().scheduleSyncDelayedTask(DisplayEntityEditor.getPlugin(), () -> ((BlockDisplay) entity).setBlock(blockData), 1L); } - player.getOpenInventory().setItem(8, DisplayEntityEditor.inventoryFactory.getGuiItems().skyLight(b.getSkyLight())); - player.getOpenInventory().setItem(17, DisplayEntityEditor.inventoryFactory.getGuiItems().blockLight(b.getBlockLight())); + player.getOpenInventory().setItem(8, DisplayEntityEditor.inventoryFactory.guiItems().skyLight(b.getSkyLight())); + player.getOpenInventory().setItem(17, DisplayEntityEditor.inventoryFactory.guiItems().blockLight(b.getBlockLight())); } if (event.isRightClick()) { BlockData blockData; - if (entity instanceof BlockDisplay) blockData = ((BlockDisplay) entity).getBlock(); - else { + if (entity instanceof BlockDisplay) { + blockData = ((BlockDisplay) entity).getBlock(); + } else { blockData = null; } @@ -219,16 +225,17 @@ public void inventoryClick(InventoryClickEvent event) { Bukkit.getScheduler().scheduleSyncDelayedTask(DisplayEntityEditor.getPlugin(), () -> ((BlockDisplay) entity).setBlock(blockData), 1L); } - player.getOpenInventory().setItem(8, DisplayEntityEditor.inventoryFactory.getGuiItems().skyLight(-1)); - player.getOpenInventory().setItem(17, DisplayEntityEditor.inventoryFactory.getGuiItems().blockLight(-1)); + player.getOpenInventory().setItem(8, DisplayEntityEditor.inventoryFactory.guiItems().skyLight(-1)); + player.getOpenInventory().setItem(17, DisplayEntityEditor.inventoryFactory.guiItems().blockLight(-1)); } } case "GUIBlockLight" -> { if (event.isLeftClick()) { BlockData blockData; - if (entity instanceof BlockDisplay) blockData = ((BlockDisplay) entity).getBlock(); - else { + if (entity instanceof BlockDisplay) { + blockData = ((BlockDisplay) entity).getBlock(); + } else { blockData = null; } @@ -236,7 +243,7 @@ public void inventoryClick(InventoryClickEvent event) { if (entity.getBrightness() != null) { b = new Display.Brightness((entity.getBrightness().getBlockLight() + 1) % 16, entity.getBrightness().getSkyLight()); } else { - b = new Display.Brightness(0,0); + b = new Display.Brightness(0, 0); } entity.setBrightness(b); @@ -244,14 +251,15 @@ public void inventoryClick(InventoryClickEvent event) { Bukkit.getScheduler().scheduleSyncDelayedTask(DisplayEntityEditor.getPlugin(), () -> ((BlockDisplay) entity).setBlock(blockData), 1L); } - player.getOpenInventory().setItem(8, DisplayEntityEditor.inventoryFactory.getGuiItems().skyLight(b.getSkyLight())); - player.getOpenInventory().setItem(17, DisplayEntityEditor.inventoryFactory.getGuiItems().blockLight(b.getBlockLight())); + player.getOpenInventory().setItem(8, DisplayEntityEditor.inventoryFactory.guiItems().skyLight(b.getSkyLight())); + player.getOpenInventory().setItem(17, DisplayEntityEditor.inventoryFactory.guiItems().blockLight(b.getBlockLight())); } if (event.isRightClick()) { BlockData blockData; - if (entity instanceof BlockDisplay) blockData = ((BlockDisplay) entity).getBlock(); - else { + if (entity instanceof BlockDisplay) { + blockData = ((BlockDisplay) entity).getBlock(); + } else { blockData = null; } @@ -261,8 +269,8 @@ public void inventoryClick(InventoryClickEvent event) { Bukkit.getScheduler().scheduleSyncDelayedTask(DisplayEntityEditor.getPlugin(), () -> ((BlockDisplay) entity).setBlock(blockData), 1L); } - player.getOpenInventory().setItem(8, DisplayEntityEditor.inventoryFactory.getGuiItems().skyLight(-1)); - player.getOpenInventory().setItem(17, DisplayEntityEditor.inventoryFactory.getGuiItems().blockLight(-1)); + player.getOpenInventory().setItem(8, DisplayEntityEditor.inventoryFactory.guiItems().skyLight(-1)); + player.getOpenInventory().setItem(17, DisplayEntityEditor.inventoryFactory.guiItems().blockLight(-1)); } } case "GUIDelete" -> { @@ -276,9 +284,9 @@ public void inventoryClick(InventoryClickEvent event) { if (event.isLeftClick()) { ItemDisplay itemDisplay = (ItemDisplay) entity; ItemDisplay.ItemDisplayTransform transform = itemDisplay.getItemDisplayTransform(); - transform = ItemDisplay.ItemDisplayTransform.values()[(transform.ordinal()+1) % ItemDisplay.ItemDisplayTransform.values().length]; + transform = ItemDisplay.ItemDisplayTransform.values()[(transform.ordinal() + 1) % ItemDisplay.ItemDisplayTransform.values().length]; itemDisplay.setItemDisplayTransform(transform); - player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.getGuiItems().itemDisplayTransform(transform)); + player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.guiItems().itemDisplayTransform(transform)); } } case "GUIBlockState" -> { @@ -297,7 +305,7 @@ public void inventoryClick(InventoryClickEvent event) { if (event.isRightClick()) { BlockDisplay b = (BlockDisplay) entity; b.setBlock(Bukkit.createBlockData(b.getBlock().getMaterial())); - player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.getGuiItems().blockState(b.getBlock().getAsString(true))); + player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.guiItems().blockState(b.getBlock().getAsString(true))); } } case "GUITextOpacity" -> { @@ -327,7 +335,7 @@ public void inventoryClick(InventoryClickEvent event) { TextDisplay t = (TextDisplay) entity; boolean b = !t.isDefaultBackground(); t.setDefaultBackground(b); - player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.getGuiItems().textDefaultBackground(b)); + player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.guiItems().textDefaultBackground(b)); } } case "GUITextSeeThrough" -> { @@ -335,7 +343,7 @@ public void inventoryClick(InventoryClickEvent event) { TextDisplay t = (TextDisplay) entity; boolean b = !t.isSeeThrough(); t.setSeeThrough(b); - player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.getGuiItems().textSeeThrough(b)); + player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.guiItems().textSeeThrough(b)); } } case "GUITextShadow" -> { @@ -343,7 +351,7 @@ public void inventoryClick(InventoryClickEvent event) { TextDisplay t = (TextDisplay) entity; boolean b = !t.isShadowed(); t.setShadowed(b); - player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.getGuiItems().textShadow(b)); + player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.guiItems().textShadow(b)); } } case "GUITextBackgroundColor" -> { @@ -372,9 +380,9 @@ public void inventoryClick(InventoryClickEvent event) { if (event.isLeftClick()) { TextDisplay textDisplay = (TextDisplay) entity; TextDisplay.TextAlignment alignment = textDisplay.getAlignment(); - alignment = TextDisplay.TextAlignment.values()[(alignment.ordinal()+1) % TextDisplay.TextAlignment.values().length]; + alignment = TextDisplay.TextAlignment.values()[(alignment.ordinal() + 1) % TextDisplay.TextAlignment.values().length]; textDisplay.setAlignment(alignment); - player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.getGuiItems().textAlignment(alignment)); + player.getOpenInventory().setItem(event.getSlot(), DisplayEntityEditor.inventoryFactory.guiItems().textAlignment(alignment)); } } case "GUIText" -> { @@ -422,7 +430,7 @@ public void inventoryClick(InventoryClickEvent event) { } } } - if (player.getOpenInventory().getTitle().equals(ChatColor.translateAlternateColorCodes('&' ,DisplayEntityEditor.messageManager.getString("block_display_gui_name")))) { + if (player.getOpenInventory().getTitle().equals(ChatColor.translateAlternateColorCodes('&', DisplayEntityEditor.messageManager.getString("block_display_gui_name")))) { assert entity instanceof BlockDisplay; BlockDisplay blockDisplay = (BlockDisplay) entity; @@ -442,11 +450,9 @@ public void inventoryClick(InventoryClickEvent event) { blockDisplay.setBlock(Bukkit.createBlockData(Material.AIR)); } }); - - - } else if (player.getOpenInventory().getTitle().equals(ChatColor.translateAlternateColorCodes('&' ,DisplayEntityEditor.messageManager.getString("item_display_gui_name")))) { + } else if (player.getOpenInventory().getTitle().equals(ChatColor.translateAlternateColorCodes('&', DisplayEntityEditor.messageManager.getString("item_display_gui_name")))) { ItemDisplay itemDisplay = (ItemDisplay) entity; - Bukkit.getScheduler().scheduleSyncDelayedTask(DisplayEntityEditor.getPlugin(), () -> itemDisplay.setItemStack(player.getOpenInventory().getItem(10)),1L); + Bukkit.getScheduler().scheduleSyncDelayedTask(DisplayEntityEditor.getPlugin(), () -> itemDisplay.setItemStack(player.getOpenInventory().getItem(10)), 1L); } } } diff --git a/src/main/java/goldenshadow/displayentityeditor/events/OffhandSwap.java b/src/main/java/goldenshadow/displayentityeditor/events/OffhandSwap.java index 18ed3ca..6149d0a 100644 --- a/src/main/java/goldenshadow/displayentityeditor/events/OffhandSwap.java +++ b/src/main/java/goldenshadow/displayentityeditor/events/OffhandSwap.java @@ -3,7 +3,8 @@ import goldenshadow.displayentityeditor.DisplayEntityEditor; import goldenshadow.displayentityeditor.EditingHandler; import goldenshadow.displayentityeditor.Utilities; -import org.bukkit.entity.*; +import org.bukkit.entity.Display; +import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerSwapHandItemsEvent; @@ -19,7 +20,7 @@ public class OffhandSwap implements Listener { private final EditingHandler editingHandler; public OffhandSwap(EditingHandler handler) { - editingHandler = handler; + this.editingHandler = handler; } @EventHandler @@ -36,127 +37,99 @@ public void offHand(PlayerSwapHandItemsEvent event) { if (toolValue == null) { return; } - - switch(toolValue) { - case "InventoryToolSelectionMode" -> { - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("value_reset")); - player.getPersistentDataContainer().remove(DisplayEntityEditor.toolSelectionModeKey); - return; - } - case "InventoryToolSelectionRange" -> { - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("value_reset")); - player.getPersistentDataContainer().remove(DisplayEntityEditor.toolSelectionRangeKey); - return; - } - case "InventoryToolSelectionSearchMode" -> { - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("value_reset")); - player.getPersistentDataContainer().remove(DisplayEntityEditor.toolSelectionSearchModeKey); - return; - } - case "InventoryToolSelectionMultiple" -> { - Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("value_reset")); - player.getPersistentDataContainer().remove(DisplayEntityEditor.toolSelectionMultipleKey); - return; - } + + switch (toolValue) { + case "InventoryToolSelectionMode" -> { + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("value_reset")); + player.getPersistentDataContainer().remove(DisplayEntityEditor.toolSelectionModeKey); + return; + } + case "InventoryToolSelectionRange" -> { + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("value_reset")); + player.getPersistentDataContainer().remove(DisplayEntityEditor.toolSelectionRangeKey); + return; + } + case "InventoryToolSelectionSearchMode" -> { + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("value_reset")); + player.getPersistentDataContainer().remove(DisplayEntityEditor.toolSelectionSearchModeKey); + return; + } + case "InventoryToolSelectionMultiple" -> { + Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("value_reset")); + player.getPersistentDataContainer().remove(DisplayEntityEditor.toolSelectionMultipleKey); + return; + } } - - Collection displays = editingHandler.getEditingDisplays(player); + + Collection displays = this.editingHandler.getEditingDisplays(player); if (displays == null) { player.sendMessage(Utilities.getErrorMessageFormat(DisplayEntityEditor.messageManager.getString("generic_fail"))); return; } Utilities.sendActionbarMessage(player, DisplayEntityEditor.messageManager.getString("value_reset")); switch (toolValue) { - case "InventoryRotateYaw" -> { - displays.forEach(display -> display.setRotation(0, display.getLocation().getPitch())); - } - case "InventoryRotatePitch" -> { - displays.forEach(display -> display.setRotation(display.getLocation().getYaw(), 0)); - } - case "InventoryTX" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - t = new Transformation(new Vector3f(0, t.getTranslation().y(), t.getTranslation().z()), t.getLeftRotation(), t.getScale(), t.getRightRotation()); - display.setTransformation(t); - }); - } - case "InventoryTY" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - t = new Transformation(new Vector3f(t.getTranslation().x(), 0, t.getTranslation().z()), t.getLeftRotation(), t.getScale(), t.getRightRotation()); - display.setTransformation(t); - }); - } - case "InventoryTZ" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - t = new Transformation(new Vector3f(t.getTranslation().x(), t.getTranslation().y(), 0), t.getLeftRotation(), t.getScale(), t.getRightRotation()); - display.setTransformation(t); - }); - } - case "InventorySX" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - t = new Transformation(t.getTranslation(), t.getLeftRotation(), new Vector3f(0, t.getScale().y(), t.getScale().z()), t.getRightRotation()); - display.setTransformation(t); - }); - } - case "InventorySY" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - t = new Transformation(t.getTranslation(), t.getLeftRotation(), new Vector3f(t.getScale().x(), 0, t.getScale().z()), t.getRightRotation()); - display.setTransformation(t); - }); - } - case "InventorySZ" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - t = new Transformation(t.getTranslation(), t.getLeftRotation(), new Vector3f(t.getScale().x(), t.getScale().y(), 0), t.getRightRotation()); - display.setTransformation(t); - }); - } - case "InventoryLRX" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - t = new Transformation(t.getTranslation(), new Quaternionf(0, t.getLeftRotation().y(), t.getLeftRotation().z(), t.getLeftRotation().w()), t.getScale(), t.getRightRotation()); - display.setTransformation(t); - }); - } - case "InventoryLRY" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - t = new Transformation(t.getTranslation(), new Quaternionf(t.getLeftRotation().x(), 0, t.getLeftRotation().z(), t.getLeftRotation().w()), t.getScale(), t.getRightRotation()); - display.setTransformation(t); - }); - } - case "InventoryLRZ" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - t = new Transformation(t.getTranslation(), new Quaternionf(t.getLeftRotation().x(), t.getLeftRotation().y(), 0, t.getLeftRotation().w()), t.getScale(), t.getRightRotation()); - display.setTransformation(t); - }); - } - case "InventoryRRX" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - t = new Transformation(t.getTranslation(), t.getLeftRotation(), t.getScale(), new Quaternionf(0, t.getRightRotation().y(), t.getRightRotation().z(), t.getRightRotation().w())); - display.setTransformation(t); - }); - } - case "InventoryRRY" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - t = new Transformation(t.getTranslation(), t.getLeftRotation(), t.getScale(), new Quaternionf(t.getRightRotation().x(), 0, t.getRightRotation().z(), t.getRightRotation().w())); - display.setTransformation(t); - }); - } - case "InventoryRRZ" -> { - displays.forEach(display -> { - Transformation t = display.getTransformation(); - t = new Transformation(t.getTranslation(), t.getLeftRotation(), t.getScale(), new Quaternionf(t.getRightRotation().x(), t.getRightRotation().y(), 0, t.getRightRotation().w())); - display.setTransformation(t); - }); - } + case "InventoryRotateYaw" -> displays.forEach(display -> display.setRotation(0, display.getLocation().getPitch())); + case "InventoryRotatePitch" -> displays.forEach(display -> display.setRotation(display.getLocation().getYaw(), 0)); + case "InventoryTX" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + t = new Transformation(new Vector3f(0, t.getTranslation().y(), t.getTranslation().z()), t.getLeftRotation(), t.getScale(), t.getRightRotation()); + display.setTransformation(t); + }); + case "InventoryTY" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + t = new Transformation(new Vector3f(t.getTranslation().x(), 0, t.getTranslation().z()), t.getLeftRotation(), t.getScale(), t.getRightRotation()); + display.setTransformation(t); + }); + case "InventoryTZ" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + t = new Transformation(new Vector3f(t.getTranslation().x(), t.getTranslation().y(), 0), t.getLeftRotation(), t.getScale(), t.getRightRotation()); + display.setTransformation(t); + }); + case "InventorySX" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + t = new Transformation(t.getTranslation(), t.getLeftRotation(), new Vector3f(0, t.getScale().y(), t.getScale().z()), t.getRightRotation()); + display.setTransformation(t); + }); + case "InventorySY" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + t = new Transformation(t.getTranslation(), t.getLeftRotation(), new Vector3f(t.getScale().x(), 0, t.getScale().z()), t.getRightRotation()); + display.setTransformation(t); + }); + case "InventorySZ" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + t = new Transformation(t.getTranslation(), t.getLeftRotation(), new Vector3f(t.getScale().x(), t.getScale().y(), 0), t.getRightRotation()); + display.setTransformation(t); + }); + case "InventoryLRX" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + t = new Transformation(t.getTranslation(), new Quaternionf(0, t.getLeftRotation().y(), t.getLeftRotation().z(), t.getLeftRotation().w()), t.getScale(), t.getRightRotation()); + display.setTransformation(t); + }); + case "InventoryLRY" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + t = new Transformation(t.getTranslation(), new Quaternionf(t.getLeftRotation().x(), 0, t.getLeftRotation().z(), t.getLeftRotation().w()), t.getScale(), t.getRightRotation()); + display.setTransformation(t); + }); + case "InventoryLRZ" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + t = new Transformation(t.getTranslation(), new Quaternionf(t.getLeftRotation().x(), t.getLeftRotation().y(), 0, t.getLeftRotation().w()), t.getScale(), t.getRightRotation()); + display.setTransformation(t); + }); + case "InventoryRRX" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + t = new Transformation(t.getTranslation(), t.getLeftRotation(), t.getScale(), new Quaternionf(0, t.getRightRotation().y(), t.getRightRotation().z(), t.getRightRotation().w())); + display.setTransformation(t); + }); + case "InventoryRRY" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + t = new Transformation(t.getTranslation(), t.getLeftRotation(), t.getScale(), new Quaternionf(t.getRightRotation().x(), 0, t.getRightRotation().z(), t.getRightRotation().w())); + display.setTransformation(t); + }); + case "InventoryRRZ" -> displays.forEach(display -> { + Transformation t = display.getTransformation(); + t = new Transformation(t.getTranslation(), t.getLeftRotation(), t.getScale(), new Quaternionf(t.getRightRotation().x(), t.getRightRotation().y(), 0, t.getRightRotation().w())); + display.setTransformation(t); + }); } } } diff --git a/src/main/java/goldenshadow/displayentityeditor/events/PlayerJoin.java b/src/main/java/goldenshadow/displayentityeditor/events/PlayerJoin.java index 02e1bc9..4d3ed8c 100644 --- a/src/main/java/goldenshadow/displayentityeditor/events/PlayerJoin.java +++ b/src/main/java/goldenshadow/displayentityeditor/events/PlayerJoin.java @@ -18,8 +18,7 @@ public class PlayerJoin implements Listener { public void onJoin(PlayerLoginEvent event) { if (event.getPlayer().isOp()) { if (DisplayEntityEditor.getPlugin().getConfig().getBoolean("send-update-message-on-join")) { - DisplayEntityEditor. - getVersion(v -> { + DisplayEntityEditor.getVersion(v -> { if (!DisplayEntityEditor.getPlugin().getDescription().getVersion().equals(v)) { event.getPlayer().sendMessage(Utilities.getErrorMessageFormat(DisplayEntityEditor.messageManager.getString("version_check_fail"))); event.getPlayer().sendMessage(ChatColor.GRAY + DisplayEntityEditor.messageManager.getString("version_check_disable_hint")); diff --git a/src/main/java/goldenshadow/displayentityeditor/events/PlayerLeave.java b/src/main/java/goldenshadow/displayentityeditor/events/PlayerLeave.java index bf8350a..865c45a 100644 --- a/src/main/java/goldenshadow/displayentityeditor/events/PlayerLeave.java +++ b/src/main/java/goldenshadow/displayentityeditor/events/PlayerLeave.java @@ -1,7 +1,6 @@ package goldenshadow.displayentityeditor.events; import goldenshadow.displayentityeditor.DisplayEntityEditor; -import goldenshadow.displayentityeditor.commands.DisplayEntityEditorBrigadierCommand; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerQuitEvent; diff --git a/src/main/java/goldenshadow/displayentityeditor/inventories/InventoryFactory.java b/src/main/java/goldenshadow/displayentityeditor/inventories/InventoryFactory.java index 0117ebb..cff54d8 100644 --- a/src/main/java/goldenshadow/displayentityeditor/inventories/InventoryFactory.java +++ b/src/main/java/goldenshadow/displayentityeditor/inventories/InventoryFactory.java @@ -13,63 +13,50 @@ import org.bukkit.inventory.Inventory; import org.bukkit.inventory.ItemStack; -public class InventoryFactory { - - private final GUIItems guiItems; - private final InventoryItems inventoryItems; +public record InventoryFactory(GUIItems guiItems, InventoryItems inventoryItems) { /** - * Used to create a new inventory factory - * @param guiItems The gui items object it should use - * @param inventoryItems The inventory items object it should use - */ - public InventoryFactory(GUIItems guiItems, InventoryItems inventoryItems) { - this.guiItems = guiItems; - this.inventoryItems = inventoryItems; - } - /** * Getter for the gui items * @return The class containing all gui items */ public GUIItems getGuiItems() { - return guiItems; + return this.guiItems; } public InventoryItems getInventoryItems() { - return inventoryItems; + return this.inventoryItems; } - /** * Used to create the gui for item displays * @param entity The item display entity being edited * @return The gui */ public Inventory createItemDisplayGUI(ItemDisplay entity) { - Inventory inventory = Bukkit.createInventory(null, 27, ChatColor.translateAlternateColorCodes('&' ,DisplayEntityEditor.messageManager.getString("item_display_gui_name"))); + Inventory inventory = Bukkit.createInventory(null, 27, ChatColor.translateAlternateColorCodes('&', DisplayEntityEditor.messageManager.getString("item_display_gui_name"))); for (int i = 0; i < inventory.getSize(); i++) { switch (i) { - case 4 -> inventory.setItem(i, guiItems.name(entity.getCustomName())); - case 5 -> inventory.setItem(i, guiItems.rightRotNormalize(Utilities.getData(entity, "GUIRRNormalize"))); - case 6 -> inventory.setItem(i, guiItems.height(entity.getDisplayHeight())); - case 7 -> inventory.setItem(i, guiItems.shadowRadius(entity.getShadowRadius())); - case 8 -> inventory.setItem(i, guiItems.skyLight(entity.getBrightness() != null ? entity.getBrightness().getSkyLight() : -1)); + case 4 -> inventory.setItem(i, this.guiItems.name(entity.getCustomName())); + case 5 -> inventory.setItem(i, this.guiItems.rightRotNormalize(Utilities.getData(entity, "GUIRRNormalize"))); + case 6 -> inventory.setItem(i, this.guiItems.height(entity.getDisplayHeight())); + case 7 -> inventory.setItem(i, this.guiItems.shadowRadius(entity.getShadowRadius())); + case 8 -> inventory.setItem(i, this.guiItems.skyLight(entity.getBrightness() != null ? entity.getBrightness().getSkyLight() : -1)); case 10 -> inventory.setItem(i, entity.getItemStack()); - case 12 -> inventory.setItem(i, guiItems.itemDisplayTransform(entity.getItemDisplayTransform())); - case 13 -> inventory.setItem(i, guiItems.glowing(entity.isGlowing())); - case 14 -> inventory.setItem(i, guiItems.leftRotNormalize(Utilities.getData(entity, "GUILRNormalize"))); - case 15 -> inventory.setItem(i, guiItems.width(entity.getDisplayWidth())); - case 16 -> inventory.setItem(i, guiItems.shadowStrength(entity.getShadowStrength())); - case 17 -> inventory.setItem(i, guiItems.blockLight(entity.getBrightness() != null ? entity.getBrightness().getBlockLight() : -1)); - - case 22 -> inventory.setItem(i, guiItems.glowColor(entity.getGlowColorOverride())); - case 23 -> inventory.setItem(i, guiItems.viewRange(entity.getViewRange())); - case 24 -> inventory.setItem(i, guiItems.billboard(entity.getBillboard())); - case 25 -> inventory.setItem(i, guiItems.lock()); - case 26 -> inventory.setItem(i, guiItems.delete()); - default -> inventory.setItem(i, guiItems.filler()); + case 12 -> inventory.setItem(i, this.guiItems.itemDisplayTransform(entity.getItemDisplayTransform())); + case 13 -> inventory.setItem(i, this.guiItems.glowing(entity.isGlowing())); + case 14 -> inventory.setItem(i, this.guiItems.leftRotNormalize(Utilities.getData(entity, "GUILRNormalize"))); + case 15 -> inventory.setItem(i, this.guiItems.width(entity.getDisplayWidth())); + case 16 -> inventory.setItem(i, this.guiItems.shadowStrength(entity.getShadowStrength())); + case 17 -> inventory.setItem(i, this.guiItems.blockLight(entity.getBrightness() != null ? entity.getBrightness().getBlockLight() : -1)); + + case 22 -> inventory.setItem(i, this.guiItems.glowColor(entity.getGlowColorOverride())); + case 23 -> inventory.setItem(i, this.guiItems.viewRange(entity.getViewRange())); + case 24 -> inventory.setItem(i, this.guiItems.billboard(entity.getBillboard())); + case 25 -> inventory.setItem(i, this.guiItems.lock()); + case 26 -> inventory.setItem(i, this.guiItems.delete()); + default -> inventory.setItem(i, this.guiItems.filler()); } } return inventory; @@ -81,30 +68,30 @@ public Inventory createItemDisplayGUI(ItemDisplay entity) { * @return The gui */ public Inventory createBlockDisplayGUI(BlockDisplay entity) { - Inventory inventory = Bukkit.createInventory(null, 27, ChatColor.translateAlternateColorCodes('&' ,DisplayEntityEditor.messageManager.getString("block_display_gui_name"))); + Inventory inventory = Bukkit.createInventory(null, 27, ChatColor.translateAlternateColorCodes('&', DisplayEntityEditor.messageManager.getString("block_display_gui_name"))); for (int i = 0; i < inventory.getSize(); i++) { switch (i) { - case 4 -> inventory.setItem(i, guiItems.name(entity.getCustomName())); - case 5 -> inventory.setItem(i, guiItems.rightRotNormalize(Utilities.getData(entity, "GUIRRNormalize"))); - case 6 -> inventory.setItem(i, guiItems.height(entity.getDisplayHeight())); - case 7 -> inventory.setItem(i, guiItems.shadowRadius(entity.getShadowRadius())); - case 8 -> inventory.setItem(i, guiItems.skyLight(entity.getBrightness() != null ? entity.getBrightness().getSkyLight() : -1)); + case 4 -> inventory.setItem(i, this.guiItems.name(entity.getCustomName())); + case 5 -> inventory.setItem(i, this.guiItems.rightRotNormalize(Utilities.getData(entity, "GUIRRNormalize"))); + case 6 -> inventory.setItem(i, this.guiItems.height(entity.getDisplayHeight())); + case 7 -> inventory.setItem(i, this.guiItems.shadowRadius(entity.getShadowRadius())); + case 8 -> inventory.setItem(i, this.guiItems.skyLight(entity.getBrightness() != null ? entity.getBrightness().getSkyLight() : -1)); case 10 -> inventory.setItem(i, new ItemStack(entity.getBlock().getMaterial())); - case 11 -> inventory.setItem(i, guiItems.blockState(entity.getBlock().getAsString(true))); - - case 13 -> inventory.setItem(i, guiItems.glowing(entity.isGlowing())); - case 14 -> inventory.setItem(i, guiItems.leftRotNormalize(Utilities.getData(entity, "GUILRNormalize"))); - case 15 -> inventory.setItem(i, guiItems.width(entity.getDisplayWidth())); - case 16 -> inventory.setItem(i, guiItems.shadowStrength(entity.getShadowStrength())); - case 17 -> inventory.setItem(i, guiItems.blockLight(entity.getBrightness() != null ? entity.getBrightness().getBlockLight() : -1)); - - case 22 -> inventory.setItem(i, guiItems.glowColor(entity.getGlowColorOverride())); - case 23 -> inventory.setItem(i, guiItems.viewRange(entity.getViewRange())); - case 24 -> inventory.setItem(i, guiItems.billboard(entity.getBillboard())); - case 25 -> inventory.setItem(i, guiItems.lock()); - case 26 -> inventory.setItem(i, guiItems.delete()); - default -> inventory.setItem(i, guiItems.filler()); + case 11 -> inventory.setItem(i, this.guiItems.blockState(entity.getBlock().getAsString(true))); + + case 13 -> inventory.setItem(i, this.guiItems.glowing(entity.isGlowing())); + case 14 -> inventory.setItem(i, this.guiItems.leftRotNormalize(Utilities.getData(entity, "GUILRNormalize"))); + case 15 -> inventory.setItem(i, this.guiItems.width(entity.getDisplayWidth())); + case 16 -> inventory.setItem(i, this.guiItems.shadowStrength(entity.getShadowStrength())); + case 17 -> inventory.setItem(i, this.guiItems.blockLight(entity.getBrightness() != null ? entity.getBrightness().getBlockLight() : -1)); + + case 22 -> inventory.setItem(i, this.guiItems.glowColor(entity.getGlowColorOverride())); + case 23 -> inventory.setItem(i, this.guiItems.viewRange(entity.getViewRange())); + case 24 -> inventory.setItem(i, this.guiItems.billboard(entity.getBillboard())); + case 25 -> inventory.setItem(i, this.guiItems.lock()); + case 26 -> inventory.setItem(i, this.guiItems.delete()); + default -> inventory.setItem(i, this.guiItems.filler()); } } return inventory; @@ -117,34 +104,34 @@ public Inventory createBlockDisplayGUI(BlockDisplay entity) { */ @SuppressWarnings("deprecation") public Inventory createTextDisplayGUI(TextDisplay entity) { - Inventory inventory = Bukkit.createInventory(null, 27, ChatColor.translateAlternateColorCodes('&' ,DisplayEntityEditor.messageManager.getString("text_display_gui_name"))); + Inventory inventory = Bukkit.createInventory(null, 27, ChatColor.translateAlternateColorCodes('&', DisplayEntityEditor.messageManager.getString("text_display_gui_name"))); for (int i = 0; i < inventory.getSize(); i++) { switch (i) { - case 2 -> inventory.setItem(i, guiItems.textBackgroundColor(entity.getBackgroundColor())); - case 3 -> inventory.setItem(i, guiItems.textDefaultBackground(entity.isDefaultBackground())); - case 4 -> inventory.setItem(i, guiItems.name(entity.getCustomName())); - case 5 -> inventory.setItem(i, guiItems.rightRotNormalize(Utilities.getData(entity, "GUIRRNormalize"))); - case 6 -> inventory.setItem(i, guiItems.height(entity.getDisplayHeight())); - case 7 -> inventory.setItem(i, guiItems.shadowRadius(entity.getShadowRadius())); - case 8 -> inventory.setItem(i, guiItems.skyLight(entity.getBrightness() != null ? entity.getBrightness().getSkyLight() : -1)); - - case 10 -> inventory.setItem(i, guiItems.text()); - case 11 -> inventory.setItem(i, guiItems.textBackgroundOpacity(entity.getBackgroundColor())); - case 12 -> inventory.setItem(i, guiItems.textSeeThrough(entity.isSeeThrough())); - case 13 -> inventory.setItem(i, guiItems.textOpacity(entity.getTextOpacity())); - case 14 -> inventory.setItem(i, guiItems.leftRotNormalize(Utilities.getData(entity, "GUILRNormalize"))); - case 15 -> inventory.setItem(i, guiItems.width(entity.getDisplayWidth())); - case 16 -> inventory.setItem(i, guiItems.shadowStrength(entity.getShadowStrength())); - case 17 -> inventory.setItem(i, guiItems.blockLight(entity.getBrightness() != null ? entity.getBrightness().getBlockLight() : -1)); - - case 20 -> inventory.setItem(i, guiItems.textAlignment(entity.getAlignment())); - case 21 -> inventory.setItem(i, guiItems.textShadow(entity.isShadowed())); - case 22 -> inventory.setItem(i, guiItems.textLineWidth(entity.getLineWidth())); - case 23 -> inventory.setItem(i, guiItems.viewRange(entity.getViewRange())); - case 24 -> inventory.setItem(i, guiItems.billboard(entity.getBillboard())); - case 25 -> inventory.setItem(i, guiItems.lock()); - case 26 -> inventory.setItem(i, guiItems.delete()); - default -> inventory.setItem(i, guiItems.filler()); + case 2 -> inventory.setItem(i, this.guiItems.textBackgroundColor(entity.getBackgroundColor())); + case 3 -> inventory.setItem(i, this.guiItems.textDefaultBackground(entity.isDefaultBackground())); + case 4 -> inventory.setItem(i, this.guiItems.name(entity.getCustomName())); + case 5 -> inventory.setItem(i, this.guiItems.rightRotNormalize(Utilities.getData(entity, "GUIRRNormalize"))); + case 6 -> inventory.setItem(i, this.guiItems.height(entity.getDisplayHeight())); + case 7 -> inventory.setItem(i, this.guiItems.shadowRadius(entity.getShadowRadius())); + case 8 -> inventory.setItem(i, this.guiItems.skyLight(entity.getBrightness() != null ? entity.getBrightness().getSkyLight() : -1)); + + case 10 -> inventory.setItem(i, this.guiItems.text()); + case 11 -> inventory.setItem(i, this.guiItems.textBackgroundOpacity(entity.getBackgroundColor())); + case 12 -> inventory.setItem(i, this.guiItems.textSeeThrough(entity.isSeeThrough())); + case 13 -> inventory.setItem(i, this.guiItems.textOpacity(entity.getTextOpacity())); + case 14 -> inventory.setItem(i, this.guiItems.leftRotNormalize(Utilities.getData(entity, "GUILRNormalize"))); + case 15 -> inventory.setItem(i, this.guiItems.width(entity.getDisplayWidth())); + case 16 -> inventory.setItem(i, this.guiItems.shadowStrength(entity.getShadowStrength())); + case 17 -> inventory.setItem(i, this.guiItems.blockLight(entity.getBrightness() != null ? entity.getBrightness().getBlockLight() : -1)); + + case 20 -> inventory.setItem(i, this.guiItems.textAlignment(entity.getAlignment())); + case 21 -> inventory.setItem(i, this.guiItems.textShadow(entity.isShadowed())); + case 22 -> inventory.setItem(i, this.guiItems.textLineWidth(entity.getLineWidth())); + case 23 -> inventory.setItem(i, this.guiItems.viewRange(entity.getViewRange())); + case 24 -> inventory.setItem(i, this.guiItems.billboard(entity.getBillboard())); + case 25 -> inventory.setItem(i, this.guiItems.lock()); + case 26 -> inventory.setItem(i, this.guiItems.delete()); + default -> inventory.setItem(i, this.guiItems.filler()); } } return inventory; @@ -157,44 +144,42 @@ public Inventory createTextDisplayGUI(TextDisplay entity) { public ItemStack[] getInventoryArray(Player p) { ItemStack[] array = new ItemStack[36]; - array[0] = inventoryItems.gui(); - array[1] = inventoryItems.cloneTool(); - array[2] = inventoryItems.groupSelectTool(p); - array[3] = inventoryItems.toolSearchMode(); - array[4] = inventoryItems.toolSelectionMode(p); - array[6] = inventoryItems.toolSelectionMultiple(); - array[5] = inventoryItems.toolSelectionRange(p); - array[7] = inventoryItems.toolPrecision(p); - - array[27] = inventoryItems.spawnItemDisplay(); - array[28] = inventoryItems.spawnBlockDisplay(); - array[29] = inventoryItems.spawnTextDisplay(); - array[30] = inventoryItems.moveX(p); - array[31] = inventoryItems.moveY(p); - array[32] = inventoryItems.moveZ(p); - array[33] = inventoryItems.rotateYaw(p); - array[34] = inventoryItems.rotatePitch(p); - - array[18] = inventoryItems.translationX(p); - array[19] = inventoryItems.translationY(p); - array[20] = inventoryItems.translationZ(p); - array[21] = inventoryItems.scaleX(p); - array[22] = inventoryItems.scaleY(p); - array[23] = inventoryItems.scaleZ(p); - array[24] = inventoryItems.highlightTarget(); - array[25] = inventoryItems.unlock(); - - array[9] = inventoryItems.leftRotationX(p); - array[10] = inventoryItems.leftRotationY(p); - array[11] = inventoryItems.leftRotationZ(p); - array[12] = inventoryItems.rightRotationX(p); - array[13] = inventoryItems.rightRotationY(p); - array[14] = inventoryItems.rightRotationZ(p); - array[15] = inventoryItems.centerPivot(); - array[16] = inventoryItems.centerOnBlock(); + array[0] = this.inventoryItems.gui(); + array[1] = this.inventoryItems.cloneTool(); + array[2] = this.inventoryItems.groupSelectTool(p); + array[3] = this.inventoryItems.toolSearchMode(); + array[4] = this.inventoryItems.toolSelectionMode(p); + array[6] = this.inventoryItems.toolSelectionMultiple(); + array[5] = this.inventoryItems.toolSelectionRange(p); + array[7] = this.inventoryItems.toolPrecision(p); + + array[27] = this.inventoryItems.spawnItemDisplay(); + array[28] = this.inventoryItems.spawnBlockDisplay(); + array[29] = this.inventoryItems.spawnTextDisplay(); + array[30] = this.inventoryItems.moveX(p); + array[31] = this.inventoryItems.moveY(p); + array[32] = this.inventoryItems.moveZ(p); + array[33] = this.inventoryItems.rotateYaw(p); + array[34] = this.inventoryItems.rotatePitch(p); + + array[18] = this.inventoryItems.translationX(p); + array[19] = this.inventoryItems.translationY(p); + array[20] = this.inventoryItems.translationZ(p); + array[21] = this.inventoryItems.scaleX(p); + array[22] = this.inventoryItems.scaleY(p); + array[23] = this.inventoryItems.scaleZ(p); + array[24] = this.inventoryItems.highlightTarget(); + array[25] = this.inventoryItems.unlock(); + + array[9] = this.inventoryItems.leftRotationX(p); + array[10] = this.inventoryItems.leftRotationY(p); + array[11] = this.inventoryItems.leftRotationZ(p); + array[12] = this.inventoryItems.rightRotationX(p); + array[13] = this.inventoryItems.rightRotationY(p); + array[14] = this.inventoryItems.rightRotationZ(p); + array[15] = this.inventoryItems.centerPivot(); + array[16] = this.inventoryItems.centerOnBlock(); return array; } - - } diff --git a/src/main/java/goldenshadow/displayentityeditor/items/GUIItems.java b/src/main/java/goldenshadow/displayentityeditor/items/GUIItems.java index 0968789..2a5b576 100644 --- a/src/main/java/goldenshadow/displayentityeditor/items/GUIItems.java +++ b/src/main/java/goldenshadow/displayentityeditor/items/GUIItems.java @@ -28,7 +28,9 @@ public class GUIItems { * @return The item */ public ItemStack name(String name) { - if (name == null) name = DisplayEntityEditor.messageManager.getString("none"); + if (name == null) { + name = DisplayEntityEditor.messageManager.getString("none"); + } ItemStack itemStack = new ItemStack(Material.NAME_TAG); Utilities.setMeta(itemStack, DisplayEntityEditor.messageManager.getString("name_name"), DisplayEntityEditor.messageManager.getList("name_lore"), @@ -297,7 +299,9 @@ public ItemStack itemDisplayTransform(ItemDisplay.ItemDisplayTransform current) */ public ItemStack textOpacity(int current) { ItemStack itemStack = new ItemStack(Material.DRAGON_BREATH); - if (current < 0) current = 0; + if (current < 0) { + current = 0; + } Utilities.setMeta(itemStack, DisplayEntityEditor.messageManager.getString("text_opacity_name"), DisplayEntityEditor.messageManager.getList("text_opacity_lore"), @@ -474,6 +478,4 @@ private void setBrightnessLevel(ItemStack itemStack, int current) { meta.setBlockData(level); itemStack.setItemMeta(meta); } - - } diff --git a/src/main/java/goldenshadow/displayentityeditor/items/InventoryItems.java b/src/main/java/goldenshadow/displayentityeditor/items/InventoryItems.java index f2b2d3f..538d947 100644 --- a/src/main/java/goldenshadow/displayentityeditor/items/InventoryItems.java +++ b/src/main/java/goldenshadow/displayentityeditor/items/InventoryItems.java @@ -3,13 +3,12 @@ import goldenshadow.displayentityeditor.DisplayEntityEditor; import goldenshadow.displayentityeditor.SelectionMode; import goldenshadow.displayentityeditor.Utilities; - -import java.util.ArrayList; - import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import java.util.ArrayList; + /** * A utility class where all inventory items are created */ @@ -24,7 +23,7 @@ public ItemStack gui() { Utilities.setMeta(itemStack, DisplayEntityEditor.messageManager.getString("open_gui_name"), DisplayEntityEditor.messageManager.getList("open_gui_lore"), "InventoryGUI" - ); + ); return itemStack; } diff --git a/src/main/resources/paper-plugin.yml b/src/main/resources/paper-plugin.yml index f830d4c..fc57f4a 100644 --- a/src/main/resources/paper-plugin.yml +++ b/src/main/resources/paper-plugin.yml @@ -4,8 +4,8 @@ main: goldenshadow.displayentityeditor.DisplayEntityEditor api-version: 26.2 authors: - - _GoldenShadow - - officialMex - - RettichLP +- _GoldenShadow +- officialMex +- RettichLP description: A full suite of tools to edit text, item and block display entities From 65a817f23f507441a811f887d56050b2e5a4d9cb Mon Sep 17 00:00:00 2001 From: RettichLP Date: Sun, 16 Aug 2026 16:15:15 +0200 Subject: [PATCH 4/4] Replace manual getters with Lomboks Getter annotation and update build.gradle for Lombok dependency Co-authored-by: AI --- build.gradle.kts | 6 ++++++ .../displayentityeditor/DisplayEntityEditor.java | 15 +++------------ .../displayentityeditor/enums/LockSearchMode.java | 6 ++---- .../inventories/InventoryFactory.java | 13 ------------- 4 files changed, 11 insertions(+), 29 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 3313345..307eadf 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -17,6 +17,12 @@ repositories { dependencies { paperweight.paperDevBundle("26.2.build.+") implementation("org.bstats:bstats-bukkit:3.1.0") + + compileOnly("org.projectlombok:lombok:1.18.46") + annotationProcessor("org.projectlombok:lombok:1.18.46") + + testCompileOnly("org.projectlombok:lombok:1.18.46") + testAnnotationProcessor("org.projectlombok:lombok:1.18.46") } java { diff --git a/src/main/java/goldenshadow/displayentityeditor/DisplayEntityEditor.java b/src/main/java/goldenshadow/displayentityeditor/DisplayEntityEditor.java index 67babdd..6a02e0c 100644 --- a/src/main/java/goldenshadow/displayentityeditor/DisplayEntityEditor.java +++ b/src/main/java/goldenshadow/displayentityeditor/DisplayEntityEditor.java @@ -13,6 +13,7 @@ import io.papermc.paper.command.brigadier.Commands; import io.papermc.paper.plugin.lifecycle.event.LifecycleEventManager; import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents; +import lombok.Getter; 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; @@ -39,6 +40,7 @@ public final class DisplayEntityEditor extends JavaPlugin { + @Getter private static DisplayEntityEditor plugin; public static ConversationFactory conversationFactory; public static InventoryFactory inventoryFactory; @@ -70,6 +72,7 @@ public final class DisplayEntityEditor extends JavaPlugin { public static NamespacedKey toolKey; private final DisplayEntityEditorBrigadierCommand command = new DisplayEntityEditorBrigadierCommand(); + @Getter private EditingHandler editingHandler; /** @@ -146,14 +149,6 @@ private void registerBrigadierCommand() { }); } - /** - * Getter for the plugin instance - * @return The plugin - */ - public static DisplayEntityEditor getPlugin() { - return plugin; - } - /** * Used to get the newest version of the plugin available on spigot * @param consumer The consumer @@ -181,10 +176,6 @@ public static void checkForMessageFile() throws IOException { messageManager = new MessageManager(); } - public EditingHandler getEditingHandler() { - return this.editingHandler; - } - public DisplayEntityEditorBrigadierCommand command() { return this.command; } diff --git a/src/main/java/goldenshadow/displayentityeditor/enums/LockSearchMode.java b/src/main/java/goldenshadow/displayentityeditor/enums/LockSearchMode.java index 3c475b1..fc598c3 100644 --- a/src/main/java/goldenshadow/displayentityeditor/enums/LockSearchMode.java +++ b/src/main/java/goldenshadow/displayentityeditor/enums/LockSearchMode.java @@ -1,9 +1,11 @@ package goldenshadow.displayentityeditor.enums; +import lombok.Getter; import org.bukkit.entity.Display; import java.util.function.Predicate; +@Getter public enum LockSearchMode { ALL(display -> true), @@ -18,10 +20,6 @@ public enum LockSearchMode { this.predicate = predicate; } - public Predicate getPredicate() { - return this.predicate; - } - public LockSearchMode previousMode() { int i = ordinal(); return i == 0 ? MODES[MODES.length - 1] : MODES[i - 1]; diff --git a/src/main/java/goldenshadow/displayentityeditor/inventories/InventoryFactory.java b/src/main/java/goldenshadow/displayentityeditor/inventories/InventoryFactory.java index cff54d8..96c9909 100644 --- a/src/main/java/goldenshadow/displayentityeditor/inventories/InventoryFactory.java +++ b/src/main/java/goldenshadow/displayentityeditor/inventories/InventoryFactory.java @@ -15,19 +15,6 @@ public record InventoryFactory(GUIItems guiItems, InventoryItems inventoryItems) { - /** - /** - * Getter for the gui items - * @return The class containing all gui items - */ - public GUIItems getGuiItems() { - return this.guiItems; - } - - public InventoryItems getInventoryItems() { - return this.inventoryItems; - } - /** * Used to create the gui for item displays * @param entity The item display entity being edited