diff --git a/pom.xml b/pom.xml index 4d02d9b..663b473 100644 --- a/pom.xml +++ b/pom.xml @@ -23,8 +23,8 @@ maven-compiler-plugin 3.8.1 - ${java.version} - ${java.version} + 17 + 17 diff --git a/src/main/java/fantasypvp/kand_smp/Kand_smp.java b/src/main/java/fantasypvp/kand_smp/Kand_smp.java index 1f415fa..0fd1911 100644 --- a/src/main/java/fantasypvp/kand_smp/Kand_smp.java +++ b/src/main/java/fantasypvp/kand_smp/Kand_smp.java @@ -1,16 +1,16 @@ package fantasypvp.kand_smp; -import fantasypvp.kand_smp.commands.CmdLightningSword; -import fantasypvp.kand_smp.commands.CmdTeleportSpawn; -import fantasypvp.kand_smp.commands.GiveDashItemCommand; -import fantasypvp.kand_smp.commands.SetSpawnCommand; +import fantasypvp.kand_smp.commands.*; import fantasypvp.kand_smp.events.DashItemListener; import fantasypvp.kand_smp.events.Events; -import fantasypvp.kand_smp.items.DashItem; -import fantasypvp.kand_smp.items.LightningGear; -import fantasypvp.kand_smp.items.TrueNetherite; -import fantasypvp.kand_smp.items.Witherite; +import fantasypvp.kand_smp.events.FireDamageListener; +import fantasypvp.kand_smp.items.*; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.NamespacedKey; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.ShapedRecipe; import org.bukkit.plugin.java.JavaPlugin; public final class Kand_smp extends JavaPlugin { @@ -21,19 +21,36 @@ public final class Kand_smp extends JavaPlugin { LightningGear.init(); TrueNetherite.init(); Witherite.init(); + registerBlazingHaloRecipe(); // register listeners getServer().getPluginManager().registerEvents(new Events(), this); getServer().getPluginManager().registerEvents(new DashItemListener(),this); - + getServer().getPluginManager().registerEvents(new FireDamageListener(), this); + //register commands getCommand("lightning_sword").setExecutor(new CmdLightningSword()); getCommand("spawn").setExecutor(new CmdTeleportSpawn(this)); getCommand("setSpawnTp").setExecutor(new SetSpawnCommand(this)); getCommand("dashstick").setExecutor(new GiveDashItemCommand()); - - getServer().broadcastMessage("§aKand SMP has been enabled!"); } + private void registerBlazingHaloRecipe() { + ItemStack blazingHalo = BlazingHalo.createBlazingHalo(); + + NamespacedKey key = new NamespacedKey(this, "blazing_halo"); + ShapedRecipe recipe = new ShapedRecipe(key, blazingHalo); + + recipe.shape( + "BBB", + "BNB", + "BBB" + ); + recipe.setIngredient('B', Material.BLAZE_ROD); + recipe.setIngredient('N',Material.NETHER_STAR); + + Bukkit.addRecipe(recipe); + } + @Override public void onDisable() { // Plugin shutdown logic diff --git a/src/main/java/fantasypvp/kand_smp/events/FireDamageListener.java b/src/main/java/fantasypvp/kand_smp/events/FireDamageListener.java new file mode 100644 index 0000000..37b1ad4 --- /dev/null +++ b/src/main/java/fantasypvp/kand_smp/events/FireDamageListener.java @@ -0,0 +1,30 @@ +package fantasypvp.kand_smp.events; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +public class FireDamageListener implements Listener { + + @EventHandler + public void onPlayerTakeFireDamage(EntityDamageEvent event){ + if(event.getEntity() instanceof Player player){ + ItemStack helmet = player.getInventory().getHelmet(); + if (helmet == null){ + return; + } + ItemMeta meta = helmet.getItemMeta(); + if(meta == null || !meta.hasDisplayName()){ + return; + } + if (meta.getDisplayName().equals(ChatColor.GOLD+"Blazing Halo")){ + event.setCancelled(true); + } + } + } + +} diff --git a/src/main/java/fantasypvp/kand_smp/items/BlazingHalo.java b/src/main/java/fantasypvp/kand_smp/items/BlazingHalo.java new file mode 100644 index 0000000..3abd46b --- /dev/null +++ b/src/main/java/fantasypvp/kand_smp/items/BlazingHalo.java @@ -0,0 +1,29 @@ +package fantasypvp.kand_smp.items; + +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Color; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.LeatherArmorMeta; + +import java.util.Arrays; + +public class BlazingHalo extends ItemStack { + + public static ItemStack createBlazingHalo(){ + ItemStack item = new ItemStack(Material.LEATHER_HELMET); + ItemMeta meta = item.hasItemMeta() ? item.getItemMeta() : Bukkit.getItemFactory().getItemMeta(item.getType()); + LeatherArmorMeta leatherArmorMeta = (LeatherArmorMeta) meta; + assert leatherArmorMeta != null; + leatherArmorMeta.setColor(Color.ORANGE); + leatherArmorMeta.setDisplayName(ChatColor.GOLD + "Blazing Halo"); + leatherArmorMeta.setLore(Arrays.asList(ChatColor.RED + "A mystical helmet", ChatColor.RED + "imbued with blazing power.")); + + item.setItemMeta(leatherArmorMeta); + + return item; + } + +} diff --git a/src/main/java/fantasypvp/kand_smp/items/items.md b/src/main/java/fantasypvp/kand_smp/items/items.md index b4f37a6..4141688 100644 --- a/src/main/java/fantasypvp/kand_smp/items/items.md +++ b/src/main/java/fantasypvp/kand_smp/items/items.md @@ -37,7 +37,8 @@ # Nether Sets / Items: ## Blazing Halo - - crafted with 8 blaze rods in a circle. + - crafted with 8 blaze rods in a circle and 1 nether star in the centre + - cancels all fire damage ## True Netherite Set - Netherite gear upgraded with nether stars at a smithing table diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 6c4f889..3a5f607 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -17,6 +17,7 @@ commands: usage: /dashstick + permissions: lightning_sword: description: Allows player to run /lightning_sword