From ad57acf11a070e752d1834d122f157a36f4527b8 Mon Sep 17 00:00:00 2001
From: 0x01fe <0x01fe@0x01fe.net>
Date: Fri, 14 Feb 2025 20:06:12 -0600
Subject: [PATCH] made essences work
---
pom.xml | 2 +-
.../MythicItems/CommandMythicEssence.java | 5 +--
.../net/hexa/MythicItems/MythicListener.java | 30 ++++++++++++++
.../hexa/MythicItems/Mythics/Constants.java | 5 ++-
.../MythicItems/Mythics/MythicEssence.java | 39 +++++++++++++++++++
.../hexa/MythicItems/Mythics/MythicItem.java | 6 ++-
.../hexa/MythicItems/Mythics/RockCracker.java | 14 ++++---
.../net/hexa/MythicItems/Mythics/Terra.java | 3 +-
8 files changed, 90 insertions(+), 14 deletions(-)
create mode 100644 src/main/java/net/hexa/MythicItems/Mythics/MythicEssence.java
diff --git a/pom.xml b/pom.xml
index b22a621..53b973a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
net.hexa
- EconPlugn
+ MythicItems
1.0-SNAPSHOT
diff --git a/src/main/java/net/hexa/MythicItems/CommandMythicEssence.java b/src/main/java/net/hexa/MythicItems/CommandMythicEssence.java
index f61c778..39a3824 100644
--- a/src/main/java/net/hexa/MythicItems/CommandMythicEssence.java
+++ b/src/main/java/net/hexa/MythicItems/CommandMythicEssence.java
@@ -1,13 +1,12 @@
package net.hexa.MythicItems;
+import net.hexa.MythicItems.Mythics.MythicEssence;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
-import net.hexa.MythicItems.Mythics.RockCracker;
-
public class CommandMythicEssence implements CommandExecutor {
@Override
@@ -15,7 +14,7 @@ public class CommandMythicEssence implements CommandExecutor {
if (sender instanceof Player) {
Player player = (Player) sender;
- ItemStack item = new RockCracker().item;
+ ItemStack item = new MythicEssence().item;
player.getInventory().addItem(item);
}
diff --git a/src/main/java/net/hexa/MythicItems/MythicListener.java b/src/main/java/net/hexa/MythicItems/MythicListener.java
index 1d20b6e..0186aef 100644
--- a/src/main/java/net/hexa/MythicItems/MythicListener.java
+++ b/src/main/java/net/hexa/MythicItems/MythicListener.java
@@ -1,11 +1,15 @@
package net.hexa.MythicItems;
+import net.hexa.MythicItems.Mythics.MythicEssence;
import net.hexa.MythicItems.Mythics.MythicItem;
+import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
+import org.bukkit.event.block.Action;
import org.bukkit.event.block.BlockBreakEvent;
+import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
public class MythicListener implements Listener {
@@ -23,4 +27,30 @@ public class MythicListener implements Listener {
}
}
+
+ @EventHandler
+ public void onPlayerUse(PlayerInteractEvent event) {
+
+ Bukkit.getServer().getPluginManager().getPlugin("MythicItems").getLogger().info("Action done" + event.getAction().toString());
+
+ if (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) {
+ Bukkit.getServer().getPluginManager().getPlugin("MythicItems").getLogger().info("Action done2" + event.getAction().toString());
+ Player player = event.getPlayer();
+ ItemStack item = player.getInventory().getItemInMainHand();
+
+ Bukkit.getServer().getPluginManager().getPlugin("MythicItems").getLogger()
+ .info(item.toString());
+
+ if (MythicItem.isMythic(item)) {
+ Bukkit.getServer().getPluginManager().getPlugin("MythicItems").getLogger()
+ .info("item was mythic with id " + MythicItem.getMythicId(item));
+ if (MythicItem.getMythicId(item) == 0) {
+ ItemStack mythicReward = MythicEssence.rollMythic();
+
+ player.getInventory().remove(item);
+ player.getInventory().addItem(mythicReward);
+ }
+ }
+ }
+ }
}
diff --git a/src/main/java/net/hexa/MythicItems/Mythics/Constants.java b/src/main/java/net/hexa/MythicItems/Mythics/Constants.java
index 9664b2c..c5bf555 100644
--- a/src/main/java/net/hexa/MythicItems/Mythics/Constants.java
+++ b/src/main/java/net/hexa/MythicItems/Mythics/Constants.java
@@ -1,8 +1,11 @@
package net.hexa.MythicItems.Mythics;
import net.hexa.MythicItems.MythicItems;
+import org.bukkit.Bukkit;
import org.bukkit.NamespacedKey;
+import org.bukkit.plugin.Plugin;
public class Constants {
- public static NamespacedKey mythic_key = new NamespacedKey(new MythicItems(), "mythic-id");
+ public static Plugin plugin = Bukkit.getServer().getPluginManager().getPlugin("MythicItems");
+ public static NamespacedKey mythic_key = new NamespacedKey(plugin, "mythic-id");
}
diff --git a/src/main/java/net/hexa/MythicItems/Mythics/MythicEssence.java b/src/main/java/net/hexa/MythicItems/Mythics/MythicEssence.java
new file mode 100644
index 0000000..b957aaf
--- /dev/null
+++ b/src/main/java/net/hexa/MythicItems/Mythics/MythicEssence.java
@@ -0,0 +1,39 @@
+package net.hexa.MythicItems.Mythics;
+
+import org.bukkit.Material;
+import org.bukkit.enchantments.Enchantment;
+import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
+
+import java.util.Arrays;
+import java.util.Random;
+
+public class MythicEssence extends MythicItem {
+
+ private static final Random random = new Random();
+
+ public MythicEssence() {
+ item = new ItemStack(Material.CLAY_BALL);
+
+ item.addUnsafeEnchantment(Enchantment.FORTUNE, 7);
+
+ ItemMeta itemData = item.getItemMeta();
+ itemData.setItemName("§4Mythic Essence");
+ itemData.setLore(Arrays.asList("§o§aMaybe this will give you something nice?"));
+
+ item.setItemMeta(itemData);
+
+ setMythicId(0);
+ }
+
+ public static ItemStack rollMythic() {
+ int mythic_id = random.nextInt(2) + 1;
+ switch (mythic_id) {
+ case 1:
+ return new Terra().item;
+ case 2:
+ return new RockCracker().item;
+ }
+ return new ItemStack(Material.GRAVEL);
+ }
+}
diff --git a/src/main/java/net/hexa/MythicItems/Mythics/MythicItem.java b/src/main/java/net/hexa/MythicItems/Mythics/MythicItem.java
index 9ea4f96..06fe510 100644
--- a/src/main/java/net/hexa/MythicItems/Mythics/MythicItem.java
+++ b/src/main/java/net/hexa/MythicItems/Mythics/MythicItem.java
@@ -1,6 +1,7 @@
package net.hexa.MythicItems.Mythics;
import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType;
@@ -22,7 +23,8 @@ public abstract class MythicItem {
}
protected void setMythicId(int id) {
- PersistentDataContainer itemData = item.getItemMeta().getPersistentDataContainer();
- itemData.set(Constants.mythic_key, PersistentDataType.INTEGER, id);
+ ItemMeta itemData = item.getItemMeta();
+ itemData.getPersistentDataContainer().set(Constants.mythic_key, PersistentDataType.INTEGER, id);
+ this.item.setItemMeta(itemData);
}
}
diff --git a/src/main/java/net/hexa/MythicItems/Mythics/RockCracker.java b/src/main/java/net/hexa/MythicItems/Mythics/RockCracker.java
index 6d59b26..16c2d22 100644
--- a/src/main/java/net/hexa/MythicItems/Mythics/RockCracker.java
+++ b/src/main/java/net/hexa/MythicItems/Mythics/RockCracker.java
@@ -3,6 +3,7 @@ package net.hexa.MythicItems.Mythics;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.persistence.PersistentDataType;
import java.util.Arrays;
@@ -14,11 +15,14 @@ public class RockCracker extends MythicItem {
item.addUnsafeEnchantment(Enchantment.EFFICIENCY, 9);
item.addUnsafeEnchantment(Enchantment.UNBREAKING, 10);
- item.getItemMeta().setUnbreakable(true);
- item.getItemMeta().setItemName("Rock Cracker");
- item.getItemMeta().setLore(Arrays.asList("and the land thrashes in furious pain..."));
- item.getItemMeta().setEnchantable(0);
+ ItemMeta itemData = item.getItemMeta();
- setMythicId(1);
+ itemData.setUnbreakable(true);
+ itemData.setItemName("Rock Cracker");
+ itemData.setLore(Arrays.asList("and the land thrashes in furious pain..."));
+
+ item.setItemMeta(itemData);
+
+ this.setMythicId(1);
}
}
diff --git a/src/main/java/net/hexa/MythicItems/Mythics/Terra.java b/src/main/java/net/hexa/MythicItems/Mythics/Terra.java
index ebd1a69..eec524a 100644
--- a/src/main/java/net/hexa/MythicItems/Mythics/Terra.java
+++ b/src/main/java/net/hexa/MythicItems/Mythics/Terra.java
@@ -17,9 +17,8 @@ public class Terra extends MythicItem {
ItemMeta meta = item.getItemMeta();
meta.setUnbreakable(true);
- meta.setDisplayName("Terra");
+ meta.setItemName("Terra");
meta.setLore(Arrays.asList("All will eventually return to Terra."));
- meta.setEnchantable(0);
item.setItemMeta(meta);
setMythicId(2);