From 31687342f116518e339a1ed556ba2d63a505c30a Mon Sep 17 00:00:00 2001 From: Dan E Date: Sun, 23 Jun 2024 15:32:10 +0100 Subject: [PATCH 1/2] Update items.md changed neatherite to netherite --- src/main/java/fantasypvp/kand_smp/items/items.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/fantasypvp/kand_smp/items/items.md b/src/main/java/fantasypvp/kand_smp/items/items.md index b4f37a6..cc73746 100644 --- a/src/main/java/fantasypvp/kand_smp/items/items.md +++ b/src/main/java/fantasypvp/kand_smp/items/items.md @@ -31,7 +31,7 @@ - Late game sets / will be difficult to obtain - Eg: - [T5+] Witherite set: netherite gear - sword can inflict wither - immunity to wither - - [T6] True Netherite: gear set with higher base stats than neatherite & permanent fire res + - [T6] True Netherite: gear set with higher base stats than netherite & permanent fire res # Nether Sets / Items: @@ -84,4 +84,4 @@ ## Dash Stick - Rename - Right click launches player where they are looking, plays a sound and summons explosion particles - - Disables fall damage when active \ No newline at end of file + - Disables fall damage when active From 508243c626bbd097566dae8a0b489f56784fa67b Mon Sep 17 00:00:00 2001 From: Dan E Date: Sun, 23 Jun 2024 16:39:30 +0100 Subject: [PATCH 2/2] ## Added Blazing Halo - crafted with 8 blaze rods in a circle and 1 nether star in the centre - cancels all fire damage --- pom.xml | 4 +- .../java/fantasypvp/kand_smp/Kand_smp.java | 39 +++++++++++++------ .../kand_smp/events/FireDamageListener.java | 30 ++++++++++++++ .../kand_smp/items/BlazingHalo.java | 29 ++++++++++++++ .../java/fantasypvp/kand_smp/items/items.md | 3 +- src/main/resources/plugin.yml | 1 + 6 files changed, 92 insertions(+), 14 deletions(-) create mode 100644 src/main/java/fantasypvp/kand_smp/events/FireDamageListener.java create mode 100644 src/main/java/fantasypvp/kand_smp/items/BlazingHalo.java 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