diff --git a/pom.xml b/pom.xml index 1492636..0a80e54 100644 --- a/pom.xml +++ b/pom.xml @@ -77,5 +77,10 @@ InfinityLib 1.3.9 + + com.google.code.findbugs + jsr305 + 3.0.2 + diff --git a/src/main/java/me/CHANGEME/slimefunaddon/ExampleAddon.java b/src/main/java/me/CHANGEME/slimefunaddon/ExampleAddon.java deleted file mode 100644 index 9fb4250..0000000 --- a/src/main/java/me/CHANGEME/slimefunaddon/ExampleAddon.java +++ /dev/null @@ -1,84 +0,0 @@ -package me.CHANGEME.slimefunaddon; - -import org.bukkit.Material; -import org.bukkit.NamespacedKey; -import org.bukkit.inventory.ItemStack; -import org.bukkit.plugin.java.JavaPlugin; - -import io.github.thebusybiscuit.slimefun4.api.items.ItemGroup; -import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItem; -import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack; -import io.github.thebusybiscuit.slimefun4.api.recipes.RecipeType; -import io.github.thebusybiscuit.slimefun4.api.SlimefunAddon; -import io.github.thebusybiscuit.slimefun4.libraries.dough.config.Config; -import io.github.thebusybiscuit.slimefun4.libraries.dough.items.CustomItemStack; - -public class ExampleAddon extends JavaPlugin implements SlimefunAddon { - - @Override - public void onEnable() { - // Read something from your config.yml - Config cfg = new Config(this); - - if (cfg.getBoolean("options.auto-update")) { - // You could start an Auto-Updater for example - } - - /* - * 1. Creating a new Category - * This Category will use the following ItemStack - */ - ItemStack itemGroupItem = new CustomItemStack(Material.DIAMOND, "&4Addon Category", "", "&a> Click to open"); - - // Give your Category a unique id. - NamespacedKey itemGroupId = new NamespacedKey(this, "addon_category"); - ItemGroup itemGroup = new ItemGroup(itemGroupId, itemGroupItem); - - /* - * 2. Create a new SlimefunItemStack - * This class has many constructors, it is very important - * that you give each item a unique id. - */ - SlimefunItemStack slimefunItem = new SlimefunItemStack("COOL_DIAMOND", Material.DIAMOND, "&4Cool Diamond", "&c+20% Coolness"); - - /* - * 3. Creating a Recipe - * The Recipe is an ItemStack Array with a length of 9. - * It represents a Shaped Recipe in a 3x3 crafting grid. - * The machine in which this recipe is crafted in is specified - * further down as the RecipeType. - */ - ItemStack[] recipe = { new ItemStack(Material.EMERALD), null, new ItemStack(Material.EMERALD), null, new ItemStack(Material.DIAMOND), null, new ItemStack(Material.EMERALD), null, new ItemStack(Material.EMERALD) }; - - /* - * 4. Registering the Item - * Now you just have to register the item. - * RecipeType.ENHANCED_CRAFTING_TABLE refers to the machine in - * which this item is crafted in. - * Recipe Types from Slimefun itself will automatically add the recipe to that machine. - */ - SlimefunItem item = new SlimefunItem(itemGroup, slimefunItem, RecipeType.ENHANCED_CRAFTING_TABLE, recipe); - item.register(this); - } - - @Override - public void onDisable() { - // Logic for disabling the plugin... - } - - @Override - public String getBugTrackerURL() { - // You can return a link to your Bug Tracker instead of null here - return null; - } - - @Override - public JavaPlugin getJavaPlugin() { - /* - * You will need to return a reference to your Plugin here. - * If you are using your main class for this, simply return "this". - */ - return this; - } - -} diff --git a/src/main/java/me/jasperchasetoq/mobsimulationplus/MobSimulationPlus.java b/src/main/java/me/jasperchasetoq/mobsimulationplus/MobSimulationPlus.java new file mode 100644 index 0000000..7a50c1f --- /dev/null +++ b/src/main/java/me/jasperchasetoq/mobsimulationplus/MobSimulationPlus.java @@ -0,0 +1,46 @@ +package me.jasperchasetoq.mobsimulationplus; + +import io.github.thebusybiscuit.slimefun4.api.SlimefunAddon; + +import io.github.thebusybiscuit.slimefun4.libraries.dough.config.Config; + +import org.bukkit.plugin.java.JavaPlugin; + +public class MobSimulationPlus extends JavaPlugin implements SlimefunAddon { + + @Override + public void onEnable() { + MobSimulationPlusItemsSetup.setup(this); + // Read something from your config.yml + Config cfg = new Config(this); + + if (cfg.getBoolean("options.auto-update")) { + // You could start an Auto-Updater for example + } + + } + + + + + @Override + public void onDisable() { + // Logic for disabling the plugin... + } + + @Override + public String getBugTrackerURL() { + // You can return a link to your Bug Tracker instead of null here + return null; + } + + @Override + public JavaPlugin getJavaPlugin() { + /* + * You will need to return a reference to your Plugin here. + * If you are using your main class for this, simply return "this". + */ + return this; + } + +} diff --git a/src/main/java/me/jasperchasetoq/mobsimulationplus/MobSimulationPlusItemsSetup.java b/src/main/java/me/jasperchasetoq/mobsimulationplus/MobSimulationPlusItemsSetup.java new file mode 100644 index 0000000..8370c73 --- /dev/null +++ b/src/main/java/me/jasperchasetoq/mobsimulationplus/MobSimulationPlusItemsSetup.java @@ -0,0 +1,134 @@ +package me.jasperchasetoq.mobsimulationplus; + +import io.github.mooy1.infinityexpansion.items.mobdata.MobData; +import io.github.mooy1.infinityexpansion.items.mobdata.MobDataCard; +import io.github.mooy1.infinityexpansion.items.mobdata.MobDataTier; +import io.github.thebusybiscuit.slimefun4.api.items.SlimefunItemStack; +import io.github.thebusybiscuit.slimefun4.implementation.SlimefunItems; +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; + +import javax.annotation.Nonnull; + +public class MobSimulationPlusItemsSetup { + + private MobSimulationPlusItemsSetup() { + } + + public static void setup(@Nonnull MobSimulationPlus plugin) + { + new MobDataCard("Phantom", MobDataTier.ADVANCED, new ItemStack[]{ + new ItemStack(Material.PHANTOM_MEMBRANE, 32), new ItemStack(Material.PHANTOM_MEMBRANE, 32), new ItemStack(Material.PHANTOM_MEMBRANE, 32), + new ItemStack(Material.PHANTOM_MEMBRANE, 32), MobData.EMPTY_DATA_CARD, new ItemStack(Material.PHANTOM_MEMBRANE, 32), + new ItemStack(Material.PHANTOM_MEMBRANE, 32), new ItemStack(Material.PHANTOM_MEMBRANE, 32), new ItemStack(Material.PHANTOM_MEMBRANE, 32), + }) + .addDrop(Material.PHANTOM_MEMBRANE, 1) + .addDrop(Material.ELYTRA, 2500) + .register(plugin); + new MobDataCard("Chicken+", MobDataTier.ADVANCED, new ItemStack[]{ + new ItemStack(Material.EGG, 16), new ItemStack(Material.EGG, 16), new ItemStack(Material.EGG, 16), + new ItemStack(Material.EGG, 16), MobData.CHICKEN, new ItemStack(Material.EGG, 16), + new ItemStack(Material.EGG, 16), new ItemStack(Material.EGG, 16), new ItemStack(Material.EGG, 16) + }) + .addDrop(Material.CHICKEN, 1) + .addDrop(Material.FEATHER, 1) + .addDrop(Material.EGG, 1) + .register(plugin); + new MobDataCard("Rainbow Sheep", MobDataTier.ADVANCED, new ItemStack[]{ + new SlimefunItemStack(SlimefunItems.RAINBOW_WOOL, 16), new SlimefunItemStack(SlimefunItems.RAINBOW_WOOL, 16), new SlimefunItemStack(SlimefunItems.RAINBOW_WOOL, 16), + new SlimefunItemStack(SlimefunItems.RAINBOW_WOOL, 16), MobData.SHEEP, new SlimefunItemStack(SlimefunItems.RAINBOW_WOOL, 16), + new SlimefunItemStack(SlimefunItems.RAINBOW_WOOL, 16), new SlimefunItemStack(SlimefunItems.RAINBOW_WOOL, 16), new SlimefunItemStack(SlimefunItems.RAINBOW_WOOL, 16) + }) + .addDrop(Material.WHITE_WOOL, 1) + .addDrop(Material.ORANGE_WOOL, 1) + .addDrop(Material.MAGENTA_WOOL, 1) + .addDrop(Material.LIGHT_BLUE_WOOL, 1) + .addDrop(Material.YELLOW_WOOL, 1) + .addDrop(Material.LIME_WOOL, 1) + .addDrop(Material.PINK_WOOL, 1) + .addDrop(Material.GRAY_WOOL, 1) + .addDrop(Material.LIGHT_GRAY_WOOL, 1) + .addDrop(Material.CYAN_WOOL, 1) + .addDrop(Material.PURPLE_WOOL, 1) + .addDrop(Material.BLUE_WOOL, 1) + .addDrop(Material.BROWN_WOOL, 1) + .addDrop(Material.GREEN_WOOL, 1) + .addDrop(Material.RED_WOOL, 1) + .addDrop(Material.BLACK_WOOL, 1) + .register(plugin); + new MobDataCard("Pig", MobDataTier.PASSIVE, new ItemStack[]{ + new ItemStack(Material.PORKCHOP, 32), new ItemStack(Material.CARROT_ON_A_STICK, 1), new ItemStack(Material.COOKED_PORKCHOP, 32), + new ItemStack(Material.SADDLE, 1), MobData.EMPTY_DATA_CARD, new ItemStack(Material.SADDLE, 1), + new ItemStack(Material.COOKED_PORKCHOP, 32), new ItemStack(Material.CARROT_ON_A_STICK, 1), new ItemStack(Material.PORKCHOP, 32), + }) + .addDrop(Material.PORKCHOP, 1) + .addDrop(Material.COOKED_PORKCHOP, 1) + .addDrop(Material.CARROT, 50) + .addDrop(Material.SADDLE, 750) + .register(plugin); + new MobDataCard("Zombified Piglin", MobDataTier.NEUTRAL, new ItemStack[]{ + new ItemStack(Material.ROTTEN_FLESH, 64), new ItemStack(Material.CARROT, 64), new ItemStack(Material.GOLD_INGOT, 64), + new ItemStack(Material.GOLDEN_SWORD, 1), MobData.EMPTY_DATA_CARD, new ItemStack(Material.GOLDEN_SWORD, 1), + new ItemStack(Material.GOLD_INGOT, 64), new ItemStack(Material.CARROT, 64), new ItemStack(Material.ROTTEN_FLESH, 64), + }) + .addDrop(Material.GOLD_NUGGET, 1) + .addDrop(SlimefunItems.STRANGE_NETHER_GOO, 1000) + + .register(plugin); + new MobDataCard("Piglin", MobDataTier.ADVANCED, new ItemStack[]{ + new ItemStack(Material.GOLD_BLOCK, 64), new ItemStack(Material.GOLDEN_CARROT, 64), new ItemStack(Material.GOLD_BLOCK, 64), + new ItemStack(Material.ENCHANTED_GOLDEN_APPLE, 1), MobData.EMPTY_DATA_CARD, new ItemStack(Material.ENCHANTED_GOLDEN_APPLE, 1), + new ItemStack(Material.GOLD_BLOCK, 64), new ItemStack(Material.GOLDEN_CARROT, 64), new ItemStack(Material.GOLD_BLOCK, 64), + }) + .addDrop(Material.GOLD_INGOT, 1) + .addDrop(Material.GOLDEN_SWORD, 25) + .addDrop(Material.CROSSBOW, 50) + .addDrop(SlimefunItems.STRANGE_NETHER_GOO, 10) + + .register(plugin); + new MobDataCard("Pillager", MobDataTier.HOSTILE, new ItemStack[]{ + new ItemStack(Material.EMERALD, 64), new ItemStack(Material.BLACK_BANNER, 16), new ItemStack(Material.EMERALD, 64), + new ItemStack(Material.CROSSBOW, 1), MobData.EMPTY_DATA_CARD, new ItemStack(Material.CROSSBOW, 1), + new ItemStack(Material.EMERALD, 64), new ItemStack(Material.BLACK_BANNER, 16), new ItemStack(Material.EMERALD, 64), + }) + .addDrop(Material.EMERALD, 1) + .addDrop(Material.CROSSBOW, 10) + + .register(plugin); + new MobDataCard("Vindicator", MobDataTier.HOSTILE, new ItemStack[]{ + new ItemStack(Material.EMERALD, 64), new ItemStack(Material.BLACK_BANNER, 16), new ItemStack(Material.EMERALD, 64), + new ItemStack(Material.IRON_AXE, 1), MobData.EMPTY_DATA_CARD, new ItemStack(Material.IRON_AXE, 1), + new ItemStack(Material.EMERALD, 64), new ItemStack(Material.BLACK_BANNER, 16), new ItemStack(Material.EMERALD, 64), + }) + .addDrop(Material.EMERALD, 1) + .addDrop(Material.IRON_AXE, 10) + + .register(plugin); + new MobDataCard("Evoker", MobDataTier.HOSTILE, new ItemStack[]{ + new ItemStack(Material.EMERALD, 64), new ItemStack(Material.BLACK_BANNER, 16), new ItemStack(Material.EMERALD, 64), + new ItemStack(Material.TOTEM_OF_UNDYING, 1), MobData.EMPTY_DATA_CARD, new ItemStack(Material.TOTEM_OF_UNDYING, 1), + new ItemStack(Material.EMERALD, 64), new ItemStack(Material.BLACK_BANNER, 16), new ItemStack(Material.EMERALD, 64), + }) + .addDrop(Material.EMERALD, 1) + .addDrop(Material.TOTEM_OF_UNDYING, 100) + + .register(plugin); + new MobDataCard("Witch+", MobDataTier.ADVANCED, new ItemStack[]{ + new ItemStack(Material.STICK, 64), new ItemStack(Material.GLASS_BOTTLE, 64), new ItemStack(Material.GLOWSTONE, 64), + new ItemStack(Material.GUNPOWDER, 64), MobData.WITCH, new ItemStack(Material.REDSTONE_BLOCK, 64), + new ItemStack(Material.SPIDER_EYE, 64), new ItemStack(Material.SUGAR, 64), new ItemStack(Material.CAULDRON, 64), + }) + .addDrop(Material.STICK, 1) + .addDrop(Material.GLASS_BOTTLE, 1) + .addDrop(Material.GLOWSTONE_DUST, 1) + .addDrop(Material.GUNPOWDER, 1) + .addDrop(Material.REDSTONE, 1) + .addDrop(Material.SPIDER_EYE, 1) + .addDrop(Material.SUGAR, 1) + .addDrop(Material.CAULDRON, 10) + + + + .register(plugin); + } + } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index a89550a..12e98f5 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,14 +1,14 @@ ## CHANGE this to the name of your plugin. -name: SlimefunAddon +name: MobSimulationPlus ## CHANGE this to your username. -author: CHANGEME +author: JasperChaseTOQ ## CHANGE this to a meaninful but short description of your plugin. description: A generic Slimefun4-Addon ## CHANGE this to the path of the class that extends JavaPlugin. -main: me.CHANGEME.slimefunaddon.ExampleAddon +main: me.jasperchasetoq.mobsimulationplus.MobSimulationPlus ## You can change this to link to your website or repository. You can also remove this line if you want to. website: https://github.com/Slimefun/Addon-Template @@ -18,8 +18,7 @@ website: https://github.com/Slimefun/Addon-Template version: ${project.version} ## This is the minimum minecraft version required to run your plugin. -api-version: 1.14 +api-version: 1.16 ## This is required and marks Slimefun as a plugin dependency. -depend: -- Slimefun \ No newline at end of file +depend: [Slimefun, InfinityExpansion] \ No newline at end of file