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;