From bcdf1c8287400e05b928cf9370a23c96057370df Mon Sep 17 00:00:00 2001 From: Smudge <68658429+smuddgge@users.noreply.github.com> Date: Tue, 16 Jul 2024 15:43:10 +0100 Subject: [PATCH] Updates --- pom.xml | 4 +-- .../cozytreasurehunt/Treasure.java | 33 ++++++++++++++++++- .../cozytreasurehunt/TreasureLocation.java | 4 +-- .../command/subcommand/SetCommand.java | 2 +- .../inventory/editor/TreasureEditor.java | 24 +++++++++++--- .../inventory/editor/TreasureListEditor.java | 6 ++-- .../cozytreasurehunt/storage/ConfigFile.java | 2 +- .../cozytreasurehunt/storage/DataStorage.java | 2 +- .../storage/LocationStorage.java | 2 +- .../cozytreasurehunt/storage/PlayerData.java | 2 +- .../cozytreasurehunt/storage/Storage.java | 2 +- .../storage/TreasureStorage.java | 2 +- 12 files changed, 66 insertions(+), 19 deletions(-) diff --git a/pom.xml b/pom.xml index b41b9b7..85f198c 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ com.github.cozyplugins CozyTreasureHunt - 1.2.0 + 1.3.1 jar CozyTreasureHunt @@ -52,7 +52,7 @@ com.github.Cozy-Plugins CozyLibrary - 1.0.2 + 1.12.2 diff --git a/src/main/java/com/github/cozyplugins/cozytreasurehunt/Treasure.java b/src/main/java/com/github/cozyplugins/cozytreasurehunt/Treasure.java index e0edb84..1a9ae56 100644 --- a/src/main/java/com/github/cozyplugins/cozytreasurehunt/Treasure.java +++ b/src/main/java/com/github/cozyplugins/cozytreasurehunt/Treasure.java @@ -20,7 +20,6 @@ import com.github.cozyplugins.cozylibrary.ConsoleManager; import com.github.cozyplugins.cozylibrary.datatype.ratio.Ratio; -import com.github.cozyplugins.cozylibrary.indicator.ConfigurationConvertable; import com.github.cozyplugins.cozylibrary.indicator.Replicable; import com.github.cozyplugins.cozylibrary.item.CozyItem; import com.github.cozyplugins.cozylibrary.reward.RewardBundle; @@ -28,9 +27,11 @@ import com.github.cozyplugins.cozytreasurehunt.dependency.HeadDatabaseDependency; import com.github.cozyplugins.cozytreasurehunt.storage.TreasureStorage; import com.github.cozyplugins.cozytreasurehunt.storage.indicator.Savable; +import com.github.smuddgge.squishyconfiguration.indicator.ConfigurationConvertable; import com.github.smuddgge.squishyconfiguration.interfaces.ConfigurationSection; import com.github.smuddgge.squishyconfiguration.memory.MemoryConfigurationSection; import org.bukkit.*; +import org.bukkit.block.Skull; import org.bukkit.inventory.ItemStack; import org.bukkit.util.Vector; import org.jetbrains.annotations.NotNull; @@ -55,6 +56,7 @@ public class Treasure implements ConfigurationConvertable, Savable, Re private @NotNull Material material; private @Nullable String hdb; + private @Nullable UUID skullOwner; private @Nullable String publicBroadcastMessage; private @Nullable String privateBroadcastMessage; @@ -154,12 +156,20 @@ public Treasure(@NotNull UUID identifier) { * @return The treasure as an item. */ public @NotNull CozyItem getItem() { + // Check if the head database is enabled and there is a hdb value. if (HeadDatabaseDependency.isEnabled() && this.hdb != null && !this.hdb.equals("")) { ItemStack item = HeadDatabaseDependency.get().getItemHead(this.hdb); return new CozyItem(item); } + // Check if there is a skull owner. + if (this.skullOwner != null) { + return new CozyItem(this.material) + .setMaterial(Material.PLAYER_HEAD) + .setSkull(this.skullOwner); + } + return new CozyItem(this.material); } @@ -368,6 +378,17 @@ public int getRespawnTime() { return this; } + /** + * Used to set the skull owner. + * + * @param skullOwner The skull owner. + * @return This instance. + */ + public @NotNull Treasure setSkullOwner(UUID skullOwner) { + this.skullOwner = skullOwner; + return this; + } + /** * Used to set the public broadcast message. * Setting this value to null will not show a @@ -640,6 +661,13 @@ public int getRespawnTime() { HeadDatabaseDependency.get().setBlockSkin(location.getBlock(), this.hdb); } + if (this.skullOwner != null) { + location.getBlock().setType(Material.PLAYER_HEAD); + Skull skull = (Skull) location.getBlock().getState(); + skull.setOwningPlayer(Bukkit.getOfflinePlayer(this.skullOwner)); + skull.update(); + } + return this; } @@ -715,6 +743,7 @@ public void spawnParticlesPlayerRight(@NotNull PlayerUser playerUser) { section.set("material", this.material.toString()); section.set("hdb", this.hdb); + if (this.skullOwner != null) section.set("skull_owner", this.skullOwner.toString()); section.set("public_broadcast_message", this.publicBroadcastMessage); section.set("private_broadcast_message", this.privateBroadcastMessage); @@ -755,6 +784,7 @@ public Treasure convert(ConfigurationSection section) { this.material = Material.getMaterial(materialName); this.hdb = section.getString("hdb"); + if (section.getKeys().contains("skull_owner")) this.skullOwner = UUID.fromString(section.getString("skull_owner")); this.publicBroadcastMessage = section.getString("public_broadcast_message"); this.privateBroadcastMessage = section.getString("private_broadcast_message"); @@ -781,6 +811,7 @@ public Treasure convert(ConfigurationSection section) { return this; } + @Override public void save() { TreasureStorage.insert(this); diff --git a/src/main/java/com/github/cozyplugins/cozytreasurehunt/TreasureLocation.java b/src/main/java/com/github/cozyplugins/cozytreasurehunt/TreasureLocation.java index 285225e..ef53394 100644 --- a/src/main/java/com/github/cozyplugins/cozytreasurehunt/TreasureLocation.java +++ b/src/main/java/com/github/cozyplugins/cozytreasurehunt/TreasureLocation.java @@ -18,13 +18,13 @@ package com.github.cozyplugins.cozytreasurehunt; -import com.github.cozyplugins.cozylibrary.indicator.ConfigurationConvertable; import com.github.cozyplugins.cozylibrary.indicator.Replicable; import com.github.cozyplugins.cozytreasurehunt.event.TreasurePostSpawnEvent; import com.github.cozyplugins.cozytreasurehunt.event.TreasurePreSpawnEvent; import com.github.cozyplugins.cozytreasurehunt.storage.LocationStorage; import com.github.cozyplugins.cozytreasurehunt.storage.TreasureStorage; import com.github.cozyplugins.cozytreasurehunt.storage.indicator.Savable; +import com.github.smuddgge.squishyconfiguration.indicator.ConfigurationConvertable; import com.github.smuddgge.squishyconfiguration.interfaces.ConfigurationSection; import com.github.smuddgge.squishyconfiguration.memory.MemoryConfigurationSection; import org.bukkit.Bukkit; @@ -212,7 +212,7 @@ public String toString() { } @Override - public TreasureLocation convert(ConfigurationSection section) { + public @NotNull TreasureLocation convert(@NotNull ConfigurationSection section) { this.isSpawned = section.getBoolean("is_spawned"); return this; } diff --git a/src/main/java/com/github/cozyplugins/cozytreasurehunt/command/subcommand/SetCommand.java b/src/main/java/com/github/cozyplugins/cozytreasurehunt/command/subcommand/SetCommand.java index ecada85..a0da61d 100644 --- a/src/main/java/com/github/cozyplugins/cozytreasurehunt/command/subcommand/SetCommand.java +++ b/src/main/java/com/github/cozyplugins/cozytreasurehunt/command/subcommand/SetCommand.java @@ -60,7 +60,7 @@ public class SetCommand implements CommandType { @Override public @Nullable CommandStatus onPlayer(@NotNull PlayerUser user, @NotNull ConfigurationSection section, @NotNull CommandArguments arguments) { // Check if there is no treasure specified. - if (arguments.getArguments().isEmpty() || Objects.equals(arguments.getArguments().get(1), "")) { + if (arguments.getArguments().isEmpty() || Objects.equals(arguments.getArguments().get(0), "")) { user.sendMessage(section.getString("invalid_treasure", "&7Treasure type does not exist.")); return new CommandStatus(); } diff --git a/src/main/java/com/github/cozyplugins/cozytreasurehunt/inventory/editor/TreasureEditor.java b/src/main/java/com/github/cozyplugins/cozytreasurehunt/inventory/editor/TreasureEditor.java index f0d3b9e..df9acca 100644 --- a/src/main/java/com/github/cozyplugins/cozytreasurehunt/inventory/editor/TreasureEditor.java +++ b/src/main/java/com/github/cozyplugins/cozytreasurehunt/inventory/editor/TreasureEditor.java @@ -19,7 +19,7 @@ package com.github.cozyplugins.cozytreasurehunt.inventory.editor; import com.github.cozyplugins.cozylibrary.datatype.ratio.Ratio; -import com.github.cozyplugins.cozylibrary.inventory.InventoryInterface; +import com.github.cozyplugins.cozylibrary.inventory.CozyInventory; import com.github.cozyplugins.cozylibrary.inventory.InventoryItem; import com.github.cozyplugins.cozylibrary.inventory.action.action.AnvilValueAction; import com.github.cozyplugins.cozylibrary.inventory.action.action.ClickAction; @@ -42,7 +42,7 @@ /** * An inventory used to edit a type of treasure. */ -public class TreasureEditor extends InventoryInterface { +public class TreasureEditor extends CozyInventory { private final @NotNull Treasure treasure; private final TreasureListEditor listEditor; @@ -207,6 +207,22 @@ protected void onGenerate(PlayerUser player) { if (hdb != null) this.treasure.setHdb(hdb); } + if (this.treasure.getMaterial() == Material.PLAYER_HEAD) { + + if (HeadDatabaseDependency.isEnabled()) { + HeadDatabaseAPI api = HeadDatabaseDependency.get(); + String hdb = api.getItemID(item.create()); + + if (hdb != null) { + this.treasure.setHdb(hdb); + } + } + + if (this.treasure.getHdb() == null) { + this.treasure.setSkullOwner(item.getSkullOwner()); + } + } + this.treasure.save(); // Replace the item type. @@ -738,7 +754,7 @@ private void setPage1() { "&7will be given when this treasure is found.") .addSlot(31) .addAction((ClickAction) (user, type, inventory) -> { - InventoryInterface back = this; + CozyInventory back = this; // Create editor inventory. RewardBundleEditorInventory editorInventory = new RewardBundleEditorInventory(this.treasure.getRewardBundle()) { @@ -749,7 +765,7 @@ protected void onBundleUpdate(@NotNull RewardBundle bundle) { } @Override - protected @Nullable InventoryInterface onBackButton(@NotNull PlayerUser user) { + protected @Nullable CozyInventory onBackButton(@NotNull PlayerUser user) { return back; } }; diff --git a/src/main/java/com/github/cozyplugins/cozytreasurehunt/inventory/editor/TreasureListEditor.java b/src/main/java/com/github/cozyplugins/cozytreasurehunt/inventory/editor/TreasureListEditor.java index b414fd5..ebeb5cf 100644 --- a/src/main/java/com/github/cozyplugins/cozytreasurehunt/inventory/editor/TreasureListEditor.java +++ b/src/main/java/com/github/cozyplugins/cozytreasurehunt/inventory/editor/TreasureListEditor.java @@ -18,14 +18,14 @@ package com.github.cozyplugins.cozytreasurehunt.inventory.editor; -import com.github.cozyplugins.cozylibrary.inventory.InventoryInterface; +import com.github.cozyplugins.cozylibrary.inventory.CozyInventory; import com.github.cozyplugins.cozylibrary.inventory.InventoryItem; import com.github.cozyplugins.cozylibrary.inventory.action.action.ClickAction; import com.github.cozyplugins.cozylibrary.item.CozyItem; import com.github.cozyplugins.cozylibrary.user.PlayerUser; import com.github.cozyplugins.cozytreasurehunt.Treasure; import com.github.cozyplugins.cozytreasurehunt.storage.TreasureStorage; -import com.github.smuddgge.squishyconfiguration.implementation.yaml.YamlConfiguration; +import com.github.smuddgge.squishyconfiguration.implementation.YamlConfiguration; import com.github.smuddgge.squishyconfiguration.interfaces.ConfigurationSection; import org.bukkit.Material; import org.jetbrains.annotations.NotNull; @@ -40,7 +40,7 @@ * An inventory that displays the list of types of * treasure that the player can edit. */ -public class TreasureListEditor extends InventoryInterface { +public class TreasureListEditor extends CozyInventory { private @NotNull List treasureList; private int page; diff --git a/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/ConfigFile.java b/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/ConfigFile.java index fbf6ddf..b3fefca 100644 --- a/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/ConfigFile.java +++ b/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/ConfigFile.java @@ -1,7 +1,7 @@ package com.github.cozyplugins.cozytreasurehunt.storage; import com.github.cozyplugins.cozylibrary.CozyPlugin; -import com.github.smuddgge.squishyconfiguration.implementation.yaml.YamlConfiguration; +import com.github.smuddgge.squishyconfiguration.implementation.YamlConfiguration; import org.jetbrains.annotations.NotNull; import java.io.File; diff --git a/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/DataStorage.java b/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/DataStorage.java index 70cd8f6..3323520 100644 --- a/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/DataStorage.java +++ b/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/DataStorage.java @@ -22,7 +22,7 @@ import com.github.cozyplugins.cozytreasurehunt.Leaderboard; import com.github.cozyplugins.cozytreasurehunt.TreasureLocation; import com.github.cozyplugins.cozytreasurehunt.storage.configuration.DataConfigurationDirectory; -import com.github.smuddgge.squishyconfiguration.implementation.yaml.YamlConfiguration; +import com.github.smuddgge.squishyconfiguration.implementation.YamlConfiguration; import com.github.smuddgge.squishyconfiguration.interfaces.ConfigurationSection; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/LocationStorage.java b/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/LocationStorage.java index ef5165a..e37df69 100644 --- a/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/LocationStorage.java +++ b/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/LocationStorage.java @@ -22,7 +22,7 @@ import com.github.cozyplugins.cozylibrary.location.Region3D; import com.github.cozyplugins.cozytreasurehunt.TreasureLocation; import com.github.cozyplugins.cozytreasurehunt.storage.configuration.LocationConfigurationDirectory; -import com.github.smuddgge.squishyconfiguration.implementation.yaml.YamlConfiguration; +import com.github.smuddgge.squishyconfiguration.implementation.YamlConfiguration; import com.github.smuddgge.squishyconfiguration.interfaces.ConfigurationSection; import org.bukkit.Bukkit; import org.bukkit.Location; diff --git a/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/PlayerData.java b/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/PlayerData.java index 2c0e4d7..66afcc3 100644 --- a/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/PlayerData.java +++ b/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/PlayerData.java @@ -1,8 +1,8 @@ package com.github.cozyplugins.cozytreasurehunt.storage; -import com.github.cozyplugins.cozylibrary.indicator.ConfigurationConvertable; import com.github.cozyplugins.cozytreasurehunt.TreasureLocation; import com.github.cozyplugins.cozytreasurehunt.storage.indicator.Savable; +import com.github.smuddgge.squishyconfiguration.indicator.ConfigurationConvertable; import com.github.smuddgge.squishyconfiguration.interfaces.ConfigurationSection; import com.github.smuddgge.squishyconfiguration.memory.MemoryConfigurationSection; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/Storage.java b/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/Storage.java index 3c5f257..07d2e20 100644 --- a/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/Storage.java +++ b/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/Storage.java @@ -2,7 +2,7 @@ import com.github.cozyplugins.cozylibrary.ConsoleManager; import com.github.cozyplugins.cozylibrary.configuration.ConfigurationDirectory; -import com.github.smuddgge.squishyconfiguration.implementation.yaml.YamlConfiguration; +import com.github.smuddgge.squishyconfiguration.implementation.YamlConfiguration; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/TreasureStorage.java b/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/TreasureStorage.java index c9be13f..b7ad319 100644 --- a/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/TreasureStorage.java +++ b/src/main/java/com/github/cozyplugins/cozytreasurehunt/storage/TreasureStorage.java @@ -22,7 +22,7 @@ import com.github.cozyplugins.cozylibrary.configuration.ConfigurationDirectory; import com.github.cozyplugins.cozytreasurehunt.Treasure; import com.github.cozyplugins.cozytreasurehunt.storage.configuration.TreasureConfigurationDirectory; -import com.github.smuddgge.squishyconfiguration.implementation.yaml.YamlConfiguration; +import com.github.smuddgge.squishyconfiguration.implementation.YamlConfiguration; import com.github.smuddgge.squishyconfiguration.interfaces.ConfigurationSection; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable;