commit 8993d000a937dced78611763f7f93f35a4911adc
Author: FantasyPvP <80643031+FantasyPvP@users.noreply.github.com>
Date: Tue Apr 30 16:39:47 2024 +0100
.
.
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4788b4b
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,113 @@
+# User-specific stuff
+.idea/
+
+*.iml
+*.ipr
+*.iws
+
+# IntelliJ
+out/
+
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+*~
+
+# temporary files which can be created if a process still has a handle open of a deleted file
+.fuse_hidden*
+
+# KDE directory preferences
+.directory
+
+# Linux trash folder which might appear on any partition or disk
+.Trash-*
+
+# .nfs files are created when an open file is removed but is still being accessed
+.nfs*
+
+# General
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+# Windows thumbnail cache files
+Thumbs.db
+Thumbs.db:encryptable
+ehthumbs.db
+ehthumbs_vista.db
+
+# Dump file
+*.stackdump
+
+# Folder config file
+[Dd]esktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
+
+target/
+
+pom.xml.tag
+pom.xml.releaseBackup
+pom.xml.versionsBackup
+pom.xml.next
+
+release.properties
+dependency-reduced-pom.xml
+buildNumber.properties
+.mvn/timing.properties
+.mvn/wrapper/maven-wrapper.jar
+.flattened-pom.xml
+
+# Common working directory
+run/
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..4d02d9b
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,71 @@
+
+
+ 4.0.0
+
+ fantasypvp
+ kand_smp
+ 1.0-SNAPSHOT
+ jar
+
+ kand_smp
+
+
+ 1.8
+ UTF-8
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.8.1
+
+ ${java.version}
+ ${java.version}
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.2.4
+
+
+ package
+
+ shade
+
+
+
+
+
+
+
+ src/main/resources
+ true
+
+
+
+
+
+
+ spigotmc-repo
+ https://hub.spigotmc.org/nexus/content/repositories/snapshots/
+
+
+ sonatype
+ https://oss.sonatype.org/content/groups/public/
+
+
+
+
+
+ org.spigotmc
+ spigot-api
+ 1.20.1-R0.1-SNAPSHOT
+ provided
+
+
+
diff --git a/src/main/java/fantasypvp/kand_smp/Kand_smp.java b/src/main/java/fantasypvp/kand_smp/Kand_smp.java
new file mode 100644
index 0000000..e61dff6
--- /dev/null
+++ b/src/main/java/fantasypvp/kand_smp/Kand_smp.java
@@ -0,0 +1,23 @@
+package fantasypvp.kand_smp;
+
+import fantasypvp.kand_smp.events.Events;
+import fantasypvp.kand_smp.items.Items;
+import org.bukkit.plugin.java.JavaPlugin;
+
+public final class Kand_smp extends JavaPlugin {
+
+ @Override
+ public void onEnable() {
+ // Plugin startup logic
+ Items.init();
+ // register listeners
+ getServer().getPluginManager().registerEvents(new Events(), this);
+
+ getServer().broadcastMessage("§aKand SMP has been enabled!");
+ }
+
+ @Override
+ public void onDisable() {
+ // Plugin shutdown logic
+ }
+}
diff --git a/src/main/java/fantasypvp/kand_smp/commands/Commands.java b/src/main/java/fantasypvp/kand_smp/commands/Commands.java
new file mode 100644
index 0000000..0f770fb
--- /dev/null
+++ b/src/main/java/fantasypvp/kand_smp/commands/Commands.java
@@ -0,0 +1,5 @@
+package fantasypvp.kand_smp.commands;
+
+public class Commands {
+
+}
diff --git a/src/main/java/fantasypvp/kand_smp/events/Events.java b/src/main/java/fantasypvp/kand_smp/events/Events.java
new file mode 100644
index 0000000..096a6d3
--- /dev/null
+++ b/src/main/java/fantasypvp/kand_smp/events/Events.java
@@ -0,0 +1,11 @@
+package fantasypvp.kand_smp.events;
+
+import org.bukkit.event.Listener;
+
+import static org.bukkit.Bukkit.getServer;
+
+public class Events implements Listener {
+ public static void onPlayerJoin(org.bukkit.event.player.PlayerJoinEvent event) {
+ getServer().broadcastMessage("§a" + event.getPlayer().getName() + " has joined the server!");
+ }
+}
diff --git a/src/main/java/fantasypvp/kand_smp/items/Items.java b/src/main/java/fantasypvp/kand_smp/items/Items.java
new file mode 100644
index 0000000..565ea63
--- /dev/null
+++ b/src/main/java/fantasypvp/kand_smp/items/Items.java
@@ -0,0 +1,185 @@
+package fantasypvp.kand_smp.items;
+
+import org.bukkit.Material;
+import org.bukkit.NamespacedKey;
+import org.bukkit.attribute.Attribute;
+import org.bukkit.attribute.AttributeModifier;
+import org.bukkit.inventory.*;
+import org.bukkit.inventory.meta.ItemMeta;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.bukkit.Bukkit.getServer;
+
+public class Items {
+ public static ItemStack true_netherite_sword;
+ public static ItemStack true_netherite_helmet;
+ public static ItemStack true_netherite_chestplate;
+ public static ItemStack true_netherite_leggings;
+ public static ItemStack true_netherite_boots;
+
+
+ public static void init() {
+ trueNetheriteSword();
+ trueNetheriteHelmet();
+ trueNetheriteChestplate();
+ trueNetheriteLeggings();
+ trueNetheriteBoots();
+ }
+
+
+ private static void trueNetheriteSword() {
+ ItemStack item = new ItemStack(Material.NETHERITE_SWORD, 1);
+ ItemMeta meta = item.getItemMeta();
+ meta.setDisplayName("§bTrue Netherite Sword");
+
+ meta.addAttributeModifier(
+ org.bukkit.attribute.Attribute.GENERIC_ATTACK_DAMAGE,
+ new AttributeModifier(
+ "generic.attackDamage",
+ 10.0,
+ AttributeModifier.Operation.ADD_NUMBER
+ )
+ );
+
+ List lore = new ArrayList<>();
+ lore.add("§fThe true sword of the Nether");
+ meta.setLore(lore);
+ item.setItemMeta(meta);
+
+ true_netherite_sword = item;
+
+ RecipeChoice netherite_upgrade = new RecipeChoice.MaterialChoice(Material.NETHERITE_UPGRADE_SMITHING_TEMPLATE);
+ RecipeChoice nether_star = new RecipeChoice.MaterialChoice(Material.NETHER_STAR);
+ RecipeChoice netherite_sword = new RecipeChoice.MaterialChoice(Material.NETHERITE_SWORD);
+ NamespacedKey key = new NamespacedKey("fantasypvp.kand_smp.items", "true_netherite_sword");
+
+ SmithingTransformRecipe recipe = new SmithingTransformRecipe(key, item, netherite_upgrade, nether_star, netherite_sword);
+ getServer().addRecipe(recipe);
+ }
+
+ private static void trueNetheriteHelmet() {
+ ItemStack item = new ItemStack(Material.NETHERITE_HELMET, 1);
+ ItemMeta meta = item.getItemMeta();
+ meta.setDisplayName("§bTrue Netherite Helmet");
+
+ meta.addAttributeModifier(
+ Attribute.GENERIC_MAX_HEALTH,
+ new AttributeModifier(
+ "generic.maxHealth",
+ 5.0,
+ AttributeModifier.Operation.ADD_NUMBER
+ )
+ );
+ item.setItemMeta(meta);
+ true_netherite_helmet = item;
+
+ RecipeChoice netherite_upgrade = new RecipeChoice.MaterialChoice(Material.NETHERITE_UPGRADE_SMITHING_TEMPLATE);
+ RecipeChoice nether_star = new RecipeChoice.MaterialChoice(Material.NETHER_STAR);
+ RecipeChoice netherite_helmet = new RecipeChoice.MaterialChoice(Material.NETHERITE_HELMET);
+ NamespacedKey key = new NamespacedKey("fantasypvp.kand_smp.items", "true_netherite_helmet");
+
+ SmithingTransformRecipe recipe = new SmithingTransformRecipe(key, item, netherite_upgrade, nether_star, netherite_helmet);
+ getServer().addRecipe(recipe);
+ }
+
+ private static void trueNetheriteChestplate() {
+ ItemStack item = new ItemStack(Material.NETHERITE_CHESTPLATE, 1);
+ ItemMeta meta = item.getItemMeta();
+ meta.setDisplayName("§bTrue Netherite Chestplate");
+
+ meta.addAttributeModifier(
+ Attribute.GENERIC_MAX_HEALTH,
+ new AttributeModifier(
+ "generic.maxHealth",
+ 5.0,
+ AttributeModifier.Operation.ADD_NUMBER
+ )
+ );
+ item.setItemMeta(meta);
+ true_netherite_chestplate = item;
+
+ RecipeChoice netherite_upgrade = new RecipeChoice.MaterialChoice(Material.NETHERITE_UPGRADE_SMITHING_TEMPLATE);
+ RecipeChoice nether_star = new RecipeChoice.MaterialChoice(Material.NETHER_STAR);
+ RecipeChoice netherite_chestplate = new RecipeChoice.MaterialChoice(Material.NETHERITE_CHESTPLATE);
+ NamespacedKey key = new NamespacedKey("fantasypvp.kand_smp.items", "true_netherite_chestplate");
+
+ SmithingTransformRecipe recipe = new SmithingTransformRecipe(key, item, netherite_upgrade, nether_star, netherite_chestplate);
+ getServer().addRecipe(recipe);
+ }
+
+ private static void trueNetheriteLeggings() {
+ ItemStack item = new ItemStack(Material.NETHERITE_LEGGINGS, 1);
+ ItemMeta meta = item.getItemMeta();
+ meta.setDisplayName("§bTrue Netherite Leggings");
+
+ meta.addAttributeModifier(
+ Attribute.GENERIC_MAX_HEALTH,
+ new AttributeModifier(
+ "generic.maxHealth",
+ 5.0,
+ AttributeModifier.Operation.ADD_NUMBER
+ )
+ );
+ item.setItemMeta(meta);
+ true_netherite_leggings = item;
+
+ RecipeChoice netherite_upgrade = new RecipeChoice.MaterialChoice(Material.NETHERITE_UPGRADE_SMITHING_TEMPLATE);
+ RecipeChoice nether_star = new RecipeChoice.MaterialChoice(Material.NETHER_STAR);
+ RecipeChoice netherite_leggings = new RecipeChoice.MaterialChoice(Material.NETHERITE_LEGGINGS);
+ NamespacedKey key = new NamespacedKey("fantasypvp.kand_smp.items", "true_netherite_leggings");
+
+ SmithingTransformRecipe recipe = new SmithingTransformRecipe(key, item, netherite_upgrade, nether_star, netherite_leggings);
+ getServer().addRecipe(recipe);
+ }
+
+ private static void trueNetheriteBoots() {
+ ItemStack item = new ItemStack(Material.NETHERITE_BOOTS, 1);
+ ItemMeta meta = item.getItemMeta();
+ meta.setDisplayName("§bTrue Netherite Boots");
+
+ meta.addAttributeModifier(
+ Attribute.GENERIC_MAX_HEALTH,
+ new AttributeModifier(
+ "generic.maxHealth",
+ 5.0,
+ AttributeModifier.Operation.ADD_NUMBER
+ )
+ );
+ item.setItemMeta(meta);
+ true_netherite_boots = item;
+
+ RecipeChoice netherite_upgrade = new RecipeChoice.MaterialChoice(Material.NETHERITE_UPGRADE_SMITHING_TEMPLATE);
+ RecipeChoice nether_star = new RecipeChoice.MaterialChoice(Material.NETHER_STAR);
+ RecipeChoice netherite_boots = new RecipeChoice.MaterialChoice(Material.NETHERITE_BOOTS);
+ NamespacedKey key = new NamespacedKey("fantasypvp.kand_smp.items", "true_netherite_boots");
+
+ SmithingTransformRecipe recipe = new SmithingTransformRecipe(key, item, netherite_upgrade, nether_star, netherite_boots);
+ getServer().addRecipe(recipe);
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
new file mode 100644
index 0000000..5ee8599
--- /dev/null
+++ b/src/main/resources/plugin.yml
@@ -0,0 +1,4 @@
+name: kand_smp
+version: '${project.version}'
+main: fantasypvp.kand_smp.Kand_smp
+api-version: '1.20'