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'