Compare commits

..

2 Commits

Author SHA1 Message Date
JISAUAY
d897688ab4 some refactors + better id setting 2025-02-14 15:07:23 -06:00
JISAUAY
1f5a062416 working on a mythic system 2025-02-14 14:45:19 -06:00
8 changed files with 150 additions and 5 deletions

View File

@ -0,0 +1,25 @@
package net.hexa.MythicItems;
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
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (sender instanceof Player) {
Player player = (Player) sender;
ItemStack item = new RockCracker().item;
player.getInventory().addItem(item);
}
return true;
}
}

View File

@ -1,11 +1,13 @@
package net.hexa.Plugin;
package net.hexa.MythicItems;
import org.bukkit.plugin.java.JavaPlugin;
public class Plugin extends JavaPlugin {
public class MythicItems extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("onEnable is called!");
this.getCommand("essence").setExecutor(new CommandMythicEssence());
getServer().getPluginManager().registerEvents(new MythicListener(), this);
}
@Override

View File

@ -0,0 +1,26 @@
package net.hexa.MythicItems;
import net.hexa.MythicItems.Mythics.MythicItem;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.inventory.ItemStack;
public class MythicListener implements Listener {
@EventHandler
public void onBlockBreak(BlockBreakEvent event) {
Player player = event.getPlayer();
ItemStack item = player.getInventory().getItemInMainHand();
boolean isMythic = MythicItem.isMythic(item);
if (isMythic) {
int mythic_id = MythicItem.getMythicId(item);
}
}
}

View File

@ -0,0 +1,8 @@
package net.hexa.MythicItems.Mythics;
import net.hexa.MythicItems.MythicItems;
import org.bukkit.NamespacedKey;
public class Constants {
public static NamespacedKey mythic_key = new NamespacedKey(new MythicItems(), "mythic-id");
}

View File

@ -0,0 +1,28 @@
package net.hexa.MythicItems.Mythics;
import org.bukkit.inventory.ItemStack;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType;
public abstract class MythicItem {
public ItemStack item;
public MythicItem() {}
public static int getMythicId(ItemStack item) {
PersistentDataContainer itemData = item.getItemMeta().getPersistentDataContainer();
return itemData.get(Constants.mythic_key, PersistentDataType.INTEGER);
}
public static boolean isMythic(ItemStack item) {
PersistentDataContainer itemData = item.getItemMeta().getPersistentDataContainer();
return itemData.has(Constants.mythic_key);
}
protected void setMythicId(int id) {
PersistentDataContainer itemData = item.getItemMeta().getPersistentDataContainer();
itemData.set(Constants.mythic_key, PersistentDataType.INTEGER, id);
}
}

View File

@ -0,0 +1,24 @@
package net.hexa.MythicItems.Mythics;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemStack;
import org.bukkit.persistence.PersistentDataType;
import java.util.Arrays;
public class RockCracker extends MythicItem {
public RockCracker() {
item = new ItemStack(Material.NETHERITE_PICKAXE);
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);
setMythicId(1);
}
}

View File

@ -0,0 +1,27 @@
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;
public class Terra extends MythicItem {
public Terra() {
item = new ItemStack(Material.NETHERITE_SHOVEL);
item.addUnsafeEnchantment(Enchantment.EFFICIENCY, 8);
item.addUnsafeEnchantment(Enchantment.UNBREAKING, 10);
ItemMeta meta = item.getItemMeta();
meta.setUnbreakable(true);
meta.setDisplayName("Terra");
meta.setLore(Arrays.asList("All will eventually return to Terra."));
meta.setEnchantable(0);
item.setItemMeta(meta);
setMythicId(2);
}
}

View File

@ -1,4 +1,9 @@
name: EconPlugin
name: MythicItems
version: 1.0
main: net.hexa.Plugin.Plugin
main: net.hexa.MythicItems.MythicItems
api-version: '1.21.4'
commands:
essence:
description: Gives a Mythic Item Essence
usage: /<command>