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