## Added Blazing Halo

- crafted with 8 blaze rods in a circle and 1 nether star in the centre
    - cancels all fire damage
This commit is contained in:
Dan E
2024-06-23 16:39:30 +01:00
parent 36afcf5e89
commit 508243c626
6 changed files with 92 additions and 14 deletions
+2 -2
View File
@@ -23,8 +23,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<source>17</source>
<target>17</target>
</configuration>
</plugin>
<plugin>
+28 -11
View File
@@ -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
@@ -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);
}
}
}
}
@@ -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;
}
}
@@ -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
+1
View File
@@ -17,6 +17,7 @@ commands:
usage: /dashstick
permissions:
lightning_sword:
description: Allows player to run /lightning_sword