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);