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