diff --git a/src/main/java/com/jtrent238/coremod/CommonProxy.java b/src/main/java/com/jtrent238/coremod/CommonProxy.java new file mode 100644 index 0000000..1703102 --- /dev/null +++ b/src/main/java/com/jtrent238/coremod/CommonProxy.java @@ -0,0 +1,9 @@ +package com.jtrent238.coremod; + +public class CommonProxy { + + public void registerRenderers() { + + } + +} diff --git a/src/main/java/com/jtrent238/coremod/ForgeSubscribe.java b/src/main/java/com/jtrent238/coremod/ForgeSubscribe.java new file mode 100644 index 0000000..ed544c8 --- /dev/null +++ b/src/main/java/com/jtrent238/coremod/ForgeSubscribe.java @@ -0,0 +1,9 @@ +package com.jtrent238.coremod; + +import cpw.mods.fml.common.eventhandler.EventPriority; + +public @interface ForgeSubscribe { + + EventPriority priority(); + +} \ No newline at end of file diff --git a/src/main/java/com/jtrent238/coremod/GuiHandler.java b/src/main/java/com/jtrent238/coremod/GuiHandler.java new file mode 100644 index 0000000..ebba5ed --- /dev/null +++ b/src/main/java/com/jtrent238/coremod/GuiHandler.java @@ -0,0 +1,19 @@ +package com.jtrent238.coremod; + +import cpw.mods.fml.common.network.IGuiHandler; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.world.World; + +public class GuiHandler implements IGuiHandler { + + @Override + public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { + return null; + } + + @Override + public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) { + return null; + } + +} diff --git a/src/main/java/com/jtrent238/coremod/LogHelper.java b/src/main/java/com/jtrent238/coremod/LogHelper.java new file mode 100644 index 0000000..f89f019 --- /dev/null +++ b/src/main/java/com/jtrent238/coremod/LogHelper.java @@ -0,0 +1,7 @@ +package com.jtrent238.coremod; + + +public class LogHelper { + + +} diff --git a/src/main/java/com/jtrent238/coremod/ModsLoaded.java b/src/main/java/com/jtrent238/coremod/ModsLoaded.java new file mode 100644 index 0000000..13d3c25 --- /dev/null +++ b/src/main/java/com/jtrent238/coremod/ModsLoaded.java @@ -0,0 +1,7 @@ +package com.jtrent238.coremod; + + +public class ModsLoaded{ + +} + \ No newline at end of file diff --git a/src/main/java/com/jtrent238/coremod/coremod.java b/src/main/java/com/jtrent238/coremod/coremod.java new file mode 100644 index 0000000..6f8e1ac --- /dev/null +++ b/src/main/java/com/jtrent238/coremod/coremod.java @@ -0,0 +1,42 @@ +package com.jtrent238.coremod; + +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.eventhandler.EventPriority; +import cpw.mods.fml.common.network.NetworkRegistry; +import net.minecraftforge.client.event.RenderGameOverlayEvent; + +@Mod(modid="jtcoremod", name="jtrent238's Core Mod", version="1.0.0.0") +public class coremod +{ + private static final String coremod = null; + private static final String MODID = coremod; + + @ForgeSubscribe(priority = EventPriority.NORMAL) + public void eventHandler(RenderGameOverlayEvent event) { + } + + + + + @Mod.EventHandler + public void preInit(FMLPreInitializationEvent event) + { + } + + + @Mod.EventHandler + public void init(FMLInitializationEvent event) + { + NetworkRegistry.INSTANCE.registerGuiHandler(this, new GuiHandler()); + + + + + } ; + + @Mod.EventHandler + public void postInit(FMLPostInitializationEvent event) {} +} diff --git a/src/main/java/com/jtrent238/epicproportions/BlockLoader.java b/src/main/java/com/jtrent238/epicproportions/BlockLoader.java new file mode 100644 index 0000000..1e3fbd2 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/BlockLoader.java @@ -0,0 +1,87 @@ +package com.jtrent238.epicproportions; + +import com.jtrent238.decorationmod.blocks.BlockBrick1; +import com.jtrent238.decorationmod.blocks.BlockBrick2; +import com.jtrent238.decorationmod.blocks.BlockBrick3; +import com.jtrent238.decorationmod.blocks.BlockBrick4; +import com.jtrent238.decorationmod.blocks.BlockBrick5; +import com.jtrent238.decorationmod.blocks.BlockClouds1; +import com.jtrent238.decorationmod.blocks.BlockClouds2; +import com.jtrent238.decorationmod.blocks.BlockClouds3; +import com.jtrent238.decorationmod.blocks.BlockClouds4; +import com.jtrent238.decorationmod.blocks.BlockFractialNoise1; +import com.jtrent238.decorationmod.blocks.BlockGradient1; +import com.jtrent238.decorationmod.blocks.BlockNoise1; +import com.jtrent238.decorationmod.blocks.BlockNormalMap1; +import com.jtrent238.decorationmod.blocks.BlockNormalMap2; +import com.jtrent238.decorationmod.blocks.BlockPerlinNoise1; +import com.jtrent238.decorationmod.blocks.BlockTGO_Logo; +import com.jtrent238.decorationmod.blocks.BlockTerrain1; +import com.jtrent238.decorationmod.blocks.BlockTerrain2; +import com.jtrent238.decorationmod.blocks.BlockTerrain3; +import com.jtrent238.decorationmod.blocks.BlockTerrain4; +import com.jtrent238.decorationmod.blocks.BlockTerrain5; +import com.jtrent238.decorationmod.blocks.BlockTerrain6; +import com.jtrent238.decorationmod.blocks.BlockTextiles1; +import com.jtrent238.decorationmod.blocks.BlockTextiles10; +import com.jtrent238.decorationmod.blocks.BlockTextiles11; +import com.jtrent238.decorationmod.blocks.BlockTextiles12; +import com.jtrent238.decorationmod.blocks.BlockTextiles13; +import com.jtrent238.decorationmod.blocks.BlockTextiles14; +import com.jtrent238.decorationmod.blocks.BlockTextiles15; +import com.jtrent238.decorationmod.blocks.BlockTextiles16; +import com.jtrent238.decorationmod.blocks.BlockTextiles17; +import com.jtrent238.decorationmod.blocks.BlockTextiles18; +import com.jtrent238.decorationmod.blocks.BlockTextiles19; +import com.jtrent238.decorationmod.blocks.BlockTextiles2; +import com.jtrent238.decorationmod.blocks.BlockTextiles20; +import com.jtrent238.decorationmod.blocks.BlockTextiles21; +import com.jtrent238.decorationmod.blocks.BlockTextiles22; +import com.jtrent238.decorationmod.blocks.BlockTextiles23; +import com.jtrent238.decorationmod.blocks.BlockTextiles24; +import com.jtrent238.decorationmod.blocks.BlockTextiles25; +import com.jtrent238.decorationmod.blocks.BlockTextiles26; +import com.jtrent238.decorationmod.blocks.BlockTextiles27; +import com.jtrent238.decorationmod.blocks.BlockTextiles28; +import com.jtrent238.decorationmod.blocks.BlockTextiles3; +import com.jtrent238.decorationmod.blocks.BlockTextiles4; +import com.jtrent238.decorationmod.blocks.BlockTextiles5; +import com.jtrent238.decorationmod.blocks.BlockTextiles6; +import com.jtrent238.decorationmod.blocks.BlockTextiles7; +import com.jtrent238.decorationmod.blocks.BlockTextiles8; +import com.jtrent238.decorationmod.blocks.BlockTextiles9; +import com.jtrent238.decorationmod.blocks.BlockTiles1; +import com.jtrent238.decorationmod.blocks.BlockTurbulence1; +import com.jtrent238.decorationmod.blocks.BlockWood1; +import com.jtrent238.decorationmod.blocks.BlockWood2; +import com.jtrent238.decorationmod.blocks.BlockWood3; +import com.jtrent238.decorationmod.blocks.BlockWood4; +import com.jtrent238.decorationmod.blocks.BlockWood5; +import com.jtrent238.foodmod.Blocksugar; +import com.jtrent238.foodmod.FoodMod; + +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; + +public class BlockLoader { + + + /** + * Load Blocks. + */ + public static void loadBlocks() { + + + registerBlocks(); + } + + /** + * Register Blocks. + */ + private static void registerBlocks(){ + + + } +} diff --git a/src/main/java/com/jtrent238/epicproportions/EntityLoader.java b/src/main/java/com/jtrent238/epicproportions/EntityLoader.java new file mode 100644 index 0000000..bc64c71 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/EntityLoader.java @@ -0,0 +1,43 @@ +package com.jtrent238.epicproportions; + +import com.jtrent238.epicproportions.entity.EntityBomby; +import com.jtrent238.epicproportions.entity.EntityCaptianCookie; +import com.jtrent238.epicproportions.entity.EntityFred2_0; +import com.jtrent238.epicproportions.entity.EntityJen; +import com.jtrent238.epicproportions.entity.EntityNinjaMaster; +import com.jtrent238.epicproportions.entity.EntityPat; +import com.jtrent238.foodmod.EntityCandyPig; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.common.registry.EntityRegistry; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.model.ModelCreeper; +import net.minecraft.client.model.ModelPig; +import net.minecraft.client.renderer.entity.RenderLiving; +import net.minecraft.entity.Entity; +import com.jtrent238.epicproportions.model.ModelFred2_0; +import net.minecraft.util.ResourceLocation; + +public class EntityLoader { + + public static void LoadEntitys() { + //Bomby Registry + EntityRegistry.registerGlobalEntityID(EntityBomby.class, "EntityBomby",EntityRegistry.findGlobalUniqueEntityId()); + RenderingRegistry.registerEntityRenderingHandler(EntityBomby.class, new RenderLiving(new ModelCreeper(), 0){protected ResourceLocation getEntityTexture(Entity par1Entity){return new ResourceLocation("epicproportionsmod:EntityBomby.png");}});//Sets Bomby Texture + //Captian Cookie Registry + EntityRegistry.registerGlobalEntityID(EntityCaptianCookie.class, "EntityCaptianCookie",EntityRegistry.findGlobalUniqueEntityId()); + RenderingRegistry.registerEntityRenderingHandler(EntityCaptianCookie.class, new RenderLiving(new ModelBiped(), 0){protected ResourceLocation getEntityTexture(Entity par1Entity){return new ResourceLocation("epicproportionsmod:EntityCaptianCookie.png");}});//Sets CaptianCookie Texture + //Pat Registry + EntityRegistry.registerGlobalEntityID(EntityPat.class, "EntityPat",EntityRegistry.findGlobalUniqueEntityId()); + RenderingRegistry.registerEntityRenderingHandler(EntityPat.class, new RenderLiving(new ModelBiped(), 0){protected ResourceLocation getEntityTexture(Entity par1Entity){return new ResourceLocation("epicproportionsmod:EntityPat.png");}});//Sets Pat Texture + //Jen Registry + EntityRegistry.registerGlobalEntityID(EntityJen.class, "EntityJen",EntityRegistry.findGlobalUniqueEntityId()); + RenderingRegistry.registerEntityRenderingHandler(EntityJen.class, new RenderLiving(new ModelBiped(), 0){protected ResourceLocation getEntityTexture(Entity par1Entity){return new ResourceLocation("epicproportionsmod:EntityJen.png");}});//Sets Jen Texture + //Fred 2.0 Registry + EntityRegistry.registerGlobalEntityID(EntityFred2_0.class, "EntityFred2_0",EntityRegistry.findGlobalUniqueEntityId()); + RenderingRegistry.registerEntityRenderingHandler(EntityFred2_0.class, new RenderLiving(new ModelFred2_0(), 0){protected ResourceLocation getEntityTexture(Entity par1Entity){return new ResourceLocation("epicproportionsmod:EntityFred2_0.png");}});//Fred 2.0 Texture + //Ninja Master Registry + EntityRegistry.registerGlobalEntityID(EntityNinjaMaster.class, "EntityNinjaMaster",EntityRegistry.findGlobalUniqueEntityId()); + RenderingRegistry.registerEntityRenderingHandler(EntityNinjaMaster.class, new RenderLiving(new ModelBiped(), 0){protected ResourceLocation getEntityTexture(Entity par1Entity){return new ResourceLocation("epicproportionsmod:EntityNinjaMaster.png");}});//NinjaMaster Texture + } +} diff --git a/src/main/java/com/jtrent238/epicproportions/EpicProportionsMod.java b/src/main/java/com/jtrent238/epicproportions/EpicProportionsMod.java new file mode 100644 index 0000000..44f4052 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/EpicProportionsMod.java @@ -0,0 +1,124 @@ +package com.jtrent238.epicproportions; + +import cpw.mods.fml.common.Mod; +import cpw.mods.fml.common.Mod.Instance; +import cpw.mods.fml.common.event.FMLInitializationEvent; +import cpw.mods.fml.common.event.FMLPostInitializationEvent; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.eventhandler.EventPriority; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.event.RenderGameOverlayEvent; + +@Mod(modid="epicproportionsmod", name="jtrent238's EpicProportions Mod", version="1.0.0.0") +public class EpicProportionsMod +{ + + private static final String MODID = "epicproportionsmod"; + + + + @Instance(MODID) + public static EpicProportionsMod instance; + public static final String MODVERSION = "1.0.0.0"; + + @ForgeSubscribe(priority = EventPriority.NORMAL) + public void eventHandler(RenderGameOverlayEvent event) { + + } + + public static double rand; + + private static int p_i1986_1_; + + // Version checking instance + //public static VersionChecker versionChecker; + //public static boolean haveWarnedVersionOutOfDate = false; + + //Enchantments + + + + +@Mod.EventHandler +public void preInit(FMLPreInitializationEvent event) +{ + + } + + +private void setHarvestLevel(String string, int i) { + + +} + +@Mod.EventHandler +public void init(FMLInitializationEvent event) +{ + BlockLoader.loadBlocks(); + ItemLoader.LoadItems(); + EntityLoader.LoadEntitys(); + //ModLoader.LoadMods(); + //InventoryLoader.LoadInventorys(); + //SoundEvents.LoadSounds(); + Recipes.registerRecpies(); + //ChestGenHooks.getInfo(ChestGenHooks.BONUS_CHEST).addItem(new WeightedRandomChestContent(new ItemStack(ItemLoader.itemnyanapple), 2, 5, 20)); + //MinecraftForge.addGrassSeed(new ItemStack(FoodModItems.StrawberrySeeds), 5); + //NetworkRegistry.instance().registerGuiHandler(instance, guiHandler); + //Not Implemented Yet//NetworkRegistry.INSTANCE.registerGuiHandler(FridgeGUI.instance, new GuiHandler()); + } + + +public static CreativeTabs EpicProportionsMod = new CreativeTabs("EpicProportionsMod") + +{ + public Item getTabIconItem() { + + return new ItemStack(ItemLoader.itemgemofepicproportions).getItem(); + //Old Icon//return new ItemStack(Items.golden_apple).getItem(); + } + public boolean hasSearchBar(){ + return false; + } + @SideOnly(Side.CLIENT) + public String getBackgroundImageName() + { + return "EpicProportionsMod.png"; + } + + @SideOnly(Side.CLIENT) + public boolean drawInForegroundOfTab() + { + return false; + } + + } + +; + +@Mod.EventHandler +public void postInit(FMLPostInitializationEvent event) { + { + + Recipes.registerRecpies(); + + } + + +} + + + + + + + + + + + +} diff --git a/src/main/java/com/jtrent238/epicproportions/ForgeSubscribe.java b/src/main/java/com/jtrent238/epicproportions/ForgeSubscribe.java new file mode 100644 index 0000000..3256f2e --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/ForgeSubscribe.java @@ -0,0 +1,9 @@ +package com.jtrent238.epicproportions; + +import cpw.mods.fml.common.eventhandler.EventPriority; + +public @interface ForgeSubscribe { + + EventPriority priority(); + +} diff --git a/src/main/java/com/jtrent238/epicproportions/ItemLoader.java b/src/main/java/com/jtrent238/epicproportions/ItemLoader.java new file mode 100644 index 0000000..47411d8 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/ItemLoader.java @@ -0,0 +1,113 @@ +package com.jtrent238.epicproportions; + +import com.jtrent238.epicproportions.items.itemJenIngot; +import com.jtrent238.epicproportions.items.itemJenslips; +import com.jtrent238.epicproportions.items.itemPatIngot; +import com.jtrent238.epicproportions.items.itemgemofepicproportions; +import com.jtrent238.epicproportions.items.spawners.itemSpawnBomby; +import com.jtrent238.epicproportions.items.spawners.itemSpawnCaptianCookie; +import com.jtrent238.epicproportions.items.spawners.itemSpawnFred2_0; +import com.jtrent238.epicproportions.items.spawners.itemSpawnJen; +import com.jtrent238.epicproportions.items.spawners.itemSpawnNinjaMaster; +import com.jtrent238.epicproportions.items.spawners.itemSpawnPat; + +/* +import com.jtrent238.foodmod.FoodMod; +import com.jtrent238.mcrustmod.items.can_beans_empty; +import com.jtrent238.mcrustmod.items.can_tuna_empty; +import com.jtrent238.mcrustmod.items.ammo.ammo_handmade_shell; +import com.jtrent238.mcrustmod.items.ammo.ammo_pistol; +import com.jtrent238.mcrustmod.items.ammo.ammo_pistol_fire; +import com.jtrent238.mcrustmod.items.ammo.ammo_pistol_hv; +import com.jtrent238.mcrustmod.items.ammo.ammo_rifle; +import com.jtrent238.mcrustmod.items.ammo.ammo_rifle_explosive; +import com.jtrent238.mcrustmod.items.ammo.ammo_rifle_hv; +import com.jtrent238.mcrustmod.items.ammo.ammo_rifle_incendiary; +import com.jtrent238.mcrustmod.items.ammo.ammo_rocket_basic; +import com.jtrent238.mcrustmod.items.ammo.ammo_rocket_fire; +import com.jtrent238.mcrustmod.items.ammo.ammo_rocket_hv; +import com.jtrent238.mcrustmod.items.ammo.ammo_rocket_smoke; +import com.jtrent238.mcrustmod.items.ammo.ammo_shotgun; +import com.jtrent238.mcrustmod.items.ammo.ammo_shotgun_slug; +import com.jtrent238.mcrustmod.items.ammo.arrow_hv; +import com.jtrent238.mcrustmod.items.ammo.arrow_wooden; +import com.jtrent238.mcrustmod.items.food.can_beans; +import com.jtrent238.mcrustmod.items.food.can_tuna; +import com.jtrent238.mcrustmod.items.seeds.seed_corn; +import com.jtrent238.mcrustmod.items.seeds.seed_hemp; +import com.jtrent238.mcrustmod.items.seeds.seed_pumpkin; +import com.jtrent238.mcrustmod.items.tools.axe_salvaged; +import com.jtrent238.mcrustmod.items.tools.hammer; +import com.jtrent238.mcrustmod.items.tools.hammer_salvaged; +import com.jtrent238.mcrustmod.items.tools.hatchet; +import com.jtrent238.mcrustmod.items.tools.icepick_salvaged; +import com.jtrent238.mcrustmod.items.tools.lantern; +import com.jtrent238.mcrustmod.items.tools.pickaxe; +import com.jtrent238.mcrustmod.items.tools.stone_hatchet; +import com.jtrent238.mcrustmod.items.tools.stone_pickaxe; +import com.jtrent238.weaponmod.Itemcheeseknife; +*/ +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.item.Item; +import net.minecraft.item.Item.ToolMaterial; +import net.minecraft.item.ItemFood; +import net.minecraft.item.ItemRecord; + +public class ItemLoader { + + public static Item itemgemofepicproportions; + public static Item itemPatIngot; + public static Item itemJenIngot; + public static Item itemJenslips; + + //SpawnEggs// + public static Item itemSpawnBomby; + public static Item itemSpawnCaptianCookie; + public static Item itemSpawnPat; + public static Item itemSpawnJen; + public static Item itemSpawnFred2_0; + public static Item itemSpawnNinjaMaster; + + + /** + * Load Items. + */ +public static void LoadItems() { + + itemgemofepicproportions = new itemgemofepicproportions().setUnlocalizedName("itemgemofepicproportions").setTextureName("epicproportionsmod:itemgemofepicproportions").setCreativeTab(EpicProportionsMod.EpicProportionsMod); + itemPatIngot = new itemPatIngot().setUnlocalizedName("itemPatIngot").setTextureName("epicproportionsmod:itemPatIngot").setCreativeTab(EpicProportionsMod.EpicProportionsMod); + itemJenIngot = new itemJenIngot().setUnlocalizedName("itemJenIngot").setTextureName("epicproportionsmod:itemJenIngot").setCreativeTab(EpicProportionsMod.EpicProportionsMod); + itemJenslips = new itemJenslips().setUnlocalizedName("itemJenslips").setTextureName("epicproportionsmod:itemJenslips").setCreativeTab(EpicProportionsMod.EpicProportionsMod); + + //SpawnEggs// + itemSpawnBomby = new itemSpawnBomby().setUnlocalizedName("itemSpawnBomby").setTextureName("epicproportionsmod:itemSpawnBomby").setCreativeTab(EpicProportionsMod.EpicProportionsMod); + itemSpawnCaptianCookie = new itemSpawnCaptianCookie().setUnlocalizedName("itemSpawnCaptianCookie").setTextureName("epicproportionsmod:itemSpawnCaptianCookie").setCreativeTab(EpicProportionsMod.EpicProportionsMod); + itemSpawnPat = new itemSpawnPat().setUnlocalizedName("itemSpawnPat").setTextureName("epicproportionsmod:itemSpawnPat").setCreativeTab(EpicProportionsMod.EpicProportionsMod); + itemSpawnJen = new itemSpawnJen().setUnlocalizedName("itemSpawnJen").setTextureName("epicproportionsmod:itemSpawnJen").setCreativeTab(EpicProportionsMod.EpicProportionsMod); + itemSpawnFred2_0 = new itemSpawnFred2_0().setUnlocalizedName("itemSpawnFred2_0").setTextureName("epicproportionsmod:itemSpawnFred2_0").setCreativeTab(EpicProportionsMod.EpicProportionsMod); + itemSpawnNinjaMaster = new itemSpawnNinjaMaster().setUnlocalizedName("itemSpawnNinjaMaster").setTextureName("epicproportionsmod:itemSpawnNinjaMaster").setCreativeTab(EpicProportionsMod.EpicProportionsMod); + + registerItems(); +} + +/** + * Register Items. + */ +private static void registerItems(){ + + GameRegistry.registerItem(itemgemofepicproportions, itemgemofepicproportions.getUnlocalizedName().substring(5)); + GameRegistry.registerItem(itemPatIngot, itemPatIngot.getUnlocalizedName().substring(5)); + GameRegistry.registerItem(itemJenIngot, itemJenIngot.getUnlocalizedName().substring(5)); + GameRegistry.registerItem(itemJenslips, itemJenslips.getUnlocalizedName().substring(5)); + + //SpawnEggs// + GameRegistry.registerItem(itemSpawnBomby, itemSpawnBomby.getUnlocalizedName().substring(5)); + GameRegistry.registerItem(itemSpawnCaptianCookie, itemSpawnCaptianCookie.getUnlocalizedName().substring(5)); + GameRegistry.registerItem(itemSpawnPat, itemSpawnPat.getUnlocalizedName().substring(5)); + GameRegistry.registerItem(itemSpawnJen, itemSpawnJen.getUnlocalizedName().substring(5)); + GameRegistry.registerItem(itemSpawnFred2_0, itemSpawnFred2_0.getUnlocalizedName().substring(5)); + GameRegistry.registerItem(itemSpawnNinjaMaster, itemSpawnNinjaMaster.getUnlocalizedName().substring(5)); + +} + +} diff --git a/src/main/java/com/jtrent238/epicproportions/Recipes.java b/src/main/java/com/jtrent238/epicproportions/Recipes.java new file mode 100644 index 0000000..e64dfd2 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/Recipes.java @@ -0,0 +1,49 @@ +package com.jtrent238.epicproportions; + +import cpw.mods.fml.common.registry.GameRegistry; +import cpw.mods.fml.common.registry.GameRegistry.Type; +import net.minecraft.block.Block; +import net.minecraft.entity.monster.EntityPigZombie; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemPotion; +import net.minecraft.item.ItemStack; +import net.minecraft.potion.Potion; + +public class Recipes { + + + /** + * Register Recipes with Game Registry. + */ + public static void registerRecpies(){ + addShaplessRecpies(); + addShapedRecpies(); + addsmeltigrecipies(); + } + + /** + * Add Shaped Recipes. + */ + private static void addShapedRecpies(){ + + } + + /** + * Add Shapeless Recipes. + */ + private static void addShaplessRecpies(){ + + } + /** + * Add Smelting Recipes + */ + private static void addsmeltigrecipies(){ + + } + + } + + + + diff --git a/src/main/java/com/jtrent238/epicproportions/entity/EntityAISitPet.java b/src/main/java/com/jtrent238/epicproportions/entity/EntityAISitPet.java new file mode 100644 index 0000000..4f03545 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/entity/EntityAISitPet.java @@ -0,0 +1,57 @@ +package com.jtrent238.epicproportions.entity; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.ai.EntityAIBase; +import net.minecraft.pathfinding.PathNavigate; + +public class EntityAISitPet + extends EntityAIBase +{ + private PetBase theEntity; + private boolean isSitting; + private static final String __OBFID = "CL_00001613"; + + public EntityAISitPet(PetBase par1EntityTameable){ + /*{ + this.theEntity = par1EntityTameable; + func_75248_a(5); + } + + public boolean func_75250_a() + { + if (!this.theEntity.isTamed()) { + return false; + } + if (this.theEntity.func_70090_H()) { + return false; + } + if (!this.theEntity.field_70122_E) { + return false; + } + Entity entitylivingbase = this.theEntity.getOwner(); + return (this.theEntity.func_70068_e(entitylivingbase) < 144.0D) && ((entitylivingbase instanceof EntityLivingBase)) && (((EntityLivingBase)entitylivingbase).func_70643_av() != null) ? false : entitylivingbase == null ? true : this.isSitting; + } + + public void func_75249_e() + { + this.theEntity.func_70661_as().func_75499_g(); + this.theEntity.setSitting(true); + } + + public void func_75251_c() + { + this.theEntity.setSitting(false); + } + + public void setSitting(boolean par1) + { + this.isSitting = par1; + }*/ +} + +@Override +public boolean shouldExecute() { + return false; +} +} diff --git a/src/main/java/com/jtrent238/epicproportions/entity/EntityBomby.java b/src/main/java/com/jtrent238/epicproportions/entity/EntityBomby.java new file mode 100644 index 0000000..218865e --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/entity/EntityBomby.java @@ -0,0 +1,126 @@ +package com.jtrent238.epicproportions.entity; + +import java.util.Iterator; +import java.util.List; +import net.minecraft.entity.DataWatcher; +import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAIAttackOnCollide; +import net.minecraft.entity.ai.EntityAIHurtByTarget; +import net.minecraft.entity.ai.EntityAILeapAtTarget; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAITasks; +import net.minecraft.entity.ai.EntityAIWander; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.ai.attributes.IAttributeInstance; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.entity.player.PlayerCapabilities; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; + +public class EntityBomby + extends PetBase +{ + public EntityBomby(World world) + { + super(world); + } + /*func_94058_c(getName()); + + func_70105_a(0.5F, 0.5F); + + this.field_70714_bg.func_75776_a(1, new EntityAISwimming(this)); + this.field_70714_bg.func_75776_a(2, this.aiSit); + this.field_70714_bg.func_75776_a(3, new EntityAILeapAtTarget(this, 0.4F)); + this.field_70714_bg.func_75776_a(4, new EntityAIAttackOnCollide(this, 1.0D, true)); + this.field_70714_bg.func_75776_a(5, new EntityAIFollowOwnerPet(this, 1.0D, 10.0F, 2.0F)); + + this.field_70714_bg.func_75776_a(7, new EntityAIWander(this, 1.0D)); + + this.field_70714_bg.func_75776_a(9, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); + this.field_70714_bg.func_75776_a(9, new EntityAILookIdle(this)); + this.field_70715_bh.func_75776_a(1, new EntityAIOwnerHurtByTargetPet(this)); + this.field_70715_bh.func_75776_a(2, new EntityAIOwnerHurtTargetPet(this)); + this.field_70715_bh.func_75776_a(3, new EntityAIHurtByTarget(this, true)); + } + */ + public String getName() + { + return "Bomby"; + } + /* + protected void func_110147_ax() + { + super.func_110147_ax(); + func_110148_a(SharedMonsterAttributes.field_111267_a).func_111128_a(50.0D); + func_110148_a(SharedMonsterAttributes.field_111263_d).func_111128_a(0.3D); + } + + public void func_70636_d() + { + super.func_70636_d(); + if (getOwner() == this) + { + Iterator entities = this.field_70170_p.field_72996_f.iterator(); + while (entities.hasNext()) + { + Entity entity = (Entity)entities.next(); + if (((entity instanceof EntityYoutuber)) && + (((EntityYoutuber)entity).getYoutuber() == Youtubers.GetYoutuberIDbyName("FuriousDestroyer")) && + (func_70068_e(entity) < 5.0D)) + { + setOwner(entity); + setTamed(true); + } + } + if (getOwner() == this) { + super.getPlayerOwner(); + } + } + } + + public boolean func_70085_c(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.field_71071_by.func_70448_g(); + if (isTamed()) { + if (itemstack != null) { + if (itemstack.func_77973_b() == Items.field_151016_H) { + if (this.field_70180_af.func_111145_d(18) < 50.0F) + { + if (!p_70085_1_.field_71075_bZ.field_75098_d) { + itemstack.field_77994_a -= 1; + } + func_70691_i(5.0F); + if (itemstack.field_77994_a <= 0) { + p_70085_1_.field_71071_by.func_70299_a(p_70085_1_.field_71071_by.field_70461_c, (ItemStack)null); + } + return true; + } + } + } + } + return super.func_70085_c(p_70085_1_); + } + + public boolean func_70652_k(Entity par1Entity) + { + float size = 2.0F; + this.field_70170_p.func_72876_a(this, this.field_70165_t, this.field_70163_u, this.field_70161_v, size, false); + return true; + } + + public boolean func_70097_a(DamageSource Dmg, float amount) + { + if (Dmg.func_94541_c()) + { + amount = 0.0F; + return false; + } + return super.func_70097_a(Dmg, amount); + } + */ +} diff --git a/src/main/java/com/jtrent238/epicproportions/entity/EntityCaptianCookie.java b/src/main/java/com/jtrent238/epicproportions/entity/EntityCaptianCookie.java new file mode 100644 index 0000000..2705a4c --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/entity/EntityCaptianCookie.java @@ -0,0 +1,199 @@ +package com.jtrent238.epicproportions.entity; + +import java.util.Random; + +import com.jtrent238.foodmod.BlockLoader; +import com.jtrent238.foodmod.Entilyjtrent238; +import com.jtrent238.foodmod.Entilyjtrent238.Entityjtrent238; + +import cpw.mods.fml.client.registry.RenderingRegistry; +import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.event.FMLServerStartingEvent; +import cpw.mods.fml.common.registry.EntityRegistry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.client.model.ModelBiped; +import net.minecraft.client.renderer.entity.RenderLiving; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EnumCreatureType; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAIAttackOnCollide; +import net.minecraft.entity.ai.EntityAIHurtByTarget; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAIMoveThroughVillage; +import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction; +import net.minecraft.entity.ai.EntityAIMoveTowardsTarget; +import net.minecraft.entity.ai.EntityAINearestAttackableTarget; +import net.minecraft.entity.ai.EntityAIWander; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.boss.BossStatus; +import net.minecraft.entity.boss.IBossDisplayData; +import net.minecraft.entity.effect.EntityLightningBolt; +import net.minecraft.entity.monster.EntityGolem; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.common.DungeonHooks; + +public class EntityCaptianCookie extends EntityGolem implements IBossDisplayData + { + World world = null; + private int attackTimer; + public EntityCaptianCookie(World var1) + { + super(var1); + world = var1; + experienceValue = 5; + this.isImmuneToFire = true; + this.tasks.addTask(1, new EntityAIAttackOnCollide(this, 1.0D, true)); + this.tasks.addTask(2, new EntityAIMoveTowardsTarget(this, 0.9D, 32.0F)); + this.tasks.addTask(3, new EntityAIMoveThroughVillage(this, 0.6D, true)); + this.tasks.addTask(4, new EntityAIMoveTowardsRestriction(this, 1.0D)); + this.tasks.addTask(6, new EntityAIWander(this, 0.6D)); + this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + this.tasks.addTask(8, new EntityAILookIdle(this)); + this.targetTasks.addTask(2, new EntityAIHurtByTarget(this, false)); + this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityLiving.class, 0, false, true, IMob.mobSelector)); + addRandomArmor(); + DungeonHooks.addDungeonMob("Captian Cookie", 180); + } + + + protected void applyEntityAttributes() + { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(50D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D); + } + + public boolean attackEntityAsMob(Entity p_70652_1_) + { + this.attackTimer = 10; + this.worldObj.setEntityState(this, (byte)4); + boolean flag = p_70652_1_.attackEntityFrom(DamageSource.causeMobDamage(this), (float)(7 + this.rand.nextInt(15))); + + if (flag) + { + p_70652_1_.motionY += 0.4000000059604645D; + } + + this.playSound("", 1.0F, 1.0F); + return flag; + } +protected void addRandomArmor(){ + +} + +protected void dropRareDrop(int par1){ +this.dropItem(Items.nether_star, 1); +} + + + public boolean isAIEnabled() + { + return true; + } + + /** + * Determines if an entity can be despawned, used on idle far away entities + */ + protected boolean canDespawn() + { + return false; + } + + /** + * Drop items of this living's type + */ + protected void dropFewItems(boolean var1, int var2) + { + this.entityDropItem(new ItemStack(Items.cookie), 4F); + } + + /** + * Returns the sound this mob makes while it's alive. + */ + protected String getLivingSound() + { + return ""; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + protected String getHurtSound() + { + return "epicproportionsmod:captaincookie_hurt"; + } + + /** + * Returns the sound this mob makes on death. + */ + protected String getDeathSound() + { + return "epicproportionsmod:captaincookie_death"; + } + + public void onStruckByLightning(EntityLightningBolt entityLightningBolt){ + int i = (int)this.posX; + int j = (int)this.posY; + int k = (int)this.posZ; + Entity entity = this; + + } + + protected void fall(float l){ + int i = (int)this.posX; + int j = (int)this.posY; + int k = (int)this.posZ; + super.fall(l); + Entity entity = this; + + } + + public void onCriticalHit(Entity entity2) { + int i = (int)this.posX; + int j = (int)this.posY; + int k = (int)this.posZ; + Entity entity = this; + + } + + public void onKillEntity(EntityLiving entityLiving){ + int i = (int)this.posX; + int j = (int)this.posY; + int k = (int)this.posZ; + Entity entity = this; + + } + + public boolean interact(EntityPlayer entity2){ + int i = (int)this.posX; + int j = (int)this.posY; + int k = (int)this.posZ; + Entity entity = this; + + return true; + } + + public String getEntityName(){ + return "Captian Cookie"; + } + + + /** + * Will return how many at most can spawn in a chunk at once. + */ + public int getMaxSpawnedInChunk() + { + return 4; + } + + +} diff --git a/src/main/java/com/jtrent238/epicproportions/entity/EntityFred2_0.java b/src/main/java/com/jtrent238/epicproportions/entity/EntityFred2_0.java new file mode 100644 index 0000000..0cff013 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/entity/EntityFred2_0.java @@ -0,0 +1,766 @@ +package com.jtrent238.epicproportions.entity; + +import java.util.Calendar; +import java.util.List; +import java.util.UUID; + +import cpw.mods.fml.common.eventhandler.Event.Result; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.command.IEntitySelector; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureAttribute; +import net.minecraft.entity.IEntityLivingData; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAIAttackOnCollide; +import net.minecraft.entity.ai.EntityAIBreakDoor; +import net.minecraft.entity.ai.EntityAIHurtByTarget; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAIMoveThroughVillage; +import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction; +import net.minecraft.entity.ai.EntityAINearestAttackableTarget; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWander; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.ai.attributes.IAttribute; +import net.minecraft.entity.ai.attributes.IAttributeInstance; +import net.minecraft.entity.ai.attributes.RangedAttribute; +import net.minecraft.entity.monster.EntityMob; +import net.minecraft.entity.monster.EntityZombie; +import net.minecraft.entity.passive.EntityChicken; +import net.minecraft.entity.passive.EntityVillager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumDifficulty; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeModContainer; +import net.minecraftforge.event.ForgeEventFactory; +import net.minecraftforge.event.entity.living.ZombieEvent.SummonAidEvent; + +public class EntityFred2_0 extends EntityMob +{ + protected static final IAttribute field_110186_bp = (new RangedAttribute("zombie.spawnReinforcements", 0.0D, 0.0D, 1.0D)).setDescription("Spawn Reinforcements Chance"); + private static final UUID babySpeedBoostUUID = UUID.fromString("B9766B59-9566-4402-BC1F-2EE2A276D836"); + private static final AttributeModifier babySpeedBoostModifier = new AttributeModifier(babySpeedBoostUUID, "Baby speed boost", 0.5D, 1); + private final EntityAIBreakDoor field_146075_bs = new EntityAIBreakDoor(this); + /** Ticker used to determine the time remaining for this zombie to convert into a villager when cured. */ + private int conversionTime; + private boolean field_146076_bu = false; + private float field_146074_bv = -1.0F; + private float field_146073_bw; + private static final String __OBFID = "CL_00001702"; + + public EntityFred2_0(World p_i1745_1_) + { + super(p_i1745_1_); + this.getNavigator().setBreakDoors(true); + this.tasks.addTask(0, new EntityAISwimming(this)); + this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); + this.tasks.addTask(4, new EntityAIAttackOnCollide(this, EntityVillager.class, 1.0D, true)); + this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); + this.tasks.addTask(6, new EntityAIMoveThroughVillage(this, 1.0D, false)); + this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); + this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); + this.tasks.addTask(8, new EntityAILookIdle(this)); + this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); + this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); + this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityVillager.class, 0, false)); + this.setSize(0.6F, 1.8F); + } + + protected void applyEntityAttributes() + { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.23000000417232513D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(3.0D); + this.getAttributeMap().registerAttribute(field_110186_bp).setBaseValue(this.rand.nextDouble() * ForgeModContainer.zombieSummonBaseChance); + } + + protected void entityInit() + { + super.entityInit(); + this.getDataWatcher().addObject(12, Byte.valueOf((byte)0)); + this.getDataWatcher().addObject(13, Byte.valueOf((byte)0)); + this.getDataWatcher().addObject(14, Byte.valueOf((byte)0)); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + public int getTotalArmorValue() + { + int i = super.getTotalArmorValue() + 2; + + if (i > 20) + { + i = 20; + } + + return i; + } + + /** + * Returns true if the newer Entity AI code should be run + */ + protected boolean isAIEnabled() + { + return true; + } + + public boolean func_146072_bX() + { + return this.field_146076_bu; + } + + public void func_146070_a(boolean p_146070_1_) + { + if (this.field_146076_bu != p_146070_1_) + { + this.field_146076_bu = p_146070_1_; + + if (p_146070_1_) + { + this.tasks.addTask(1, this.field_146075_bs); + } + else + { + this.tasks.removeTask(this.field_146075_bs); + } + } + } + + /** + * If Animal, checks if the age timer is negative + */ + public boolean isChild() + { + return this.getDataWatcher().getWatchableObjectByte(12) == 1; + } + + /** + * Get the experience points the entity currently has. + */ + protected int getExperiencePoints(EntityPlayer p_70693_1_) + { + if (this.isChild()) + { + this.experienceValue = (int)((float)this.experienceValue * 2.5F); + } + + return super.getExperiencePoints(p_70693_1_); + } + + /** + * Set whether this zombie is a child. + */ + public void setChild(boolean p_82227_1_) + { + this.getDataWatcher().updateObject(12, Byte.valueOf((byte)(p_82227_1_ ? 1 : 0))); + + if (this.worldObj != null && !this.worldObj.isRemote) + { + IAttributeInstance iattributeinstance = this.getEntityAttribute(SharedMonsterAttributes.movementSpeed); + iattributeinstance.removeModifier(babySpeedBoostModifier); + + if (p_82227_1_) + { + iattributeinstance.applyModifier(babySpeedBoostModifier); + } + } + + this.func_146071_k(p_82227_1_); + } + + /** + * Return whether this zombie is a villager. + */ + public boolean isVillager() + { + return this.getDataWatcher().getWatchableObjectByte(13) == 1; + } + + /** + * Set whether this zombie is a villager. + */ + public void setVillager(boolean p_82229_1_) + { + this.getDataWatcher().updateObject(13, Byte.valueOf((byte)(p_82229_1_ ? 1 : 0))); + } + + /** + * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons + * use this to react to sunlight and start to burn. + */ + public void onLivingUpdate() + { + if (this.worldObj.isDaytime() && !this.worldObj.isRemote && !this.isChild()) + { + float f = this.getBrightness(1.0F); + + if (f > 0.5F && this.rand.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && this.worldObj.canBlockSeeTheSky(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.posY), MathHelper.floor_double(this.posZ))) + { + boolean flag = true; + ItemStack itemstack = this.getEquipmentInSlot(4); + + if (itemstack != null) + { + if (itemstack.isItemStackDamageable()) + { + itemstack.setItemDamage(itemstack.getItemDamageForDisplay() + this.rand.nextInt(2)); + + if (itemstack.getItemDamageForDisplay() >= itemstack.getMaxDamage()) + { + this.renderBrokenItemStack(itemstack); + this.setCurrentItemOrArmor(4, (ItemStack)null); + } + } + + flag = false; + } + + + } + } + + if (this.isRiding() && this.getAttackTarget() != null && this.ridingEntity instanceof EntityChicken) + { + ((EntityLiving)this.ridingEntity).getNavigator().setPath(this.getNavigator().getPath(), 1.5D); + } + + super.onLivingUpdate(); + } + + /** + * Called when the entity is attacked. + */ + /* + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + if (!super.attackEntityFrom(p_70097_1_, p_70097_2_)) + { + return false; + } + else + { + EntityLivingBase entitylivingbase = this.getAttackTarget(); + + if (entitylivingbase == null && this.getEntityToAttack() instanceof EntityLivingBase) + { + entitylivingbase = (EntityLivingBase)this.getEntityToAttack(); + } + + if (entitylivingbase == null && p_70097_1_.getEntity() instanceof EntityLivingBase) + { + entitylivingbase = (EntityLivingBase)p_70097_1_.getEntity(); + } + + + int i = MathHelper.floor_double(this.posX); + int j = MathHelper.floor_double(this.posY); + int k = MathHelper.floor_double(this.posZ); + + SummonAidEvent summonAid = ForgeEventFactory.fireZombieSummonAid(this, worldObj, i, j, k, entitylivingbase, this.getEntityAttribute(field_110186_bp).getAttributeValue()); + + if (summonAid.getResult() == Result.DENY) + { + return true; + } + else if (summonAid.getResult() == Result.ALLOW || entitylivingbase != null && this.worldObj.difficultySetting == EnumDifficulty.HARD && (double)this.rand.nextFloat() < this.getEntityAttribute(field_110186_bp).getAttributeValue()) + { + EntityZombie entityzombie; + if (summonAid.customSummonedAid != null && summonAid.getResult() == Result.ALLOW) + { + entityzombie = summonAid.customSummonedAid; + } + else + { + entityzombie = new EntityZombie(this.worldObj); + } + + for (int l = 0; l < 50; ++l) + { + int i1 = i + MathHelper.getRandomIntegerInRange(this.rand, 7, 40) * MathHelper.getRandomIntegerInRange(this.rand, -1, 1); + int j1 = j + MathHelper.getRandomIntegerInRange(this.rand, 7, 40) * MathHelper.getRandomIntegerInRange(this.rand, -1, 1); + int k1 = k + MathHelper.getRandomIntegerInRange(this.rand, 7, 40) * MathHelper.getRandomIntegerInRange(this.rand, -1, 1); + + if (World.doesBlockHaveSolidTopSurface(this.worldObj, i1, j1 - 1, k1) && this.worldObj.getBlockLightValue(i1, j1, k1) < 10) + { + entityzombie.setPosition((double)i1, (double)j1, (double)k1); + + if (this.worldObj.checkNoEntityCollision(entityzombie.boundingBox) && this.worldObj.getCollidingBoundingBoxes(entityzombie, entityzombie.boundingBox).isEmpty() && !this.worldObj.isAnyLiquid(entityzombie.boundingBox)) + { + this.worldObj.spawnEntityInWorld(entityzombie); + if (entitylivingbase != null) entityzombie.setAttackTarget(entitylivingbase); + entityzombie.onSpawnWithEgg((IEntityLivingData)null); + this.getEntityAttribute(field_110186_bp).applyModifier(new AttributeModifier("Zombie reinforcement caller charge", -0.05000000074505806D, 0)); + entityzombie.getEntityAttribute(field_110186_bp).applyModifier(new AttributeModifier("Zombie reinforcement callee charge", -0.05000000074505806D, 0)); + break; + } + } + } + } + + return true; + } + } +*/ + /** + * Called to update the entity's position/logic. + */ + public void onUpdate() + { + if (!this.worldObj.isRemote && this.isConverting()) + { + int i = this.getConversionTimeBoost(); + this.conversionTime -= i; + + if (this.conversionTime <= 0) + { + this.convertToVillager(); + } + } + + super.onUpdate(); + } + + public boolean attackEntityAsMob(Entity p_70652_1_) + { + boolean flag = super.attackEntityAsMob(p_70652_1_); + + if (flag) + { + int i = this.worldObj.difficultySetting.getDifficultyId(); + + if (this.getHeldItem() == null && this.isBurning() && this.rand.nextFloat() < (float)i * 0.3F) + { + p_70652_1_.setFire(2 * i); + } + } + + return flag; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + protected String getLivingSound() + { + return "mob.zombie.say"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + protected String getHurtSound() + { + return "mob.zombie.hurt"; + } + + /** + * Returns the sound this mob makes on death. + */ + protected String getDeathSound() + { + return "mob.zombie.death"; + } + + protected void func_145780_a(int p_145780_1_, int p_145780_2_, int p_145780_3_, Block p_145780_4_) + { + this.playSound("mob.zombie.step", 0.15F, 1.0F); + } + + protected Item getDropItem() + { + return Items.rotten_flesh; + } + + /** + * Get this Entity's EnumCreatureAttribute + */ + public EnumCreatureAttribute getCreatureAttribute() + { + return EnumCreatureAttribute.UNDEAD; + } + + protected void dropRareDrop(int p_70600_1_) + { + switch (this.rand.nextInt(3)) + { + case 0: + this.dropItem(Items.iron_ingot, 1); + break; + case 1: + this.dropItem(Items.carrot, 1); + break; + case 2: + this.dropItem(Items.potato, 1); + } + } + + /** + * Makes entity wear random armor based on difficulty + */ + protected void addRandomArmor() + { + super.addRandomArmor(); + + if (this.rand.nextFloat() < (this.worldObj.difficultySetting == EnumDifficulty.HARD ? 0.05F : 0.01F)) + { + int i = this.rand.nextInt(3); + + if (i == 0) + { + this.setCurrentItemOrArmor(0, new ItemStack(Items.iron_sword)); + } + else + { + this.setCurrentItemOrArmor(0, new ItemStack(Items.iron_shovel)); + } + } + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + + if (this.isChild()) + { + p_70014_1_.setBoolean("IsBaby", true); + } + + if (this.isVillager()) + { + p_70014_1_.setBoolean("IsVillager", true); + } + + p_70014_1_.setInteger("ConversionTime", this.isConverting() ? this.conversionTime : -1); + p_70014_1_.setBoolean("CanBreakDoors", this.func_146072_bX()); + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + + if (p_70037_1_.getBoolean("IsBaby")) + { + this.setChild(true); + } + + if (p_70037_1_.getBoolean("IsVillager")) + { + this.setVillager(true); + } + + if (p_70037_1_.hasKey("ConversionTime", 99) && p_70037_1_.getInteger("ConversionTime") > -1) + { + this.startConversion(p_70037_1_.getInteger("ConversionTime")); + } + + this.func_146070_a(p_70037_1_.getBoolean("CanBreakDoors")); + } + + /** + * This method gets called when the entity kills another one. + */ + public void onKillEntity(EntityLivingBase p_70074_1_) + { + super.onKillEntity(p_70074_1_); + + if ((this.worldObj.difficultySetting == EnumDifficulty.NORMAL || this.worldObj.difficultySetting == EnumDifficulty.HARD) && p_70074_1_ instanceof EntityVillager) + { + if (this.worldObj.difficultySetting != EnumDifficulty.HARD && this.rand.nextBoolean()) + { + return; + } + + EntityZombie entityzombie = new EntityZombie(this.worldObj); + entityzombie.copyLocationAndAnglesFrom(p_70074_1_); + this.worldObj.removeEntity(p_70074_1_); + entityzombie.onSpawnWithEgg((IEntityLivingData)null); + entityzombie.setVillager(true); + + if (p_70074_1_.isChild()) + { + entityzombie.setChild(true); + } + + this.worldObj.spawnEntityInWorld(entityzombie); + this.worldObj.playAuxSFXAtEntity((EntityPlayer)null, 1016, (int)this.posX, (int)this.posY, (int)this.posZ, 0); + } + } +/* + public IEntityLivingData onSpawnWithEgg(IEntityLivingData p_110161_1_) + { + Object p_110161_1_1 = super.onSpawnWithEgg(p_110161_1_); + float f = this.worldObj.func_147462_b(this.posX, this.posY, this.posZ); + this.setCanPickUpLoot(this.rand.nextFloat() < 0.55F * f); + + if (p_110161_1_1 == null) + { + p_110161_1_1 = new EntityZombie.GroupData(this.worldObj.rand.nextFloat() < ForgeModContainer.zombieBabyChance, this.worldObj.rand.nextFloat() < 0.05F, null); + } + + if (p_110161_1_1 instanceof EntityZombie.GroupData) + { + EntityZombie.GroupData groupdata = (EntityZombie.GroupData)p_110161_1_1; + + if (groupdata.field_142046_b) + { + this.setVillager(true); + } + + if (groupdata.field_142048_a) + { + this.setChild(true); + + if ((double)this.worldObj.rand.nextFloat() < 0.05D) + { + List list = this.worldObj.selectEntitiesWithinAABB(EntityChicken.class, this.boundingBox.expand(5.0D, 3.0D, 5.0D), IEntitySelector.field_152785_b); + + if (!list.isEmpty()) + { + EntityChicken entitychicken = (EntityChicken)list.get(0); + entitychicken.func_152117_i(true); + this.mountEntity(entitychicken); + } + } + else if ((double)this.worldObj.rand.nextFloat() < 0.05D) + { + EntityChicken entitychicken1 = new EntityChicken(this.worldObj); + entitychicken1.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, 0.0F); + entitychicken1.onSpawnWithEgg((IEntityLivingData)null); + entitychicken1.func_152117_i(true); + this.worldObj.spawnEntityInWorld(entitychicken1); + this.mountEntity(entitychicken1); + } + } + } + + this.func_146070_a(this.rand.nextFloat() < f * 0.1F); + this.addRandomArmor(); + this.enchantEquipment(); + + if (this.getEquipmentInSlot(4) == null) + { + Calendar calendar = this.worldObj.getCurrentDate(); + + if (calendar.get(2) + 1 == 10 && calendar.get(5) == 31 && this.rand.nextFloat() < 0.25F) + { + this.setCurrentItemOrArmor(4, new ItemStack(this.rand.nextFloat() < 0.1F ? Blocks.lit_pumpkin : Blocks.pumpkin)); + this.equipmentDropChances[4] = 0.0F; + } + } + + this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).applyModifier(new AttributeModifier("Random spawn bonus", this.rand.nextDouble() * 0.05000000074505806D, 0)); + double d0 = this.rand.nextDouble() * 1.5D * (double)this.worldObj.func_147462_b(this.posX, this.posY, this.posZ); + + if (d0 > 1.0D) + { + this.getEntityAttribute(SharedMonsterAttributes.followRange).applyModifier(new AttributeModifier("Random zombie-spawn bonus", d0, 2)); + } + + if (this.rand.nextFloat() < f * 0.05F) + { + this.getEntityAttribute(field_110186_bp).applyModifier(new AttributeModifier("Leader zombie bonus", this.rand.nextDouble() * 0.25D + 0.5D, 0)); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier("Leader zombie bonus", this.rand.nextDouble() * 3.0D + 1.0D, 2)); + this.func_146070_a(true); + } + + return (IEntityLivingData)p_110161_1_1; + } +*/ + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.getCurrentEquippedItem(); + + if (itemstack != null && itemstack.getItem() == Items.golden_apple && itemstack.getItemDamage() == 0 && this.isVillager() && this.isPotionActive(Potion.weakness)) + { + if (!p_70085_1_.capabilities.isCreativeMode) + { + --itemstack.stackSize; + } + + if (itemstack.stackSize <= 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if (!this.worldObj.isRemote) + { + this.startConversion(this.rand.nextInt(2401) + 3600); + } + + return true; + } + else + { + return false; + } + } + + /** + * Starts converting this zombie into a villager. The zombie converts into a villager after the specified time in + * ticks. + */ + protected void startConversion(int p_82228_1_) + { + this.conversionTime = p_82228_1_; + this.getDataWatcher().updateObject(14, Byte.valueOf((byte)1)); + this.removePotionEffect(Potion.weakness.id); + this.addPotionEffect(new PotionEffect(Potion.damageBoost.id, p_82228_1_, Math.min(this.worldObj.difficultySetting.getDifficultyId() - 1, 0))); + this.worldObj.setEntityState(this, (byte)16); + } + + @SideOnly(Side.CLIENT) + public void handleHealthUpdate(byte p_70103_1_) + { + if (p_70103_1_ == 16) + { + this.worldObj.playSound(this.posX + 0.5D, this.posY + 0.5D, this.posZ + 0.5D, "mob.zombie.remedy", 1.0F + this.rand.nextFloat(), this.rand.nextFloat() * 0.7F + 0.3F, false); + } + else + { + super.handleHealthUpdate(p_70103_1_); + } + } + + /** + * Determines if an entity can be despawned, used on idle far away entities + */ + protected boolean canDespawn() + { + return !this.isConverting(); + } + + /** + * Returns whether this zombie is in the process of converting to a villager + */ + public boolean isConverting() + { + return this.getDataWatcher().getWatchableObjectByte(14) == 1; + } + + /** + * Convert this zombie into a villager. + */ + protected void convertToVillager() + { + EntityVillager entityvillager = new EntityVillager(this.worldObj); + entityvillager.copyLocationAndAnglesFrom(this); + entityvillager.onSpawnWithEgg((IEntityLivingData)null); + entityvillager.setLookingForHome(); + + if (this.isChild()) + { + entityvillager.setGrowingAge(-24000); + } + + this.worldObj.removeEntity(this); + this.worldObj.spawnEntityInWorld(entityvillager); + entityvillager.addPotionEffect(new PotionEffect(Potion.confusion.id, 200, 0)); + this.worldObj.playAuxSFXAtEntity((EntityPlayer)null, 1017, (int)this.posX, (int)this.posY, (int)this.posZ, 0); + } + + /** + * Return the amount of time decremented from conversionTime every tick. + */ + protected int getConversionTimeBoost() + { + int i = 1; + + if (this.rand.nextFloat() < 0.01F) + { + int j = 0; + + for (int k = (int)this.posX - 4; k < (int)this.posX + 4 && j < 14; ++k) + { + for (int l = (int)this.posY - 4; l < (int)this.posY + 4 && j < 14; ++l) + { + for (int i1 = (int)this.posZ - 4; i1 < (int)this.posZ + 4 && j < 14; ++i1) + { + Block block = this.worldObj.getBlock(k, l, i1); + + if (block == Blocks.iron_bars || block == Blocks.bed) + { + if (this.rand.nextFloat() < 0.3F) + { + ++i; + } + + ++j; + } + } + } + } + } + + return i; + } + + public void func_146071_k(boolean p_146071_1_) + { + this.func_146069_a(p_146071_1_ ? 0.5F : 1.0F); + } + + /** + * Sets the width and height of the entity. Args: width, height + */ + protected final void setSize(float p_70105_1_, float p_70105_2_) + { + boolean flag = this.field_146074_bv > 0.0F && this.field_146073_bw > 0.0F; + this.field_146074_bv = p_70105_1_; + this.field_146073_bw = p_70105_2_; + + if (!flag) + { + this.func_146069_a(1.0F); + } + } + + protected final void func_146069_a(float p_146069_1_) + { + super.setSize(this.field_146074_bv * p_146069_1_, this.field_146073_bw * p_146069_1_); + } + + class GroupData implements IEntityLivingData + { + public boolean field_142048_a; + public boolean field_142046_b; + private static final String __OBFID = "CL_00001704"; + + private GroupData(boolean p_i2348_2_, boolean p_i2348_3_) + { + this.field_142048_a = false; + this.field_142046_b = false; + this.field_142048_a = p_i2348_2_; + this.field_142046_b = p_i2348_3_; + } + + GroupData(boolean p_i2349_2_, boolean p_i2349_3_, Object p_i2349_4_) + { + this(p_i2349_2_, p_i2349_3_); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/jtrent238/epicproportions/entity/EntityJen.java b/src/main/java/com/jtrent238/epicproportions/entity/EntityJen.java new file mode 100644 index 0000000..60b94c0 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/entity/EntityJen.java @@ -0,0 +1,183 @@ +package com.jtrent238.epicproportions.entity; + +import com.jtrent238.epicproportions.ItemLoader; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAIAttackOnCollide; +import net.minecraft.entity.ai.EntityAIHurtByTarget; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAIMoveThroughVillage; +import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction; +import net.minecraft.entity.ai.EntityAIMoveTowardsTarget; +import net.minecraft.entity.ai.EntityAINearestAttackableTarget; +import net.minecraft.entity.ai.EntityAIWander; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.boss.IBossDisplayData; +import net.minecraft.entity.effect.EntityLightningBolt; +import net.minecraft.entity.monster.EntityGolem; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; +import net.minecraftforge.common.DungeonHooks; + +public class EntityJen extends EntityGolem implements IBossDisplayData +{ + World world = null; + private int attackTimer; + public EntityJen(World var1) + { + super(var1); + world = var1; + experienceValue = 5; + this.isImmuneToFire = true; + this.tasks.addTask(1, new EntityAIAttackOnCollide(this, 1.0D, true)); + this.tasks.addTask(2, new EntityAIMoveTowardsTarget(this, 0.9D, 32.0F)); + this.tasks.addTask(3, new EntityAIMoveThroughVillage(this, 0.6D, true)); + this.tasks.addTask(4, new EntityAIMoveTowardsRestriction(this, 1.0D)); + this.tasks.addTask(6, new EntityAIWander(this, 0.6D)); + this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + this.tasks.addTask(8, new EntityAILookIdle(this)); + this.targetTasks.addTask(2, new EntityAIHurtByTarget(this, false)); + this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityLiving.class, 0, false, true, IMob.mobSelector)); + addRandomArmor(); + DungeonHooks.addDungeonMob("SuperGirlyGamer", 180); + } + + + protected void applyEntityAttributes() + { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(50D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D); + } + + public boolean attackEntityAsMob(Entity p_70652_1_) + { + this.attackTimer = 10; + this.worldObj.setEntityState(this, (byte)4); + boolean flag = p_70652_1_.attackEntityFrom(DamageSource.causeMobDamage(this), (float)(7 + this.rand.nextInt(15))); + + if (flag) + { + p_70652_1_.motionY += 0.4000000059604645D; + } + + this.playSound("", 1.0F, 1.0F); + return flag; + } +protected void addRandomArmor(){ + +} + +protected void dropRareDrop(int par1){ +this.dropItem(Items.nether_star, 1); +} + + + public boolean isAIEnabled() + { + return true; + } + + /** + * Determines if an entity can be despawned, used on idle far away entities + */ + protected boolean canDespawn() + { + return false; + } + + /** + * Drop items of this living's type + */ + protected void dropFewItems(boolean var1, int var2) + { + this.entityDropItem(new ItemStack(ItemLoader.itemJenIngot), 64); + } + + /** + * Returns the sound this mob makes while it's alive. + */ + protected String getLivingSound() + { + return ""; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + protected String getHurtSound() + { + return "epicproportionsmod:jen_scream_1"; + } + + /** + * Returns the sound this mob makes on death. + */ + protected String getDeathSound() + { + return "epicproportionsmod:jen_scream_1"; + } + + public void onStruckByLightning(EntityLightningBolt entityLightningBolt){ + int i = (int)this.posX; + int j = (int)this.posY; + int k = (int)this.posZ; + Entity entity = this; + + } + + protected void fall(float l){ + int i = (int)this.posX; + int j = (int)this.posY; + int k = (int)this.posZ; + super.fall(l); + Entity entity = this; + + } + + public void onCriticalHit(Entity entity2) { + int i = (int)this.posX; + int j = (int)this.posY; + int k = (int)this.posZ; + Entity entity = this; + + } + + public void onKillEntity(EntityLiving entityLiving){ + int i = (int)this.posX; + int j = (int)this.posY; + int k = (int)this.posZ; + Entity entity = this; + + } + + public boolean interact(EntityPlayer entity2){ + int i = (int)this.posX; + int j = (int)this.posY; + int k = (int)this.posZ; + Entity entity = this; + + return true; + } + + public String getEntityName(){ + return "SuperGirlyGamer"; + } + + +/** +* Will return how many at most can spawn in a chunk at once. +*/ +public int getMaxSpawnedInChunk() +{ + return 4; +} + + +} diff --git a/src/main/java/com/jtrent238/epicproportions/entity/EntityNinjaMaster.java b/src/main/java/com/jtrent238/epicproportions/entity/EntityNinjaMaster.java new file mode 100644 index 0000000..8db4ca9 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/entity/EntityNinjaMaster.java @@ -0,0 +1,809 @@ +package com.jtrent238.epicproportions.entity; + +import java.util.UUID; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureAttribute; +import net.minecraft.entity.IEntityLivingData; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAIAttackOnCollide; +import net.minecraft.entity.ai.EntityAIBreakDoor; +import net.minecraft.entity.ai.EntityAIHurtByTarget; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAIMoveThroughVillage; +import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction; +import net.minecraft.entity.ai.EntityAINearestAttackableTarget; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWander; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.ai.attributes.IAttribute; +import net.minecraft.entity.ai.attributes.IAttributeInstance; +import net.minecraft.entity.ai.attributes.RangedAttribute; +import net.minecraft.entity.monster.EntityMob; +import net.minecraft.entity.monster.EntityZombie; +import net.minecraft.entity.passive.EntityChicken; +import net.minecraft.entity.passive.EntityVillager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumDifficulty; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeModContainer; + + +import java.util.Calendar; +import java.util.List; +import java.util.UUID; + +import cpw.mods.fml.common.eventhandler.Event.Result; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.block.Block; +import net.minecraft.command.IEntitySelector; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.EnumCreatureAttribute; +import net.minecraft.entity.IEntityLivingData; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAIAttackOnCollide; +import net.minecraft.entity.ai.EntityAIBreakDoor; +import net.minecraft.entity.ai.EntityAIHurtByTarget; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAIMoveThroughVillage; +import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction; +import net.minecraft.entity.ai.EntityAINearestAttackableTarget; +import net.minecraft.entity.ai.EntityAISwimming; +import net.minecraft.entity.ai.EntityAIWander; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.ai.attributes.AttributeModifier; +import net.minecraft.entity.ai.attributes.IAttribute; +import net.minecraft.entity.ai.attributes.IAttributeInstance; +import net.minecraft.entity.ai.attributes.RangedAttribute; +import net.minecraft.entity.monster.EntityMob; +import net.minecraft.entity.monster.EntityZombie; +import net.minecraft.entity.passive.EntityChicken; +import net.minecraft.entity.passive.EntityVillager; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.DamageSource; +import net.minecraft.util.MathHelper; +import net.minecraft.world.EnumDifficulty; +import net.minecraft.world.World; +import net.minecraftforge.common.ForgeModContainer; +import net.minecraftforge.event.ForgeEventFactory; +import net.minecraftforge.event.entity.living.ZombieEvent.SummonAidEvent; + +public class EntityNinjaMaster extends EntityMob +{ + protected static final IAttribute field_110186_bp = (new RangedAttribute("zombie.spawnReinforcements", 0.0D, 0.0D, 1.0D)).setDescription("Spawn Reinforcements Chance"); + private static final UUID babySpeedBoostUUID = UUID.fromString("B9766B59-9566-4402-BC1F-2EE2A276D836"); + private static final AttributeModifier babySpeedBoostModifier = new AttributeModifier(babySpeedBoostUUID, "Baby speed boost", 0.5D, 1); + private final EntityAIBreakDoor field_146075_bs = new EntityAIBreakDoor(this); + /** Ticker used to determine the time remaining for this zombie to convert into a villager when cured. */ + private int conversionTime; + private boolean field_146076_bu = false; + private float field_146074_bv = -1.0F; + private float field_146073_bw; + private static final String __OBFID = "CL_00001702"; + + public EntityNinjaMaster(World p_i1745_1_) + { + super(p_i1745_1_); + this.getNavigator().setBreakDoors(true); + this.tasks.addTask(0, new EntityAISwimming(this)); + this.tasks.addTask(2, new EntityAIAttackOnCollide(this, EntityPlayer.class, 1.0D, false)); + this.tasks.addTask(4, new EntityAIAttackOnCollide(this, EntityVillager.class, 1.0D, true)); + this.tasks.addTask(5, new EntityAIMoveTowardsRestriction(this, 1.0D)); + this.tasks.addTask(6, new EntityAIMoveThroughVillage(this, 1.0D, false)); + this.tasks.addTask(7, new EntityAIWander(this, 1.0D)); + this.tasks.addTask(8, new EntityAIWatchClosest(this, EntityPlayer.class, 8.0F)); + this.tasks.addTask(8, new EntityAILookIdle(this)); + this.targetTasks.addTask(1, new EntityAIHurtByTarget(this, true)); + this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityPlayer.class, 0, true)); + this.targetTasks.addTask(2, new EntityAINearestAttackableTarget(this, EntityVillager.class, 0, false)); + this.setSize(0.6F, 1.8F); + } + + protected void applyEntityAttributes() + { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.followRange).setBaseValue(40.0D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.23000000417232513D); + this.getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(3.0D); + this.getAttributeMap().registerAttribute(field_110186_bp).setBaseValue(this.rand.nextDouble() * ForgeModContainer.zombieSummonBaseChance); + } + + protected void entityInit() + { + super.entityInit(); + this.getDataWatcher().addObject(12, Byte.valueOf((byte)0)); + this.getDataWatcher().addObject(13, Byte.valueOf((byte)0)); + this.getDataWatcher().addObject(14, Byte.valueOf((byte)0)); + } + + /** + * Returns the current armor value as determined by a call to InventoryPlayer.getTotalArmorValue + */ + public int getTotalArmorValue() + { + int i = super.getTotalArmorValue() + 2; + + if (i > 20) + { + i = 20; + } + + return i; + } + + /** + * Returns true if the newer Entity AI code should be run + */ + protected boolean isAIEnabled() + { + return true; + } + + public boolean func_146072_bX() + { + return this.field_146076_bu; + } + + public void func_146070_a(boolean p_146070_1_) + { + if (this.field_146076_bu != p_146070_1_) + { + this.field_146076_bu = p_146070_1_; + + if (p_146070_1_) + { + this.tasks.addTask(1, this.field_146075_bs); + } + else + { + this.tasks.removeTask(this.field_146075_bs); + } + } + } + + /** + * If Animal, checks if the age timer is negative + */ + public boolean isChild() + { + return this.getDataWatcher().getWatchableObjectByte(12) == 1; + } + + /** + * Get the experience points the entity currently has. + */ + protected int getExperiencePoints(EntityPlayer p_70693_1_) + { + if (this.isChild()) + { + this.experienceValue = (int)((float)this.experienceValue * 2.5F); + } + + return super.getExperiencePoints(p_70693_1_); + } + + /** + * Set whether this zombie is a child. + */ + public void setChild(boolean p_82227_1_) + { + this.getDataWatcher().updateObject(12, Byte.valueOf((byte)(p_82227_1_ ? 1 : 0))); + + if (this.worldObj != null && !this.worldObj.isRemote) + { + IAttributeInstance iattributeinstance = this.getEntityAttribute(SharedMonsterAttributes.movementSpeed); + iattributeinstance.removeModifier(babySpeedBoostModifier); + + if (p_82227_1_) + { + iattributeinstance.applyModifier(babySpeedBoostModifier); + } + } + + this.func_146071_k(p_82227_1_); + } + + /** + * Return whether this zombie is a villager. + */ + public boolean isVillager() + { + return this.getDataWatcher().getWatchableObjectByte(13) == 1; + } + + /** + * Set whether this zombie is a villager. + */ + public void setVillager(boolean p_82229_1_) + { + this.getDataWatcher().updateObject(13, Byte.valueOf((byte)(p_82229_1_ ? 1 : 0))); + } + + /** + * Called frequently so the entity can update its state every tick as required. For example, zombies and skeletons + * use this to react to sunlight and start to burn. + */ + public void onLivingUpdate() + { + if (this.worldObj.isDaytime() && !this.worldObj.isRemote && !this.isChild()) + { + float f = this.getBrightness(1.0F); + + if (f > 0.5F && this.rand.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && this.worldObj.canBlockSeeTheSky(MathHelper.floor_double(this.posX), MathHelper.floor_double(this.posY), MathHelper.floor_double(this.posZ))) + { + boolean flag = true; + ItemStack itemstack = this.getEquipmentInSlot(4); + + if (itemstack != null) + { + if (itemstack.isItemStackDamageable()) + { + itemstack.setItemDamage(itemstack.getItemDamageForDisplay() + this.rand.nextInt(2)); + + if (itemstack.getItemDamageForDisplay() >= itemstack.getMaxDamage()) + { + this.renderBrokenItemStack(itemstack); + this.setCurrentItemOrArmor(4, (ItemStack)null); + } + } + + flag = false; + } + + + } + } + + if (this.isRiding() && this.getAttackTarget() != null && this.ridingEntity instanceof EntityChicken) + { + ((EntityLiving)this.ridingEntity).getNavigator().setPath(this.getNavigator().getPath(), 1.5D); + } + + super.onLivingUpdate(); + } + + /** + * Called when the entity is attacked. + */ + /* + public boolean attackEntityFrom(DamageSource p_70097_1_, float p_70097_2_) + { + if (!super.attackEntityFrom(p_70097_1_, p_70097_2_)) + { + return false; + } + else + { + EntityLivingBase entitylivingbase = this.getAttackTarget(); + + if (entitylivingbase == null && this.getEntityToAttack() instanceof EntityLivingBase) + { + entitylivingbase = (EntityLivingBase)this.getEntityToAttack(); + } + + if (entitylivingbase == null && p_70097_1_.getEntity() instanceof EntityLivingBase) + { + entitylivingbase = (EntityLivingBase)p_70097_1_.getEntity(); + } + + + int i = MathHelper.floor_double(this.posX); + int j = MathHelper.floor_double(this.posY); + int k = MathHelper.floor_double(this.posZ); + + SummonAidEvent summonAid = ForgeEventFactory.fireZombieSummonAid(this, worldObj, i, j, k, entitylivingbase, this.getEntityAttribute(field_110186_bp).getAttributeValue()); + + if (summonAid.getResult() == Result.DENY) + { + return true; + } + else if (summonAid.getResult() == Result.ALLOW || entitylivingbase != null && this.worldObj.difficultySetting == EnumDifficulty.HARD && (double)this.rand.nextFloat() < this.getEntityAttribute(field_110186_bp).getAttributeValue()) + { + EntityZombie entityzombie; + if (summonAid.customSummonedAid != null && summonAid.getResult() == Result.ALLOW) + { + entityzombie = summonAid.customSummonedAid; + } + else + { + entityzombie = new EntityZombie(this.worldObj); + } + + for (int l = 0; l < 50; ++l) + { + int i1 = i + MathHelper.getRandomIntegerInRange(this.rand, 7, 40) * MathHelper.getRandomIntegerInRange(this.rand, -1, 1); + int j1 = j + MathHelper.getRandomIntegerInRange(this.rand, 7, 40) * MathHelper.getRandomIntegerInRange(this.rand, -1, 1); + int k1 = k + MathHelper.getRandomIntegerInRange(this.rand, 7, 40) * MathHelper.getRandomIntegerInRange(this.rand, -1, 1); + + if (World.doesBlockHaveSolidTopSurface(this.worldObj, i1, j1 - 1, k1) && this.worldObj.getBlockLightValue(i1, j1, k1) < 10) + { + entityzombie.setPosition((double)i1, (double)j1, (double)k1); + + if (this.worldObj.checkNoEntityCollision(entityzombie.boundingBox) && this.worldObj.getCollidingBoundingBoxes(entityzombie, entityzombie.boundingBox).isEmpty() && !this.worldObj.isAnyLiquid(entityzombie.boundingBox)) + { + this.worldObj.spawnEntityInWorld(entityzombie); + if (entitylivingbase != null) entityzombie.setAttackTarget(entitylivingbase); + entityzombie.onSpawnWithEgg((IEntityLivingData)null); + this.getEntityAttribute(field_110186_bp).applyModifier(new AttributeModifier("Zombie reinforcement caller charge", -0.05000000074505806D, 0)); + entityzombie.getEntityAttribute(field_110186_bp).applyModifier(new AttributeModifier("Zombie reinforcement callee charge", -0.05000000074505806D, 0)); + break; + } + } + } + } + + return true; + } + } +*/ + /** + * Called to update the entity's position/logic. + */ + public void onUpdate() + { + if (!this.worldObj.isRemote && this.isConverting()) + { + int i = this.getConversionTimeBoost(); + this.conversionTime -= i; + + if (this.conversionTime <= 0) + { + this.convertToVillager(); + } + } + + super.onUpdate(); + } + + public boolean attackEntityAsMob(Entity p_70652_1_) + { + boolean flag = super.attackEntityAsMob(p_70652_1_); + + if (flag) + { + int i = this.worldObj.difficultySetting.getDifficultyId(); + + if (this.getHeldItem() == null && this.isBurning() && this.rand.nextFloat() < (float)i * 0.3F) + { + p_70652_1_.setFire(2 * i); + } + } + + return flag; + } + + /** + * Returns the sound this mob makes while it's alive. + */ + protected String getLivingSound() + { + return "mob.zombie.say"; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + protected String getHurtSound() + { + return "epicproportionsmod:ninjamaster_hurt"; + } + + /** + * Returns the sound this mob makes on death. + */ + protected String getDeathSound() + { + return "mob.zombie.death"; + } + + protected void func_145780_a(int p_145780_1_, int p_145780_2_, int p_145780_3_, Block p_145780_4_) + { + this.playSound("mob.zombie.step", 0.15F, 1.0F); + } + + protected Item getDropItem() + { + return Items.rotten_flesh; + } + + /** + * Get this Entity's EnumCreatureAttribute + */ + public EnumCreatureAttribute getCreatureAttribute() + { + return EnumCreatureAttribute.UNDEAD; + } + + protected void dropRareDrop(int p_70600_1_) + { + switch (this.rand.nextInt(3)) + { + case 0: + this.dropItem(Items.iron_ingot, 1); + break; + case 1: + this.dropItem(Items.carrot, 1); + break; + case 2: + this.dropItem(Items.potato, 1); + } + } + + /** + * Makes entity wear random armor based on difficulty + */ + protected void addRandomArmor() + { + super.addRandomArmor(); + + if (this.rand.nextFloat() < (this.worldObj.difficultySetting == EnumDifficulty.HARD ? 0.05F : 0.01F)) + { + int i = this.rand.nextInt(3); + + if (i == 0) + { + this.setCurrentItemOrArmor(0, new ItemStack(Items.iron_sword)); + } + else + { + this.setCurrentItemOrArmor(0, new ItemStack(Items.iron_shovel)); + } + } + } + + /** + * (abstract) Protected helper method to write subclass entity data to NBT. + */ + public void writeEntityToNBT(NBTTagCompound p_70014_1_) + { + super.writeEntityToNBT(p_70014_1_); + + if (this.isChild()) + { + p_70014_1_.setBoolean("IsBaby", true); + } + + if (this.isVillager()) + { + p_70014_1_.setBoolean("IsVillager", true); + } + + p_70014_1_.setInteger("ConversionTime", this.isConverting() ? this.conversionTime : -1); + p_70014_1_.setBoolean("CanBreakDoors", this.func_146072_bX()); + } + + /** + * (abstract) Protected helper method to read subclass entity data from NBT. + */ + public void readEntityFromNBT(NBTTagCompound p_70037_1_) + { + super.readEntityFromNBT(p_70037_1_); + + if (p_70037_1_.getBoolean("IsBaby")) + { + this.setChild(true); + } + + if (p_70037_1_.getBoolean("IsVillager")) + { + this.setVillager(true); + } + + if (p_70037_1_.hasKey("ConversionTime", 99) && p_70037_1_.getInteger("ConversionTime") > -1) + { + this.startConversion(p_70037_1_.getInteger("ConversionTime")); + } + + this.func_146070_a(p_70037_1_.getBoolean("CanBreakDoors")); + } + + /** + * This method gets called when the entity kills another one. + */ + public void onKillEntity(EntityLivingBase p_70074_1_) + { + super.onKillEntity(p_70074_1_); + + if ((this.worldObj.difficultySetting == EnumDifficulty.NORMAL || this.worldObj.difficultySetting == EnumDifficulty.HARD) && p_70074_1_ instanceof EntityVillager) + { + if (this.worldObj.difficultySetting != EnumDifficulty.HARD && this.rand.nextBoolean()) + { + return; + } + + EntityZombie entityzombie = new EntityZombie(this.worldObj); + entityzombie.copyLocationAndAnglesFrom(p_70074_1_); + this.worldObj.removeEntity(p_70074_1_); + entityzombie.onSpawnWithEgg((IEntityLivingData)null); + entityzombie.setVillager(true); + + if (p_70074_1_.isChild()) + { + entityzombie.setChild(true); + } + + this.worldObj.spawnEntityInWorld(entityzombie); + this.worldObj.playAuxSFXAtEntity((EntityPlayer)null, 1016, (int)this.posX, (int)this.posY, (int)this.posZ, 0); + } + } +/* + public IEntityLivingData onSpawnWithEgg(IEntityLivingData p_110161_1_) + { + Object p_110161_1_1 = super.onSpawnWithEgg(p_110161_1_); + float f = this.worldObj.func_147462_b(this.posX, this.posY, this.posZ); + this.setCanPickUpLoot(this.rand.nextFloat() < 0.55F * f); + + if (p_110161_1_1 == null) + { + p_110161_1_1 = new EntityZombie.GroupData(this.worldObj.rand.nextFloat() < ForgeModContainer.zombieBabyChance, this.worldObj.rand.nextFloat() < 0.05F, null); + } + + if (p_110161_1_1 instanceof EntityZombie.GroupData) + { + EntityZombie.GroupData groupdata = (EntityZombie.GroupData)p_110161_1_1; + + if (groupdata.field_142046_b) + { + this.setVillager(true); + } + + if (groupdata.field_142048_a) + { + this.setChild(true); + + if ((double)this.worldObj.rand.nextFloat() < 0.05D) + { + List list = this.worldObj.selectEntitiesWithinAABB(EntityChicken.class, this.boundingBox.expand(5.0D, 3.0D, 5.0D), IEntitySelector.field_152785_b); + + if (!list.isEmpty()) + { + EntityChicken entitychicken = (EntityChicken)list.get(0); + entitychicken.func_152117_i(true); + this.mountEntity(entitychicken); + } + } + else if ((double)this.worldObj.rand.nextFloat() < 0.05D) + { + EntityChicken entitychicken1 = new EntityChicken(this.worldObj); + entitychicken1.setLocationAndAngles(this.posX, this.posY, this.posZ, this.rotationYaw, 0.0F); + entitychicken1.onSpawnWithEgg((IEntityLivingData)null); + entitychicken1.func_152117_i(true); + this.worldObj.spawnEntityInWorld(entitychicken1); + this.mountEntity(entitychicken1); + } + } + } + + this.func_146070_a(this.rand.nextFloat() < f * 0.1F); + this.addRandomArmor(); + this.enchantEquipment(); + + if (this.getEquipmentInSlot(4) == null) + { + Calendar calendar = this.worldObj.getCurrentDate(); + + if (calendar.get(2) + 1 == 10 && calendar.get(5) == 31 && this.rand.nextFloat() < 0.25F) + { + this.setCurrentItemOrArmor(4, new ItemStack(this.rand.nextFloat() < 0.1F ? Blocks.lit_pumpkin : Blocks.pumpkin)); + this.equipmentDropChances[4] = 0.0F; + } + } + + this.getEntityAttribute(SharedMonsterAttributes.knockbackResistance).applyModifier(new AttributeModifier("Random spawn bonus", this.rand.nextDouble() * 0.05000000074505806D, 0)); + double d0 = this.rand.nextDouble() * 1.5D * (double)this.worldObj.func_147462_b(this.posX, this.posY, this.posZ); + + if (d0 > 1.0D) + { + this.getEntityAttribute(SharedMonsterAttributes.followRange).applyModifier(new AttributeModifier("Random zombie-spawn bonus", d0, 2)); + } + + if (this.rand.nextFloat() < f * 0.05F) + { + this.getEntityAttribute(field_110186_bp).applyModifier(new AttributeModifier("Leader zombie bonus", this.rand.nextDouble() * 0.25D + 0.5D, 0)); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).applyModifier(new AttributeModifier("Leader zombie bonus", this.rand.nextDouble() * 3.0D + 1.0D, 2)); + this.func_146070_a(true); + } + + return (IEntityLivingData)p_110161_1_1; + } +*/ + /** + * Called when a player interacts with a mob. e.g. gets milk from a cow, gets into the saddle on a pig. + */ + public boolean interact(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.getCurrentEquippedItem(); + + if (itemstack != null && itemstack.getItem() == Items.golden_apple && itemstack.getItemDamage() == 0 && this.isVillager() && this.isPotionActive(Potion.weakness)) + { + if (!p_70085_1_.capabilities.isCreativeMode) + { + --itemstack.stackSize; + } + + if (itemstack.stackSize <= 0) + { + p_70085_1_.inventory.setInventorySlotContents(p_70085_1_.inventory.currentItem, (ItemStack)null); + } + + if (!this.worldObj.isRemote) + { + this.startConversion(this.rand.nextInt(2401) + 3600); + } + + return true; + } + else + { + return false; + } + } + + /** + * Starts converting this zombie into a villager. The zombie converts into a villager after the specified time in + * ticks. + */ + protected void startConversion(int p_82228_1_) + { + this.conversionTime = p_82228_1_; + this.getDataWatcher().updateObject(14, Byte.valueOf((byte)1)); + this.removePotionEffect(Potion.weakness.id); + this.addPotionEffect(new PotionEffect(Potion.damageBoost.id, p_82228_1_, Math.min(this.worldObj.difficultySetting.getDifficultyId() - 1, 0))); + this.worldObj.setEntityState(this, (byte)16); + } + + @SideOnly(Side.CLIENT) + public void handleHealthUpdate(byte p_70103_1_) + { + if (p_70103_1_ == 16) + { + this.worldObj.playSound(this.posX + 0.5D, this.posY + 0.5D, this.posZ + 0.5D, "mob.zombie.remedy", 1.0F + this.rand.nextFloat(), this.rand.nextFloat() * 0.7F + 0.3F, false); + } + else + { + super.handleHealthUpdate(p_70103_1_); + } + } + + /** + * Determines if an entity can be despawned, used on idle far away entities + */ + protected boolean canDespawn() + { + return !this.isConverting(); + } + + /** + * Returns whether this zombie is in the process of converting to a villager + */ + public boolean isConverting() + { + return this.getDataWatcher().getWatchableObjectByte(14) == 1; + } + + /** + * Convert this zombie into a villager. + */ + protected void convertToVillager() + { + EntityVillager entityvillager = new EntityVillager(this.worldObj); + entityvillager.copyLocationAndAnglesFrom(this); + entityvillager.onSpawnWithEgg((IEntityLivingData)null); + entityvillager.setLookingForHome(); + + if (this.isChild()) + { + entityvillager.setGrowingAge(-24000); + } + + this.worldObj.removeEntity(this); + this.worldObj.spawnEntityInWorld(entityvillager); + entityvillager.addPotionEffect(new PotionEffect(Potion.confusion.id, 200, 0)); + this.worldObj.playAuxSFXAtEntity((EntityPlayer)null, 1017, (int)this.posX, (int)this.posY, (int)this.posZ, 0); + } + + /** + * Return the amount of time decremented from conversionTime every tick. + */ + protected int getConversionTimeBoost() + { + int i = 1; + + if (this.rand.nextFloat() < 0.01F) + { + int j = 0; + + for (int k = (int)this.posX - 4; k < (int)this.posX + 4 && j < 14; ++k) + { + for (int l = (int)this.posY - 4; l < (int)this.posY + 4 && j < 14; ++l) + { + for (int i1 = (int)this.posZ - 4; i1 < (int)this.posZ + 4 && j < 14; ++i1) + { + Block block = this.worldObj.getBlock(k, l, i1); + + if (block == Blocks.iron_bars || block == Blocks.bed) + { + if (this.rand.nextFloat() < 0.3F) + { + ++i; + } + + ++j; + } + } + } + } + } + + return i; + } + + public void func_146071_k(boolean p_146071_1_) + { + this.func_146069_a(p_146071_1_ ? 0.5F : 1.0F); + } + + /** + * Sets the width and height of the entity. Args: width, height + */ + protected final void setSize(float p_70105_1_, float p_70105_2_) + { + boolean flag = this.field_146074_bv > 0.0F && this.field_146073_bw > 0.0F; + this.field_146074_bv = p_70105_1_; + this.field_146073_bw = p_70105_2_; + + if (!flag) + { + this.func_146069_a(1.0F); + } + } + + protected final void func_146069_a(float p_146069_1_) + { + super.setSize(this.field_146074_bv * p_146069_1_, this.field_146073_bw * p_146069_1_); + } + + class GroupData implements IEntityLivingData + { + public boolean field_142048_a; + public boolean field_142046_b; + private static final String __OBFID = "CL_00001704"; + + private GroupData(boolean p_i2348_2_, boolean p_i2348_3_) + { + this.field_142048_a = false; + this.field_142046_b = false; + this.field_142048_a = p_i2348_2_; + this.field_142046_b = p_i2348_3_; + } + + GroupData(boolean p_i2349_2_, boolean p_i2349_3_, Object p_i2349_4_) + { + this(p_i2349_2_, p_i2349_3_); + } + } +} \ No newline at end of file diff --git a/src/main/java/com/jtrent238/epicproportions/entity/EntityPat.java b/src/main/java/com/jtrent238/epicproportions/entity/EntityPat.java new file mode 100644 index 0000000..e0ac537 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/entity/EntityPat.java @@ -0,0 +1,183 @@ +package com.jtrent238.epicproportions.entity; + +import com.jtrent238.epicproportions.ItemLoader; + +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.EntityAIAttackOnCollide; +import net.minecraft.entity.ai.EntityAIHurtByTarget; +import net.minecraft.entity.ai.EntityAILookIdle; +import net.minecraft.entity.ai.EntityAIMoveThroughVillage; +import net.minecraft.entity.ai.EntityAIMoveTowardsRestriction; +import net.minecraft.entity.ai.EntityAIMoveTowardsTarget; +import net.minecraft.entity.ai.EntityAINearestAttackableTarget; +import net.minecraft.entity.ai.EntityAIWander; +import net.minecraft.entity.ai.EntityAIWatchClosest; +import net.minecraft.entity.boss.IBossDisplayData; +import net.minecraft.entity.effect.EntityLightningBolt; +import net.minecraft.entity.monster.EntityGolem; +import net.minecraft.entity.monster.IMob; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.DamageSource; +import net.minecraft.world.World; +import net.minecraftforge.common.DungeonHooks; + +public class EntityPat extends EntityGolem implements IBossDisplayData +{ + World world = null; + private int attackTimer; + public EntityPat(World var1) + { + super(var1); + world = var1; + experienceValue = 5; + this.isImmuneToFire = true; + this.tasks.addTask(1, new EntityAIAttackOnCollide(this, 1.0D, true)); + this.tasks.addTask(2, new EntityAIMoveTowardsTarget(this, 0.9D, 32.0F)); + this.tasks.addTask(3, new EntityAIMoveThroughVillage(this, 0.6D, true)); + this.tasks.addTask(4, new EntityAIMoveTowardsRestriction(this, 1.0D)); + this.tasks.addTask(6, new EntityAIWander(this, 0.6D)); + this.tasks.addTask(7, new EntityAIWatchClosest(this, EntityPlayer.class, 6.0F)); + this.tasks.addTask(8, new EntityAILookIdle(this)); + this.targetTasks.addTask(2, new EntityAIHurtByTarget(this, false)); + this.targetTasks.addTask(3, new EntityAINearestAttackableTarget(this, EntityLiving.class, 0, false, true, IMob.mobSelector)); + addRandomArmor(); + DungeonHooks.addDungeonMob("FuriousDestroyer", 180); + } + + + protected void applyEntityAttributes() + { + super.applyEntityAttributes(); + this.getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(50D); + this.getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D); + } + + public boolean attackEntityAsMob(Entity p_70652_1_) + { + this.attackTimer = 10; + this.worldObj.setEntityState(this, (byte)4); + boolean flag = p_70652_1_.attackEntityFrom(DamageSource.causeMobDamage(this), (float)(7 + this.rand.nextInt(15))); + + if (flag) + { + p_70652_1_.motionY += 0.4000000059604645D; + } + + this.playSound("", 1.0F, 1.0F); + return flag; + } +protected void addRandomArmor(){ + +} + +protected void dropRareDrop(int par1){ +this.dropItem(Items.nether_star, 1); +} + + + public boolean isAIEnabled() + { + return true; + } + + /** + * Determines if an entity can be despawned, used on idle far away entities + */ + protected boolean canDespawn() + { + return false; + } + + /** + * Drop items of this living's type + */ + protected void dropFewItems(boolean var1, int var2) + { + this.entityDropItem(new ItemStack(ItemLoader.itemPatIngot), 1); + } + + /** + * Returns the sound this mob makes while it's alive. + */ + protected String getLivingSound() + { + return ""; + } + + /** + * Returns the sound this mob makes when it is hurt. + */ + protected String getHurtSound() + { + return "epicproportionsmod:pat_scream_1"; + } + + /** + * Returns the sound this mob makes on death. + */ + protected String getDeathSound() + { + return "epicproportionsmod:pat_scream_1"; + } + + public void onStruckByLightning(EntityLightningBolt entityLightningBolt){ + int i = (int)this.posX; + int j = (int)this.posY; + int k = (int)this.posZ; + Entity entity = this; + + } + + protected void fall(float l){ + int i = (int)this.posX; + int j = (int)this.posY; + int k = (int)this.posZ; + super.fall(l); + Entity entity = this; + + } + + public void onCriticalHit(Entity entity2) { + int i = (int)this.posX; + int j = (int)this.posY; + int k = (int)this.posZ; + Entity entity = this; + + } + + public void onKillEntity(EntityLiving entityLiving){ + int i = (int)this.posX; + int j = (int)this.posY; + int k = (int)this.posZ; + Entity entity = this; + + } + + public boolean interact(EntityPlayer entity2){ + int i = (int)this.posX; + int j = (int)this.posY; + int k = (int)this.posZ; + Entity entity = this; + + return true; + } + + public String getEntityName(){ + return "FuriousDestroyer"; + } + + +/** +* Will return how many at most can spawn in a chunk at once. +*/ +public int getMaxSpawnedInChunk() +{ + return 4; +} + + +} diff --git a/src/main/java/com/jtrent238/epicproportions/entity/PetBase.java b/src/main/java/com/jtrent238/epicproportions/entity/PetBase.java new file mode 100644 index 0000000..d25b716 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/entity/PetBase.java @@ -0,0 +1,187 @@ +package com.jtrent238.epicproportions.entity; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import java.util.Iterator; +import java.util.List; +import java.util.UUID; +import net.minecraft.entity.DataWatcher; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityCreature; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.world.World; + +public class PetBase + extends EntityCreature +{ + protected int regentimer = 0; + protected EntityAISitPet aiSit = new EntityAISitPet(this); + + public PetBase(World world) + { + super(world); + } + /* + protected void func_70088_a() + { + super.func_70088_a(); + + this.field_70180_af.func_75682_a(16, Byte.valueOf((byte)0)); + this.field_70180_af.func_75682_a(17, func_110124_au().toString()); + this.field_70180_af.func_75682_a(18, new Float(func_110143_aJ())); + } + + public boolean func_142018_a(EntityLivingBase p_142018_1_, EntityLivingBase p_142018_2_) + { + return true; + } + + public UUID getOwnerUUID() + { + return UUID.fromString(this.field_70180_af.func_75681_e(17)); + } + + public Entity getOwner() + { + UUID uuid = UUID.fromString(this.field_70180_af.func_75681_e(17)); + + Iterator entities = this.field_70170_p.field_72996_f.iterator(); + while (entities.hasNext()) + { + Entity entity = (Entity)entities.next(); + if (entity.func_110124_au().compareTo(uuid) == 0) { + return entity; + } + } + return null; + } + + public void setOwner(Entity owner) + { + UUID uuid = owner.func_110124_au(); + this.field_70180_af.func_75692_b(17, uuid.toString()); + } + + protected boolean func_70650_aV() + { + return true; + } + + @SideOnly(Side.CLIENT) + public boolean func_94059_bO() + { + return true; + } + + public void func_70636_d() + { + super.func_70636_d(); + this.regentimer += 1; + if (this.regentimer == 100) + { + if (isTamed()) { + func_70691_i(2.0F); + } else { + func_70691_i(1.0F); + } + this.regentimer = 0; + } + this.field_70180_af.func_75692_b(18, new Float(func_110143_aJ())); + } + + public void setOwner(String uuid) + { + this.field_70180_af.func_75692_b(17, uuid); + } + + public void setOwner(long mb, long lb) {} + + public void func_70014_b(NBTTagCompound par1NBTTagCompound) + { + super.func_70014_b(par1NBTTagCompound); + + par1NBTTagCompound.func_74757_a("Sitting", isSitting()); + + UUID uuid = getOwnerUUID(); + + par1NBTTagCompound.func_74778_a("OwnerUUID", uuid.toString()); + } + + public void func_70037_a(NBTTagCompound par1NBTTagCompound) + { + super.func_70037_a(par1NBTTagCompound); + + this.aiSit.setSitting(par1NBTTagCompound.func_74767_n("Sitting")); + setSitting(par1NBTTagCompound.func_74767_n("Sitting")); + + setOwner(par1NBTTagCompound.func_74779_i("OwnerUUID")); + } + + protected boolean func_70692_ba() + { + return false; + } + + public boolean isTamed() + { + return (this.field_70180_af.func_75683_a(16) & 0x4) != 0; + } + + public boolean func_70085_c(EntityPlayer p_70085_1_) + { + ItemStack itemstack = p_70085_1_.field_71071_by.func_70448_g(); + if (isTamed()) { + if ((getOwner() == p_70085_1_) && + (itemstack == null)) + { + setSitting(!isSitting()); + this.aiSit.setSitting(!isSitting()); + } + } + return super.func_70085_c(p_70085_1_); + } + + public void setTamed(boolean par1) + { + byte b0 = this.field_70180_af.func_75683_a(16); + if (par1) { + this.field_70180_af.func_75692_b(16, Byte.valueOf((byte)(b0 | 0x4))); + } else { + this.field_70180_af.func_75692_b(16, Byte.valueOf((byte)(b0 & 0xFFFFFFFB))); + } + } + + public boolean isSitting() + { + return (this.field_70180_af.func_75683_a(16) & 0x1) != 0; + } + + public void setSitting(boolean par1) + { + byte b0 = this.field_70180_af.func_75683_a(16); + if (par1) { + this.field_70180_af.func_75692_b(16, Byte.valueOf((byte)(b0 | 0x1))); + } else { + this.field_70180_af.func_75692_b(16, Byte.valueOf((byte)(b0 & 0xFFFFFFFE))); + } + } + + public void getPlayerOwner() + { + Iterator entities = this.field_70170_p.field_73010_i.iterator(); + while (entities.hasNext()) + { + EntityPlayer entity = (EntityPlayer)entities.next(); + if (func_70068_e(entity) < 5.0D) + { + setOwner(entity); + setTamed(true); + } + } + } + */ +} diff --git a/src/main/java/com/jtrent238/epicproportions/items/itemJenIngot.java b/src/main/java/com/jtrent238/epicproportions/items/itemJenIngot.java new file mode 100644 index 0000000..3c47b7a --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/items/itemJenIngot.java @@ -0,0 +1,10 @@ +package com.jtrent238.epicproportions.items; + +import net.minecraft.item.Item; + +public class itemJenIngot extends Item{ + + public itemJenIngot () { + } + +} diff --git a/src/main/java/com/jtrent238/epicproportions/items/itemJenslips.java b/src/main/java/com/jtrent238/epicproportions/items/itemJenslips.java new file mode 100644 index 0000000..ec9c258 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/items/itemJenslips.java @@ -0,0 +1,7 @@ +package com.jtrent238.epicproportions.items; + +import net.minecraft.item.Item; + +public class itemJenslips extends Item{ + +} diff --git a/src/main/java/com/jtrent238/epicproportions/items/itemPatIngot.java b/src/main/java/com/jtrent238/epicproportions/items/itemPatIngot.java new file mode 100644 index 0000000..7b3c8eb --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/items/itemPatIngot.java @@ -0,0 +1,10 @@ +package com.jtrent238.epicproportions.items; + +import net.minecraft.item.Item; + +public class itemPatIngot extends Item{ + + public itemPatIngot () { + } + +} diff --git a/src/main/java/com/jtrent238/epicproportions/items/itemgemofepicproportions.java b/src/main/java/com/jtrent238/epicproportions/items/itemgemofepicproportions.java new file mode 100644 index 0000000..19d5a3e --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/items/itemgemofepicproportions.java @@ -0,0 +1,7 @@ +package com.jtrent238.epicproportions.items; + +import net.minecraft.item.Item; + +public class itemgemofepicproportions extends Item{ + +} diff --git a/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnBomby.java b/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnBomby.java new file mode 100644 index 0000000..3cf4c9c --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnBomby.java @@ -0,0 +1,49 @@ +package com.jtrent238.epicproportions.items.spawners; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import java.util.Iterator; +import java.util.List; + +import com.jtrent238.epicproportions.entity.EntityBomby; + +import net.minecraft.block.Block; +import net.minecraft.block.BlockLiquid; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityList; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.IEntityLivingData; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.Facing; +import net.minecraft.util.IIcon; +import net.minecraft.util.MathHelper; +import net.minecraft.util.MovingObjectPosition; +import net.minecraft.util.StatCollector; +import net.minecraft.world.World; + +public class itemSpawnBomby extends Item +{ + @SideOnly(Side.CLIENT) + private IIcon theIcon; + private static final String __OBFID = "CL_00000070"; + + + //This allows Right Click to spawn entity + public ItemStack onItemRightClick(ItemStack itemstack, World world,EntityPlayer entityplayer) + { + if(!world.isRemote) + { + EntityBomby par1 = new EntityBomby(world); //Just change"MyEntityCow" to any entity you would like to spawn + par1.setPosition(entityplayer.posX, entityplayer.posY+2,entityplayer.posZ+2); //These are the coordinates where he will appear + world.spawnEntityInWorld(par1); + } + //entityplayer.addChatMessage("Its Bomby!"); //This is a message you can add when he is spawned + itemstack.damageItem(1, entityplayer); return itemstack; + } + +} \ No newline at end of file diff --git a/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnCaptianCookie.java b/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnCaptianCookie.java new file mode 100644 index 0000000..766c10f --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnCaptianCookie.java @@ -0,0 +1,34 @@ +package com.jtrent238.epicproportions.items.spawners; + +import com.jtrent238.epicproportions.entity.EntityBomby; +import com.jtrent238.epicproportions.entity.EntityCaptianCookie; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class itemSpawnCaptianCookie extends Item +{ + @SideOnly(Side.CLIENT) + private IIcon theIcon; + private static final String __OBFID = "CL_00000070"; + + + //This allows Right Click to spawn entity + public ItemStack onItemRightClick(ItemStack itemstack, World world,EntityPlayer entityplayer) + { + if(!world.isRemote) + { + EntityCaptianCookie par1 = new EntityCaptianCookie(world); //Just change"MyEntityCow" to any entity you would like to spawn + par1.setPosition(entityplayer.posX, entityplayer.posY+2,entityplayer.posZ+2); //These are the coordinates where he will appear + world.spawnEntityInWorld(par1); + } + //entityplayer.addChatMessage("Its Captian Cookie!"); //This is a message you can add when he is spawned + itemstack.damageItem(1, entityplayer); return itemstack; + } + +} \ No newline at end of file diff --git a/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnFred2_0.java b/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnFred2_0.java new file mode 100644 index 0000000..e39e4ea --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnFred2_0.java @@ -0,0 +1,34 @@ +package com.jtrent238.epicproportions.items.spawners; + +import com.jtrent238.epicproportions.entity.EntityFred2_0; +import com.jtrent238.epicproportions.entity.EntityJen; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class itemSpawnFred2_0 extends Item +{ + @SideOnly(Side.CLIENT) + private IIcon theIcon; + private static final String __OBFID = "CL_00000070"; + + + //This allows Right Click to spawn entity + public ItemStack onItemRightClick(ItemStack itemstack, World world,EntityPlayer entityplayer) + { + if(!world.isRemote) + { + EntityFred2_0 par1 = new EntityFred2_0(world); //Just change"MyEntityCow" to any entity you would like to spawn + par1.setPosition(entityplayer.posX, entityplayer.posY+2,entityplayer.posZ+2); //These are the coordinates where he will appear + world.spawnEntityInWorld(par1); + } + //entityplayer.addChatMessage("Its Captian Cookie!"); //This is a message you can add when he is spawned + itemstack.damageItem(1, entityplayer); return itemstack; + } + +} \ No newline at end of file diff --git a/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnJen.java b/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnJen.java new file mode 100644 index 0000000..0234c65 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnJen.java @@ -0,0 +1,34 @@ +package com.jtrent238.epicproportions.items.spawners; + +import com.jtrent238.epicproportions.entity.EntityJen; +import com.jtrent238.epicproportions.entity.EntityPat; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class itemSpawnJen extends Item +{ + @SideOnly(Side.CLIENT) + private IIcon theIcon; + private static final String __OBFID = "CL_00000070"; + + + //This allows Right Click to spawn entity + public ItemStack onItemRightClick(ItemStack itemstack, World world,EntityPlayer entityplayer) + { + if(!world.isRemote) + { + EntityJen par1 = new EntityJen(world); //Just change"MyEntityCow" to any entity you would like to spawn + par1.setPosition(entityplayer.posX, entityplayer.posY+2,entityplayer.posZ+2); //These are the coordinates where he will appear + world.spawnEntityInWorld(par1); + } + //entityplayer.addChatMessage("Its Captian Cookie!"); //This is a message you can add when he is spawned + itemstack.damageItem(1, entityplayer); return itemstack; + } + +} \ No newline at end of file diff --git a/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnNinjaMaster.java b/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnNinjaMaster.java new file mode 100644 index 0000000..fac89b0 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnNinjaMaster.java @@ -0,0 +1,34 @@ +package com.jtrent238.epicproportions.items.spawners; + +import com.jtrent238.epicproportions.entity.EntityJen; +import com.jtrent238.epicproportions.entity.EntityNinjaMaster; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class itemSpawnNinjaMaster extends Item +{ + @SideOnly(Side.CLIENT) + private IIcon theIcon; + private static final String __OBFID = "CL_00000070"; + + + //This allows Right Click to spawn entity + public ItemStack onItemRightClick(ItemStack itemstack, World world,EntityPlayer entityplayer) + { + if(!world.isRemote) + { + EntityNinjaMaster par1 = new EntityNinjaMaster(world); //Just change"MyEntityCow" to any entity you would like to spawn + par1.setPosition(entityplayer.posX, entityplayer.posY+2,entityplayer.posZ+2); //These are the coordinates where he will appear + world.spawnEntityInWorld(par1); + } + //entityplayer.addChatMessage("Its Captian Cookie!"); //This is a message you can add when he is spawned + itemstack.damageItem(1, entityplayer); return itemstack; + } + +} \ No newline at end of file diff --git a/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnPat.java b/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnPat.java new file mode 100644 index 0000000..dca527a --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/items/spawners/itemSpawnPat.java @@ -0,0 +1,34 @@ +package com.jtrent238.epicproportions.items.spawners; + +import com.jtrent238.epicproportions.entity.EntityCaptianCookie; +import com.jtrent238.epicproportions.entity.EntityPat; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +public class itemSpawnPat extends Item +{ + @SideOnly(Side.CLIENT) + private IIcon theIcon; + private static final String __OBFID = "CL_00000070"; + + + //This allows Right Click to spawn entity + public ItemStack onItemRightClick(ItemStack itemstack, World world,EntityPlayer entityplayer) + { + if(!world.isRemote) + { + EntityPat par1 = new EntityPat(world); //Just change"MyEntityCow" to any entity you would like to spawn + par1.setPosition(entityplayer.posX, entityplayer.posY+2,entityplayer.posZ+2); //These are the coordinates where he will appear + world.spawnEntityInWorld(par1); + } + //entityplayer.addChatMessage("Its Captian Cookie!"); //This is a message you can add when he is spawned + itemstack.damageItem(1, entityplayer); return itemstack; + } + +} \ No newline at end of file diff --git a/src/main/java/com/jtrent238/epicproportions/model/Fred2_0.tcn b/src/main/java/com/jtrent238/epicproportions/model/Fred2_0.tcn new file mode 100644 index 0000000..c9b5d19 Binary files /dev/null and b/src/main/java/com/jtrent238/epicproportions/model/Fred2_0.tcn differ diff --git a/src/main/java/com/jtrent238/epicproportions/model/ModelFred2_0.java b/src/main/java/com/jtrent238/epicproportions/model/ModelFred2_0.java new file mode 100644 index 0000000..530c843 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/model/ModelFred2_0.java @@ -0,0 +1,111 @@ +// Date: 7/10/2016 4:30:38 PM +// Template version 1.1 +// Java generated by Techne +// Keep in mind that you still need to fill in some blanks +// - ZeuX + + + + + + +package com.jtrent238.epicproportions.model; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.model.ModelRenderer; +import net.minecraft.entity.Entity; + +public class ModelFred2_0 extends ModelBase +{ + //fields + ModelRenderer Leg1; + ModelRenderer Leg2; + ModelRenderer MiddleLongBottom; + ModelRenderer MiddleTall; + ModelRenderer MiddleLongTop; + ModelRenderer Arm1; + ModelRenderer Arm2; + ModelRenderer Head; + + public ModelFred2_0() + { + textureWidth = 64; + textureHeight = 32; + + Leg1 = new ModelRenderer(this, 0, 0); + Leg1.addBox(0F, 0F, 0F, 2, 16, 2); + Leg1.setRotationPoint(-7F, 8F, 0F); + Leg1.setTextureSize(64, 32); + Leg1.mirror = true; + setRotation(Leg1, 0F, 0F, 0F); + Leg2 = new ModelRenderer(this, 0, 0); + Leg2.addBox(0F, 0F, 0F, 2, 16, 2); + Leg2.setRotationPoint(5F, 8F, 0F); + Leg2.setTextureSize(64, 32); + Leg2.mirror = true; + setRotation(Leg2, 0F, 0F, 0F); + MiddleLongBottom = new ModelRenderer(this, 0, 0); + MiddleLongBottom.addBox(0F, 0F, 0F, 20, 3, 2); + MiddleLongBottom.setRotationPoint(-10F, 6F, 0F); + MiddleLongBottom.setTextureSize(64, 32); + MiddleLongBottom.mirror = true; + setRotation(MiddleLongBottom, 0F, 0F, 0F); + MiddleTall = new ModelRenderer(this, 0, 0); + MiddleTall.addBox(0F, 0F, 0F, 2, 23, 2); + MiddleTall.setRotationPoint(-1F, -11F, 0F); + MiddleTall.setTextureSize(64, 32); + MiddleTall.mirror = true; + setRotation(MiddleTall, 0F, 0F, 0F); + MiddleLongTop = new ModelRenderer(this, 0, 0); + MiddleLongTop.addBox(0F, 0F, 0F, 20, 3, 2); + MiddleLongTop.setRotationPoint(-10F, -5F, 0F); + MiddleLongTop.setTextureSize(64, 32); + MiddleLongTop.mirror = true; + setRotation(MiddleLongTop, 0F, 0F, 0F); + Arm1 = new ModelRenderer(this, 0, 0); + Arm1.addBox(0F, 0F, 0F, 2, 11, 2); + Arm1.setRotationPoint(-11F, -9F, 0F); + Arm1.setTextureSize(64, 32); + Arm1.mirror = true; + setRotation(Arm1, 0F, 0F, 0F); + Arm2 = new ModelRenderer(this, 0, 0); + Arm2.addBox(0F, 0F, 0F, 2, 11, 2); + Arm2.setRotationPoint(9F, -9F, 0F); + Arm2.setTextureSize(64, 32); + Arm2.mirror = true; + setRotation(Arm2, 0F, 0F, 0F); + Head = new ModelRenderer(this, 0, 0); + Head.addBox(0F, 0F, 0F, 8, 8, 8); + Head.setRotationPoint(-4F, -15F, 0F); + Head.setTextureSize(64, 32); + Head.mirror = true; + setRotation(Head, 0F, 0F, 0F); + } + + public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) + { + super.render(entity, f, f1, f2, f3, f4, f5); + setRotationAngles(f, f1, f2, f3, f4, f5); + Leg1.render(f5); + Leg2.render(f5); + MiddleLongBottom.render(f5); + MiddleTall.render(f5); + MiddleLongTop.render(f5); + Arm1.render(f5); + Arm2.render(f5); + Head.render(f5); + } + + private void setRotation(ModelRenderer model, float x, float y, float z) + { + model.rotateAngleX = x; + model.rotateAngleY = y; + model.rotateAngleZ = z; + } + + public void setRotationAngles(float f, float f1, float f2, float f3, float f4, float f5) + { + super.setRotationAngles(f, f1, f2, f3, f4, f5, null); + } + +} diff --git a/src/main/java/com/jtrent238/epicproportions/render/RenderBomby.java b/src/main/java/com/jtrent238/epicproportions/render/RenderBomby.java new file mode 100644 index 0000000..8db9a55 --- /dev/null +++ b/src/main/java/com/jtrent238/epicproportions/render/RenderBomby.java @@ -0,0 +1,50 @@ +package com.jtrent238.epicproportions.render; + +import org.lwjgl.opengl.GL11; + +import com.jtrent238.epicproportions.entity.EntityBomby; + +import net.minecraft.client.model.ModelBase; +import net.minecraft.client.renderer.entity.RenderLiving; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.util.ResourceLocation; + +public class RenderBomby +extends RenderLiving +{ +private static final ResourceLocation Texture = new ResourceLocation("textures/entity/creeper/creeper.png"); + +public RenderBomby(ModelBase p_i1269_1_, float p_i1269_3_) +{ + super(p_i1269_1_, p_i1269_3_); +} + +/*protected void func_77043_a(EntityLivingBase p_77043_1_, float p_77043_2_, float p_77043_3_, float p_77043_4_) +{ + double scaler = 0.35D; + GL11.glScaled(scaler, scaler, scaler); + super.func_77043_a(p_77043_1_, p_77043_2_, p_77043_3_, p_77043_4_); +} + +public void func_76986_a(EntityLiving p_76986_1_, double p_76986_2_, double p_76986_4_, double p_76986_6_, float p_76986_8_, float p_76986_9_) +{ + super.func_76986_a(p_76986_1_, p_76986_2_, p_76986_4_, p_76986_6_, p_76986_8_, p_76986_9_); +} +*/ +protected ResourceLocation getEntityTexture(EntityBomby p_110775_1_) +{ + return Texture; +} + +protected ResourceLocation func_110775_a(Entity p_110775_1_) +{ + return getEntityTexture((EntityBomby)p_110775_1_); +} + +@Override +protected ResourceLocation getEntityTexture(Entity p_110775_1_) { + return Texture; +} +} diff --git a/src/main/resources/assets/epicproportionsmod/EntityCaptianCookie.png b/src/main/resources/assets/epicproportionsmod/EntityCaptianCookie.png new file mode 100644 index 0000000..fd4749a Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/EntityCaptianCookie.png differ diff --git a/src/main/resources/assets/epicproportionsmod/EntityFred2_0.png b/src/main/resources/assets/epicproportionsmod/EntityFred2_0.png new file mode 100644 index 0000000..ac58e3e Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/EntityFred2_0.png differ diff --git a/src/main/resources/assets/epicproportionsmod/EntityJen.png b/src/main/resources/assets/epicproportionsmod/EntityJen.png new file mode 100644 index 0000000..1b5bc9b Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/EntityJen.png differ diff --git a/src/main/resources/assets/epicproportionsmod/EntityNinjaMaster.png b/src/main/resources/assets/epicproportionsmod/EntityNinjaMaster.png new file mode 100644 index 0000000..bd1e90e Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/EntityNinjaMaster.png differ diff --git a/src/main/resources/assets/epicproportionsmod/EntityPat.png b/src/main/resources/assets/epicproportionsmod/EntityPat.png new file mode 100644 index 0000000..797010a Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/EntityPat.png differ diff --git a/src/main/resources/assets/epicproportionsmod/sounds.json b/src/main/resources/assets/epicproportionsmod/sounds.json new file mode 100644 index 0000000..fa17a46 --- /dev/null +++ b/src/main/resources/assets/epicproportionsmod/sounds.json @@ -0,0 +1,8 @@ +{ + "pat_scream_1": {"category": "master","sounds": [{"name": "pat_scream_1","stream": false}]}, + "jen_scream_1": {"category": "master","sounds": [{"name": "jen_scream_1","stream": false}]}, + "ninjamaster_hurt": {"category": "master","sounds": [{"name": "ninjamaster_hurt","stream": false}]}, + "ninjamaster_attack": {"category": "master","sounds": [{"name": "ninjamaster_attack","stream": false}]}, + "captaincookie_hurt": {"category": "master","sounds": [{"name": "captaincookie_hurt","stream": false}]}, + "captaincookie_death": {"category": "master","sounds": [{"name": "captaincookie_death","stream": false}]} + } \ No newline at end of file diff --git a/src/main/resources/assets/epicproportionsmod/sounds/captaincookie_death.ogg b/src/main/resources/assets/epicproportionsmod/sounds/captaincookie_death.ogg new file mode 100644 index 0000000..4d89c49 Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/sounds/captaincookie_death.ogg differ diff --git a/src/main/resources/assets/epicproportionsmod/sounds/captaincookie_hurt.ogg b/src/main/resources/assets/epicproportionsmod/sounds/captaincookie_hurt.ogg new file mode 100644 index 0000000..b5c68b3 Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/sounds/captaincookie_hurt.ogg differ diff --git a/src/main/resources/assets/epicproportionsmod/sounds/jen_scream_1.ogg b/src/main/resources/assets/epicproportionsmod/sounds/jen_scream_1.ogg new file mode 100644 index 0000000..19543cc Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/sounds/jen_scream_1.ogg differ diff --git a/src/main/resources/assets/epicproportionsmod/sounds/ninjamaster_attack.ogg b/src/main/resources/assets/epicproportionsmod/sounds/ninjamaster_attack.ogg new file mode 100644 index 0000000..12e41e3 Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/sounds/ninjamaster_attack.ogg differ diff --git a/src/main/resources/assets/epicproportionsmod/sounds/ninjamaster_hurt.ogg b/src/main/resources/assets/epicproportionsmod/sounds/ninjamaster_hurt.ogg new file mode 100644 index 0000000..3ed3177 Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/sounds/ninjamaster_hurt.ogg differ diff --git a/src/main/resources/assets/epicproportionsmod/sounds/pat_scream_1.ogg b/src/main/resources/assets/epicproportionsmod/sounds/pat_scream_1.ogg new file mode 100644 index 0000000..eb24eb2 Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/sounds/pat_scream_1.ogg differ diff --git a/src/main/resources/assets/epicproportionsmod/textures/items/144.png b/src/main/resources/assets/epicproportionsmod/textures/items/144.png new file mode 100644 index 0000000..b89537d Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/textures/items/144.png differ diff --git a/src/main/resources/assets/epicproportionsmod/textures/items/itemJenIngot.png b/src/main/resources/assets/epicproportionsmod/textures/items/itemJenIngot.png new file mode 100644 index 0000000..f4a540a Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/textures/items/itemJenIngot.png differ diff --git a/src/main/resources/assets/epicproportionsmod/textures/items/itemJenslips.png b/src/main/resources/assets/epicproportionsmod/textures/items/itemJenslips.png new file mode 100644 index 0000000..8866daf Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/textures/items/itemJenslips.png differ diff --git a/src/main/resources/assets/epicproportionsmod/textures/items/itemPatIngot.png b/src/main/resources/assets/epicproportionsmod/textures/items/itemPatIngot.png new file mode 100644 index 0000000..8b3160c Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/textures/items/itemPatIngot.png differ diff --git a/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnBomby.png b/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnBomby.png new file mode 100644 index 0000000..602bd2c Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnBomby.png differ diff --git a/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnCaptianCookie.png b/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnCaptianCookie.png new file mode 100644 index 0000000..b34cab6 Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnCaptianCookie.png differ diff --git a/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnFred2_0.png b/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnFred2_0.png new file mode 100644 index 0000000..593d873 Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnFred2_0.png differ diff --git a/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnJen.png b/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnJen.png new file mode 100644 index 0000000..ae05ab6 Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnJen.png differ diff --git a/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnMissingTexture.png b/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnMissingTexture.png new file mode 100644 index 0000000..593d873 Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnMissingTexture.png differ diff --git a/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnNinjaMaster.png b/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnNinjaMaster.png new file mode 100644 index 0000000..cde79a6 Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnNinjaMaster.png differ diff --git a/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnPat.png b/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnPat.png new file mode 100644 index 0000000..3c422e7 Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/textures/items/itemSpawnPat.png differ diff --git a/src/main/resources/assets/epicproportionsmod/textures/items/itemgemofepicproportions.png b/src/main/resources/assets/epicproportionsmod/textures/items/itemgemofepicproportions.png new file mode 100644 index 0000000..5c5fdb3 Binary files /dev/null and b/src/main/resources/assets/epicproportionsmod/textures/items/itemgemofepicproportions.png differ diff --git a/src/main/resources/assets/lucky/lang/en_US.lang b/src/main/resources/assets/lucky/lang/en_US.lang new file mode 100644 index 0000000..e90be0b --- /dev/null +++ b/src/main/resources/assets/lucky/lang/en_US.lang @@ -0,0 +1,10 @@ +tile.luckyBlock.name=§eEpic Proportions Lucky Block +item.luckyBlock.luck=Luck +item.luckyBlock.customDrop=Has custom drops +commands.setluckyblock.usage=/setluckyblock [luck] [customDrops] +commands.setluckyblock.success=Lucky Block placed +commands.setluckyblock.failed=Unable to place Luck Block +commands.setluckyblock.outOfWorld=Cannot place Lucky Block outside of the world +commands.setluckyblock.noChange=Lucky Block couldn't be placed +commands.giveluckyblock.usage=/giveluckyblock [amount] [luck] [customDrops] +commands.giveluckyblock.success=Given %s * %d to %s \ No newline at end of file diff --git a/src/main/resources/assets/lucky/textures/blocks/lucky_block.png b/src/main/resources/assets/lucky/textures/blocks/lucky_block.png new file mode 100644 index 0000000..7f31d8d Binary files /dev/null and b/src/main/resources/assets/lucky/textures/blocks/lucky_block.png differ diff --git a/src/main/resources/assets/lucky/textures/blocks/lucky_block.png.mcmeta b/src/main/resources/assets/lucky/textures/blocks/lucky_block.png.mcmeta new file mode 100644 index 0000000..a1009d6 --- /dev/null +++ b/src/main/resources/assets/lucky/textures/blocks/lucky_block.png.mcmeta @@ -0,0 +1,5 @@ +{ + "animation": { + "frametime": 150 + } +} \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/Entityjtrent238.png b/src/main/resources/assets/minecraft/Entityjtrent238.png new file mode 100644 index 0000000..8040d9d Binary files /dev/null and b/src/main/resources/assets/minecraft/Entityjtrent238.png differ diff --git a/src/main/resources/assets/minecraft/textures/gui/container/creative_inventory/tab_EpicProportionsMod.png b/src/main/resources/assets/minecraft/textures/gui/container/creative_inventory/tab_EpicProportionsMod.png new file mode 100644 index 0000000..0d964f7 Binary files /dev/null and b/src/main/resources/assets/minecraft/textures/gui/container/creative_inventory/tab_EpicProportionsMod.png differ diff --git a/src/main/resources/mcmod.info b/src/main/resources/mcmod.info new file mode 100644 index 0000000..ed13447 --- /dev/null +++ b/src/main/resources/mcmod.info @@ -0,0 +1,16 @@ +[ +{ + "modid": "weaponmod";"foodmod";"coremod;"lotsofblocks", + "name": "§2jtrent238's Mods", + "description": "§2Mods Made By jtrent238", + "version": "", + "mcversion": "§2 1.7.10", + "url": "§2https://youtube.com/thejtrent238", + "updateUrl": "", + "authorList": ["jtrent238"], + "credits": "§2jtrent238", + "logoFile": "", + "screenshots": [], + "dependencies": [] +} +] diff --git a/src/main/resources/mod/lucky/files/LuckyBlockProperties.txt b/src/main/resources/mod/lucky/files/LuckyBlockProperties.txt new file mode 100644 index 0000000..23199bf --- /dev/null +++ b/src/main/resources/mod/lucky/files/LuckyBlockProperties.txt @@ -0,0 +1,916 @@ +5.1.0 + +WARNING: + +The first line indicates the version of this file. +If it does not match the version of the mod, this file will be replaced. +Backup this file if you want to keep any changes you made to it. + +Instruction on how to customize the Lucky Block might be added +For now, look at everything below the '>drops' line to understand the syntax. + +~SPAWNRATE/STRUCTURECHANCE~ + +The spawnrate means the Lucky Block will have a 1 in (spawnrate) chance of spawning per chunk. +This means the smaller the spawnrate, the more likely it is to spawn. Set it to 0 to prevent natural spawning. +The structureChance means every time the Lucky Block spawns it will have a 1 in (structureChance) chance of spawning within a structure. + +~RECIPE~ + +To configure the recipe, use the first 3 groups of letters to show what the recipe will look like in the crafting table. +A space instead of a letter will indicate that nothing goes there. Then, match each letter to it's appropriate item/block. +Look below to understand. for no recipe, don't put anything below the recipe line. + +>properties +spawnrate=200 +structureChance=2 +recipe=lll,ldl,lll,l,nevermine:IngotLimonite,d,dropper +doDropsOnCreativeMode=false + +>craftingitems +diamond=12 +diamond_block=100 +emerald=8 +emerald_block=80 +gold_ingot=6 +gold_block=60 +iron_ingot=3 +iron_block=30 +nevermine:CopperCoin=1 +nevermine:GoldCoin50 +nevermine:LunaverCoin=100 +nevermine:SilverCoin20 + + +nevermine:IngotBaronyte=100 +nevermine:IngotBlazium=100 +nevermine:IngotElecanium=100 +nevermine:IngotEmberstone=100 +nevermine:IngotGhastly=100 +nevermine:IngotGhoulish=100 +nevermine:IngotJade=100 +nevermine:IngotLimonite=100 +nevermine:IngotLunar=100 +nevermine:IngotLyon=100 +nevermine:IngotMystite=100 +nevermine:IngotRosite=100 +nevermine:IngotRustedIron=100 +nevermine:IngotSapphire=100 +nevermine:IngotShyregem=100 +nevermine:IngotShyrestone=100 +nevermine:IngotSkeletal=100 +nevermine:IngotVarsium=100 + +golden_carrot=30 +golden_apple,0=40 +golden_apple,1=100 +nether_star=100 + +rotten_flesh=-5 +spider_eye=-10 +fermented_spider_eye=-20 +poisonous_potato=-10 +fish,3=-20 + +>drops +/========== TOOLS & ARMOR ========== + +/SlingShot And PopShot +group(ID=nevermine:SlingShot;ID=nevermine:PopShot,amount=#random-16-32)@luck=1 + +/SpeedBow And HollyArrow +group(ID=nevermine:SpeedBow;ID=nevermine:ElementalArrow,amount=#random-16-32)@luck=1 + +/========== BLOCKS ========== + +ID=nevermine:oreJade,amount=8@luck=1 +ID=nevermine:oreSapphire,amount=8@luck=1 +ID=nevermine:oreRosite,amount=8@luck=1 +ID=nevermine:oreLimonite,amount=8@luck=1 +ID=nevermine:oreAmethyst,amount=8@luck=1 +ID=nevermine:CannonBall,amount=8@luck=1 +ID=nevermine:BearBlaster@luck=2 +ID=nevermine:VoxCrate@luck=2 +ID=nevermine:oreGhastly,amount=2@luck=0 +ID=nevermine:DartGun@luck=1 +ID=nevermine:Deepcase,amount=2@luck=1 +ID=nevermine:EmberStaff@luck=2 +ID=nevermine:oreBlazium,amount=2@luck=0 +ID=nevermine:oreEmberstone,amount=2@luck=0 + +/========= ITEMS ========== + +ID=#random-1-1000@luck=0 +ID=#random-1-1000,amount=#random-2-400@luck=0 +ID=#random-1-10000,amount=#random-1-1000@luck=0 +ID=#random-1-1000@luck=0 +ID=#random-1-1000,amount=#random-2-400@luck=0 +ID=#random-1-10000,amount=#random-1-1000@luck=0 +ID=#random-1-1000@luck=0 +ID=#random-1-1000,amount=#random-2-400@luck=0 +ID=#random-1-10000,amount=#random-1-1000@luck=0 +ID=#random-1-1000@luck=0 +ID=#random-1-1000,amount=#random-2-400@luck=0 +ID=#random-1-10000,amount=#random-1-1000@luck=0 +ID=#random-1-1000@luck=0 +ID=#random-1-1000,amount=#random-2-400@luck=0 +ID=#random-1-10000,amount=#random-1-1000@luck=0 +ID=nevermine:WindStaff@luck=0 +ID=nevermine:WitherStaff@luck=0 +ID=nevermine:PosionStaff@luck=0 +ID=nevermine:ShowStaff@luck=0 +ID=nevermine:WaterStaff@luck=0 +ID=nevermine:NatureStaff@luck=0 +ID=nevermine:FormationStaff@luck=0 +ID=nevermine:RunicStaff@luck=0 +ID=nevermine:UnderworldStaff@luck=0 +ID=nevermine:Chainsaw@luck=0 +ID=nevermine:RealmstoneCreeponia@luck=0 +ID=nevermine:RealmstoneImmortallis@luck=0 +ID=nevermine:Ornamyte@luck=0 +ID=nevermine:Gemenyte@luck=0 +ID=nevermine:Jewelyte@luck=0 +ID=nevermine:Rune@luck=0 +ID=nevermine:LunarRune@luck=0 +ID=nevermine:PoisonRune@luck=0 +ID=nevermine:LifeRune@luck=0 +ID=nevermine:DistortionRune@luck=0 +ID=nevermine:WaterRune@luck=0 +ID=nevermine:FireRune@luck=0 +ID=nevermine:EnergyRune@luck=0 +ID=nevermine:PowerRune@luck=0 +ID=nevermine:KineticRune@luck=0 +ID=nevermine:StormRune@luck=0 +ID=nevermine:StrikeRune@luck=0 +ID=nevermine:WitherRune@luck=0 +ID=nevermine:WindRune@luck=0 +ID=nevermine:Limefish@luck=0 +ID=nevermine:GoldenGullfish@luck=0 +ID=nevermine:CrimsonStripefish@luck=0 +ID=nevermine:Rainbowfish@luck=0 +ID=nevermine:ExplosiveGem@luck=0 +ID=nevermine:InfusionBlueprint@luck=0 +ID=nevermine:RealmstoneFragment1@luck=0 +ID=nevermine:RealmstoneFragment2@luck=0 +ID=nevermine:RealmstoneFragment3@luck=0 +ID=nevermine:RealmstoneFragment4@luck=0 +ID=nevermine:RealmstoneFragment5@luck=0 +ID=nevermine:OmniHelmet@luck=0 +ID=nevermine:OmniChestplate@luck=0 +ID=nevermine:OmniLeggings@luck=0 +ID=nevermine:OmniBoots@luck=0 +ID=nevermine:OrnamytePickaxe@luck=0 +ID=nevermine:OrnamyteAxe@luck=0 +ID=nevermine:OrnamyteShovel@luck=0 +ID=nevermine:CreepoidGreatblade@luck=0 +ID=nevermine:EvermightStaff@luck=0 +ID=nevermine:EverfightStaff@luck=0 +ID=nevermine:ConcussionStaff@luck=0 +ID=nevermine:DischargeShotgun@luck=0 +ID=nevermine:MissileMaker@luck=0 +ID=nevermine:RealmstoneCandyland@luck=0 +ID=nevermine:CoinsCandyland@luck=0 +ID=nevermine:OpteryxFeather@luck=0 +ID=nevermine:TreatBag@luck=0 +ID=nevermine:TotemMintMagnum@luck=0 +ID=nevermine:TotemFroster@luck=0 +ID=nevermine:CandyCorn@luck=0 +ID=nevermine:GingerbreadWing@luck=0 +ID=nevermine:GingerbreadCookie@luck=0 +ID=nevermine:SourCandy@luck=0 +ID=nevermine:SourGummy@luck=0 +ID=nevermine:SourPop@luck=0 +ID=nevermine:PeppermintCandy@luck=0 +ID=nevermine:SpearmintCandy@luck=0 +ID=nevermine:CandyCane@luck=0 +ID=nevermine:AncientTeleporterBlueprint@luck=0 +ID=nevermine:GolderBomber@luck=0 +ID=nevermine:GoldenFury@luck=0 +ID=nevermine:GoldBringer@luck=0 +ID=nevermine:LightSpark@luck=0 +ID=nevermine:LightBlaster@luck=0 +ID=nevermine:LightIron@luck=0 +ID=nevermine:Predator@luck=0 +ID=nevermine:Predigun@luck=0 +ID=nevermine:PredatorianBlaster@luck=0 +ID=nevermine:MoonMaker@luck=0 +ID=nevermine:MoonCannon@luck=0 +ID=nevermine:MoonDestroyer@luck=0 +ID=nevermine:FireflyStaff@luck=0 + +/YouTuber Armor +ID=youtubers:TDMBoots@luck=0 +ID=youtubers:TDMHelm@luck=0 +ID=youtubers:TDMLegs@luck=0 +ID=youtubers:TDMPlate@luck=0 +ID=youtubers:WoodBoots@luck=0 +ID=youtubers:WoodHelm@luck=0 +ID=youtubers:WoodLegs@luck=0 +ID=youtubers:WoodPlate@luck=0 +ID=youtubers:TrueMUBoots@luck=0 +ID=youtubers:TrueMUHelm@luck=0 +ID=youtubers:TrueMULegs@luck=0 +ID=youtubers:TrueMUPlate@luck=0 +ID=youtubers:SuperGirlyGamerPlate@luck=0 +ID=youtubers:SuperGirlyGamerLegs@luck=0 +ID=youtubers:SuperGirlyGamerHelm@luck=0 +ID=youtubers:SuperGirlyGamerBoots@luck=0 +ID=youtubers:BudderPlate@luck=0 +ID=youtubers:BudderLegs@luck=0 +ID=youtubers:BudderHelm@luck=0 +ID=youtubers:BudderBoots@luck=0 +ID=youtubers:InfinaBudderPlate@luck=0 +ID=youtubers:InfinaBudderLegs@luck=0 +ID=youtubers:InfinaBudderHelm@luck=0 +ID=youtubers:InfinaBudderBoots@luck=0 +ID=youtubers:PatArmorBoots@luck=0 +ID=youtubers:PatArmorHelm@luck=0 +ID=youtubers:PatArmorLegs@luck=0 +ID=youtubers:PatArmorPlate@luck=0 +ID=youtubers:XisumaBoots@luck=0 +ID=youtubers:XisumaHelm@luck=0 +ID=youtubers:XisumaLegs@luck=0 +ID=youtubers:XisumaPlate@luck=0 +ID=youtubers:ReinforcedBudderPlate@luck=0 +ID=youtubers:ReinforcedBudderLegs@luck=0 +ID=youtubers:ReinforcedBudderHelm@luck=0 +ID=youtubers:ReinforcedBudderBoots@luck=0 +ID=youtubers:MumboPlate@luck=0 +ID=youtubers:MumboLegs@luck=0 +ID=youtubers:MumboHelm@luck=0 +ID=youtubers:MumboBoots@luck=0 +ID=youtubers:ModPlate@luck=0 +ID=youtubers:ModLegs@luck=0 +ID=youtubers:ModHelm@luck=0 +ID=youtubers:ModBoots@luck=0 +ID=youtubers:LuigiPlate@luck=0 +ID=youtubers:LuigiLegs@luck=0 +ID=youtubers:LuigiHelm@luck=0 +ID=youtubers:LuigiBoots@luck=0 +ID=youtubers:LizardPlate@luck=0 +ID=youtubers:LizardLegs@luck=0 +ID=youtubers:LizardHelm@luck=0 +ID=youtubers:LizardBoots@luck=0 +ID=youtubers:JoebuzPlate@luck=0 +ID=youtubers:JoebuzLegs@luck=0 +ID=youtubers:JoebuzHelm@luck=0 +ID=youtubers:JoebuzBoots@luck=0 +ID=youtubers:BiffaPlate@luck=0 +ID=youtubers:BiffaLegs@luck=0 +ID=youtubers:BiffaHelm@luck=0 +ID=youtubers:BiffaBoots@luck=0 +ID=youtubers:MarioPlate@luck=0 +ID=youtubers:MarioLegs@luck=0 +ID=youtubers:MarioHelm@luck=0 +ID=youtubers:MarioBoots@luck=0 + +/YouTuber Weapons +ID=youtubers:AtlantianSword@luck=0 +ID=youtubers:BudderSword@luck=0 +ID=youtubers:EpicPreportionssword@luck=0 +ID=youtubers:crazycraftsword@luck=0 + +/YouTuber Misc +ID=youtubers:speedkey@luck=0 +ID=youtubers:wetBeacon@luck=0 +ID=youtubers:bank@luck=0 +ID=youtubers:ItemMoney0@luck=0 +ID=youtubers:ItemMoney1@luck=0 +ID=youtubers:ItemMoney10@luck=0 +ID=youtubers:ItemMoney11@luck=0 +ID=youtubers:ItemMoney12@luck=0 +ID=youtubers:ItemMoney2@luck=0 +ID=youtubers:ItemMoney3@luck=0 +ID=youtubers:ItemMoney4@luck=0 +ID=youtubers:ItemMoney5@luck=0 +ID=youtubers:ItemMoney6@luck=0 +ID=youtubers:ItemMoney7@luck=0 +ID=youtubers:ItemMoney8@luck=0 +ID=youtubers:ItemMoney9@luck=0 +ID=youtubers:ItemJetPack@luck=0 +ID=youtubers:InsanityHoe@luck=0 +ID=youtubers:ItemBankCard@luck=0 +ID=youtubers:Gem@luck=0 +ID=youtubers:InfinaBudder@luck=0 +ID=youtubers:CluckTool@luck=0 +ID=youtubers:ButterBlock@luck=0 +ID=youtubers:AdvPearl@luck=0 + +/Can’t Believe It’s Budder +ID=youtubers:Budder,NBTTag=(display=(Name=#6Can't Believe It's Budder))@luck=0 + +/Portable Toilet +ID=cfm:itemtoilet,NBTTag=(display=(Name=#9#lPortable Toilet))@luck=-1 + + +/========== GROUPS ========== + +/message with C.R.E.E.P Egg +group(type=command,ID="/tell #playerName Listen to me, #playerName. You are in grave danger. You need to run. Now. Take this Egg, it is your only hope.",commandSender="jtrent238";ID=nevermine:CreepEgg,NBTTag=(display=(Name="#cOnly Hope")))@luck=-1; + +/C.R.E.E.P EGG +group:1(ID=nevermine:CreepEgg,NBTTag=(display=(Name="#a#lS.P.A.W.N. #e#lM.E")))@luck=-1 + +/Random Funny Stuff +group:1(ID=nevermine:TreatBag,NBTTag=(display=(Name="#b#lWhat's Inside?")))@luck=0 +group:1(ID=nevermine:Cup,NBTTag=(display=(Name="#6#lWhat A Cup?")))@luck=0 +group:1(ID=nevermine:MetalTub,NBTTag=(display=(Name="#6#lAm I Supposed To Take A Bath?")))@luck=0 +group:1(ID=nevermine:IngotRustedIron,NBTTag=(display=(Name="#6#lHow Useless!")))@luck=0 +group:1(ID=nevermine:NatureMelonSlice,NBTTag=(display=(Name="#a#lSeems Natural!")))@luck=0 +group:1(ID=nevermine:TreasureBox,NBTTag=(display=(Name="#6#lI Just Found Treasure!")))@luck=0 +group:1(ID=nevermine:WeaponsBox,NBTTag=(display=(Name="#6#lIs There A Weapon Inside?")))@luck=0 +group:1(ID=nevermine:CreepoidGreatblade,NBTTag=(display=(Name="#2#lCreepy!")))@luck=0 +group:1(ID=nevermine:ExplosiveGem,NBTTag=(display=(Name="#8#lI Don't Want To Explode!")))@luck=0 + +/random stuff +group(ID=#random-0-5000,amount=#random-100-100,reinitialize=true)@luck=1 + +/========== ENTITIES ========== + +/Lucky Draggy, Craggy, Waggy, Shaddy, Spraggy +group:1(type=entity,ID=nevermine.Waggy,NBTTag=(CustomName="#e#lLucky Waggy",CustomNameVisible=true);type=entity,ID=nevermine.Craggy,NBTTag=(CustomName="#e#lLucky Craggy",CustomNameVisible=true);type=entity,ID=nevermine.Draggy,NBTTag=(CustomName="#e#lLucky Draggy",CustomNameVisible=true);type=entity,ID=nevermine.Shaddy,NBTTag=(CustomName="#e#lLucky Shaddy",CustomNameVisible=true);type=entity,ID=nevermine.Spraggy,NBTTag=(CustomName="#e#lLucky Spraggy",CustomNameVisible=true))@luck=0 + +/TRENT the decked ENT +group(type=entity,ID=nevermine.Ent,NBTTag=(Equipment=[(id=diamond_sword,Count=1,Damage=0,tag=(ench=#luckySwordEnchantments)),(id=diamond_helmet,Count=1,Damage=0,tag=(ench=#luckyHelmetEnchantments)),(id=diamond_chestplate,Count=1,Damage=0,tag=(ench=#luckyChestplateEnchantments)),(id=diamond_leggings,Count=1,Damage=0,tag=(ench=#luckyLeggingsEnchantments)),(id=diamond_boots,Count=1,Damage=0,tag=(ench=#luckyBootsEnchantments))],CustomName="#a#lTRENT",CustomNameVisible=true))@luck=-2 + +/Omnibob +group(type=difficulty,ID=normal;type=entity,ID=Zombie,NBTTag=(Equipment=[(id=nevermine:PlutonScythe,Count=1,Damage=0,tag=(ench=#luckySwordEnchantments)),(id=nevermine:OmniHelmet,Count=1,Damage=0,tag=(ench=#luckyHelmetEnchantments)),(id=nevermine:OmniChestplate,Count=1,Damage=0,tag=(ench=#luckyChestplateEnchantments)),(id=nevermine:OmniLeggings,Count=1,Damage=0,tag=(ench=#luckyLeggingsEnchantments)),(id=nevermine:OmniBoots,Count=1,Damage=0,tag=(ench=#luckyBootsEnchantments))],CustomName="#e#lOmni Bob",CustomNameVisible=true))@luck=-2 + +/C.R.E.E.P. +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Creep)@chance=0.1@luck=-2 + +/Other Creepers +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Creeperlock)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.CaveCreepoid)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.BoneCreeper)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.WingedCreeper)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Creepird)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.KingCreeper)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.MagicalCreeper)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Creepuple)@chance=0.1@luck=-2 + +/stacked C.R.E.E.P +type=entity,ID=nevermine.Creep,NBTTag=(Riding=(id=nevermine.Creep,Riding=(id=nevermine.Creep,Riding=(id=nevermine.Creep,Riding=(id=nevermine.Creep,Riding=(id=nevermine.Creep,Riding=(id=nevermine.Creep,Riding=(id=nevermine.Creep))))))))@luck=0 + +/stacked Creep Banker and CreepCow +type=entity,ID=nevermine.CreepBanker,NBTTag=(Riding=(id=nevermine.CreepCow,Riding=(id=nevermine.CreepCow,Riding=(id=nevermine.CreepCow,Riding=(id=nevermine.CreepCow,Riding=(id=nevermine.CreepCow,Riding=(id=nevermine.CreepCow,Riding=(id=nevermine.CreepCow))))))))@luck=0 + +/Clowns +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Kranky)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Jumbo)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Stitches)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Chocko)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Koko)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Bobo)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Tipsy)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Snappy)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Sticky)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Gyro)@chance=0.1@luck=-2 + + +/Chargers +group(type=difficulty,ID=normal;type=entity,ID=nevermine.SwampCharger)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.VoidCharger)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.DesertCharger)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.SnowCharger)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.GhostlyCharger)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.SeaCharger)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.HillCharger)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Charger)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.KingCharger)@chance=0.1@luck=-2 + +/Giants +group(type=difficulty,ID=normal;type=entity,ID=nevermine.StoneGiant)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.IceGiant)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.SandGiant)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.WoodGiant)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.LeafyGiant)@chance=0.1@luck=-2 + +/StrangeThings +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Modulo)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Vertebron)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Roloscope)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Irkling)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Walker)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Orbling)@chance=0.1@luck=-2 + +/Ent with Goblins +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Ent,adjustHeight=1;type=entity,ID=nevermine.Goblin,amount=25,posY=#bPosY+#random-0-2,scatterOffset=0-1,adjustHeight=1,reinitialize=true)@luck=-1 + +/Ursa with Ghost +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Ursa,adjustHeight=1;type=entity,ID=nevermine.Ghost,amount=25,posY=#bPosY+#random-0-2,scatterOffset=0-1,adjustHeight=1,reinitialize=true)@luck=-1 + +/GingerBread Man With Ginger Bird +group(type=difficulty,ID=normal;type=entity,ID=nevermine.GingerbreadMan,adjustHeight=1;type=entity,ID=nevermine.Gingerbird,amount=25,posY=#bPosY+#random-0-2,scatterOffset=0-1,adjustHeight=1,reinitialize=true)@luck=-1 + +/Cherry Blaster With Cherry Barrager +group(type=difficulty,ID=normal;type=entity,ID=nevermine.CherryBlaster,adjustHeight=1;type=entity,ID=nevermine.CherryBarrager,amount=25,posY=#bPosY+#random-0-2,scatterOffset=0-1,adjustHeight=1,reinitialize=true)@luck=-1 + +/Spearmint Slug With Peppermint Slug +group(type=difficulty,ID=normal;type=entity,ID=nevermine.SpearmintSlug,adjustHeight=1;type=entity,ID=PeppermintSlug,amount=25,posY=#bPosY+#random-0-2,scatterOffset=0-1,adjustHeight=1,reinitialize=true)@luck=-1 + +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Creeperlock)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.CaveCreepoid)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.BoneCreeper)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.WingedCreeper)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Creepird)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.KingCreeper)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.MagicalCreeper)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=nevermine.Creepuple)@chance=0.1@luck=-2 + +/C.R.E.E.P. Instakill +group(type=entity,ID=nevermine.creep,NBTTag=(HealF=0);type=message,ID=#aThis Lucky Block insta-killed #2#lC.R.E.E.P.#r!)@luck=2 + +/Automaton Time +type=entity,ID=nevermine.Automaton,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 + +/MOBS +type=entity,ID=nevermine.Halycon,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.BoneCreature,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Hellspot,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Embrake,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Brute,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Everbeast,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Trickster,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Shade,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.MotherVoidWalker,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.VoidWalker,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Ghost,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.FacelessRunner,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Skellox,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Scrubby,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.NightWatcher,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.DarkBeast,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.BombCarrier,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Ursa,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Urka,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Yeti,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.PolarUrsa,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Hunch,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Shadow,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Chimera,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Rammerhead,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Amphibiyte,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.SandGolem,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Muchopede,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.SeaTroll,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.SeaCharger,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.HillCharger,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Stinger,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.BushBaby,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Chomper,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Goblin,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Ent,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Sasquatch,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Charger,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Cyclops,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Spinoledon,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.RockRider,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.NethengeicWither,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.LittleBam,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.KingBamBamBam,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Smash,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Compeer,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Penguin,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Dyrehorn,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Megatherium,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Sabretooth,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.GiantSlug,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Tortione,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Terradon,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Diocus,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Iosaur,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Slimer,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Occulent,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.FleshEater,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Fiend,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Distorter,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Apparition,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Volar,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.LivingFungi,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.HidingFungi,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Corby,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Corallus,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Muckopede,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Bloodsucker,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.WebReaper,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Clown,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Eeo,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.EeoRunning,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.SpiritGuardian,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.SpiritProtector,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Fungik,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Fungback,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.UndeadTroll,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Phantom,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Banshee,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.NightmareSpider,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.RunicGolem,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Kaiyu,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.GorbCitizen,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.GorbEngineer,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.GorbArmsDealer,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.ConstructRange,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.ConstructStrength,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.ConstructResistance,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.ConstructFlight,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.ConstructMind,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.ConstructTerror,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.ConstructSpeed,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.StoneGiant,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.IceGiant,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.SandGiant,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.WoodGiant,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.LeafyGiant,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.FakeZorp,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Urv,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.SeaSpider,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.SeaSkeleton,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Triclops,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.ReaperTwins,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.HeadlessDestroyer,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Fischer,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Modulo,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Vertebron,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Roloscope,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Irkling,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Walker,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 +type=entity,ID=nevermine.Orbling,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=-1 + +/lucky LottoMan +type=entity,ID=nevermine.LottoMan,NBTTag=(Offers=(Recipes=[(buy=(id=diamond,Count=#random-20-25),sell=(id=golden_sword,Count=1,tag=(ench=#luckySwordEnchantments,display=(Name="#e#lLucky Sword"))),maxUses=1),(buy=(id=diamond,Count=#random-20-25),sell=(id=bow,Count=1,tag=(ench=#luckyBowEnchantments,display=(Name="#e#lLucky Bow"))),maxUses=1),(buy=(id=diamond,Count=#random-10-15),sell=(id=fishing_rod,Count=1,tag=(ench=#luckyFishingRodEnchantments,display=(Name="#e#lLucky Fishing Rod"))),maxUses=1),(buy=(id=diamond,Count=#random-10-15),sell=(id=potion,Damage=8195,Count=1,tag=(CustomPotionEffects=#luckyPotionEffects,display=(Name="#e#lLucky Potion"))),maxUses=1),(buy=(id=diamond,Count=#random-7-12),sell=(id=potion,Damage=16428,Count=1,tag=(CustomPotionEffects=#unluckyPotionEffects,display=(Name="#e#lUnlucky Potion"))),maxUses=1)]),CustomName="#e#lLucky LottoMan",CustomNameVisible=true)@luck=1 +type=entity,ID=nevermine.LottoMan,NBTTag=(Offers=(Recipes=[(buy=(id=diamond,Count=#random-12-17),sell=(id=golden_helmet,Count=1,tag=(ench=#luckyHelmetEnchantments,display=(Name="#e#lLucky Helmet"))),maxUses=1),(buy=(id=diamond,Count=#random-20-25),sell=(id=golden_chestplate,Count=1,tag=(ench=#luckyChestplateEnchantments,display=(Name="#e#lLucky Chestplate"))),maxUses=1),(buy=(id=diamond,Count=#random-15-20),sell=(id=golden_leggings,Count=1,tag=(ench=#luckyLeggingsEnchantments,display=(Name="#e#lLucky Leggings"))),maxUses=1),(buy=(id=diamond,Count=#random-12-17),sell=(id=golden_boots,Count=1,tag=(ench=#luckyBootsEnchantments,display=(Name="#e#lLucky Boots"))),maxUses=1)]),CustomName="#e#lLucky LottoMan",CustomNameVisible=true)@luck=1 +type=entity,ID=nevermine.LottoMan,NBTTag=(Offers=(Recipes=[(buy=(id=diamond,Count=#random-10-15),sell=(id=nevermine:GoofyShovel,Count=1,tag=(ench=#luckyToolEnchantments,display=(Name="#e#lLucky Shovel"))),maxUses=1),(buy=(id=diamond,Count=#random-15-20),sell=(id=nevermine:Gemcracker,Count=1,tag=(ench=#luckyToolEnchantments,display=(Name="#e#lLucky Pickaxe"))),maxUses=1),(buy=(id=diamond,Count=#random-15-20),sell=(id=nevermine:TrollBasherAxe,Count=1,tag=(ench=#luckyAxeEnchantments,display=(Name="#e#lLucky Axe"))),maxUses=1),(buy=(id=diamond,Count=#random-10-15),sell=(id=golden_hoe,Count=1,tag=(ench=#luckyToolEnchantments,display=(Name="#e#lLucky Hoe"))),maxUses=1)]),CustomName="#e#lLucky LottoMan",CustomNameVisible=true)@luck=1 + +/launched expbottles +type=entity,ID=launched_expbottle,amount=#random-16-32@luck=2 +type=entity,ID=launched_expbottle,amount=#random-100-500@luck=2 + +/launched tnt +type=entity,ID=launched_tnt,amount=15@luck=-2 +type=entity,ID=launched_tnt,amount=1000@luck=-2 + +/ChocolateQuest Mobs +group(type=difficulty,ID=normal;type=entity,ID=chocolateQuest.specterBoss)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=chocolateQuest.SummonedUndead)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=chocolateQuest.abyssWalkerBoss)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=chocolateQuest.bull)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=chocolateQuest.Referee)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=chocolateQuest.gremlin)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=chocolateQuest.pigzombie)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=chocolateQuest.minotaur)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=chocolateQuest.spiderBoss)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=chocolateQuest.greenDragon)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=cchocolateQuest.turtleBoss)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=cchocolateQuest.Lich)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=cchocolateQuest.pirate)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=cchocolateQuest.necromancer)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=cchocolateQuest.giantZombie)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=cchocolateQuest.spaceWarrior)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=cchocolateQuest.mummy)@chance=0.1@luck=-2 +group(type=difficulty,ID=normal;type=entity,ID=cchocolateQuest.armoredZombie)@chance=0.1@luck=-2 + +/Epic Proportions Mobs +group(type=difficulty,ID=normal;type=entity,ID=youtubers.Bomby)@chance=0.1@luck=-2 + +/ +/========== STRUCTURES ========== + +/wishing wells +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#eYour wish came true! (If you like Realmstones)\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;ID=nevermine:RealmstoneAbyss,amount=12,posY='#'bPosY+10,scatterOffset=2-2;ID=nevermine:RealmstoneAncientCavern,amount=12,posY='#'bPosY+10,scatterOffset=2-2;ID=nevermine:RealmstoneBarathos,amount=12,posY='#'bPosY+10,scatterOffset=2-2)"]))@luck=1 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#eYour wish came true! (If you like Crystals)\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;ID=nevermine:CrystalsWhite,amount=12,posY='#'bPosY+10,scatterOffset=2-2;ID=nevermine:CrystalsGreen,amount=12,posY='#'bPosY+10,scatterOffset=2-2;ID=nevermine:CrystalsYellow,amount=12,posY='#'bPosY+10,scatterOffset=2-2)"]))@luck=1 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#eYour wish came true! (If you like Crystals)\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;ID=nevermine:CrystalsRed,amount=12,posY='#'bPosY+10,scatterOffset=2-2;ID=nevermine:CrystalsBlue,amount=12,posY='#'bPosY+10,scatterOffset=2-2;ID=nevermine:CrystalsPurple,amount=12,posY='#'bPosY+10,scatterOffset=2-2)"]))@luck=1 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=launched_tnt,posY='#'bPosY+7,amount=60)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Creep,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.KingCharger,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Bugeye,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.HeadlessHunter,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Orbiter,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Grunt,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Horndron,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Natura,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Furlion,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Wickett,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Gyro,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Stitches,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Jumbo,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Kranky,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Bobo,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Tipsy,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Snappy,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Sticky,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Dicer,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Skipper,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Boneback,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Hellcat,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Blissard,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.GhostlyNightReaper,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.GhostlyGoblin,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.GhostlyBugeye,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.GhostlySasquatch,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.GhostlyCyclops,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.GhostlyCharger,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Jawe,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.AncientGolem,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Bloodmist,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Anemia,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName nevermine:GoldCoin 1 0 {display:{Name:\"#6Gold Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=nevermine.Linger,posY='#'bPosY+7,amount=20)"]))@luck=-2 + + + + +/falling blocks (Spawners) +type=falling_block,ID=nevermine:HiveSpawner@luck=-1 +type=falling_block,ID=nevermine:spawnerDawnlight@luck=-1 +type=falling_block,ID=nevermine:spawnerFade@luck=-1 +type=falling_block,ID=nevermine:spawnerInmateX@luck=-1 +type=falling_block,ID=nevermine:spawnerInmateY@luck=-1 +type=falling_block,ID=nevermine:spawnerPodPlant@luck=-1 +type=falling_block,ID=nevermine:spawnerRunicGuardian@luck=-1 +type=falling_block,ID=nevermine:spawnerGingerbird@luck=-1 +type=falling_block,ID=nevermine:spawnerGingerbreadMan@luck=-1 +type=falling_block,ID=nevermine:spawnerFungock@luck=-1 + +/falling blocks (Other) +type=falling_block,ID=nevermine:RuneRandomizer@luck=0 +type=falling_block,ID=nevermine:Deepcase@luck=0 +type=falling_block,ID=nevermine:DecloggingTable@luck=0 +type=falling_block,ID=nevermine:CandyBlock@luck=0 +type=falling_block,ID=nevermine:BloodSpikes@luck=0 +type=falling_block,ID=nevermine:IroCrate@luck=0 +type=falling_block,ID=nevermine:HauntingTable@luck=0 +type=falling_block,ID=nevermine:GuardianAltar@luck=0 +type=falling_block,ID=nevermine:enhancerDamage@luck=0 +type=falling_block,ID=nevermine:enhancerDurability@luck=0 +type=falling_block,ID=nevermine:enhancerSpeed@luck=0 +type=falling_block,ID=nevermine:enhancerWeight@luck=0 +type=falling_block,ID=nevermine:enhancerMagical@luck=0 +type=falling_block,ID=nevermine:enhancerResistance@luck=0 +type=falling_block,ID=nevermine:carvedRune5@luck=0 +type=falling_block,ID=nevermine:creepCrystal@luck=0 +type=falling_block,ID=nevermine:tea@luck=0 +type=falling_block,ID=nevermine:ancientRock@luck=0 + + +/falling blocks (misc) +type=falling_block,ID=youtubers:wetBeacon@luck=-1 + +/budder pole +group(type=falling_block,ID=youtubers:ButterBlock,damage=14;type=falling_block,ID=youtubers:ButterBlock,damage=1,posY=#bPosY+10;type=falling_block,ID=youtubers:ButterBlock,damage=4,posY=#bPosY+20;type=falling_block,ID=youtubers:ButterBlock,damage=5,posY=#bPosY+30;type=falling_block,ID=youtubers:ButterBlock,damage=3,posY=#bPosY+40;type=falling_block,ID=youtubers:ButterBlock,damage=11,posY=#bPosY+50;type=falling_block,ID=youtubers:ButterBlock,damage=10,posY=#bPosY+60;type=falling_block,ID=youtubers:ButterBlock,damage=2,posY=#bPosY+70;type=falling_block,ID=youtubers:ButterBlock,damage=6,posY=#bPosY+80;type=falling_block,ID=youtubers:ButterBlock,posY=#bPosY+90)@luck=2 + + +/explosion Damage 0 +group(type=difficulty,ID=normal;type=structure,ID=explosion,damage=0)@luck=-2 + +/chests +type=structure,ID=chest,NBTTag=(items=[(id=youtubers:ButterBlock,maxAmount=100,weight=100)],min=8,max=100)@luck=2 + +/wishing wells +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName gold_nugget 1 0 {display:{Name:\"#6Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#eYour wish came true! (If you like Lucky Blocks)\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;ID=lucky:lucky_block,amount=128,posY='#'bPosY+10,scatterOffset=2-2;ID=lucky:lucky_block,amount=64,posY='#'bPosY+10,scatterOffset=2-2;ID=lucky:lucky_block,amount=32,posY='#'bPosY+10,scatterOffset=2-2)"]))@luck=1 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName gold_nugget 1 0 {display:{Name:\"#6Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=launched_tnt,posY='#'bPosY+7,amount=20)"]))@luck=-2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName gold_nugget 1 0 {display:{Name:\"#6Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true! (Have Fun With 2000 TNT)\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=launched_tnt,posY='#'bPosY+7,amount=2000)"]))@luck=-2 + + + +/========== MONSTER APOCALYPSE ========== + +/HeadlessDestroyer apocalypse +group(type=entity,ID=nevermine.HeadlessDestroyer,amount=#random-5-10,scatterOffset=8-10,adjustHeight=2,reinitialize=true)@luck=-2 + +/========== ENCHANTED ITEMS ========== + +/aoa lucky block book +ID=written_book,NBTTag=(author="jtrent238",title="#b#lAdvent of Ascension Lucky Block Book",pages=["#l#nThe #bAdvent of Ascension Lucky Block#r\n\nThe Lucky Block (#ofortunus blockus#r) was brought to Minecraft by the gods to reward the good and punish the evil.","The player's true self will be revealed after mining this block.\n\nSome fear it, and others have been made rich by it.","You must mine it and be prepared for whatever will follow.\n\nIt is not luck.\n\nIt is #bdestiny."])@luck=0 +/lucky sword +ID=nevermine:GodsGrateBlade,NBTTag=(ench=#luckySwordEnchantments,display=(Name="#e#lLucky Sword"))@luck=2 +/lucky bow +ID=nevermine:SunshineBow,NBTTag=(ench=#luckyBowEnchantments,display=(Name="#e#lLucky Bow"))@luck=2 +/lucky tools +group:#random-1-2(ID=nevermine:GoofyShovel,NBTTag=(ench=#luckyToolEnchantments,display=(Name="#e#lLucky Shovel"));ID=nevermine:GoofyPickaxe,NBTTag=(ench=#luckyToolEnchantments,display=(Name="#e#lLucky Pickaxe"));ID=nevermine:GoofyAxe,NBTTag=(ench=#luckyAxeEnchantments,display=(Name="#e#lLucky Axe"))@luck=2 +/lucky armor +group:#random-1-2(ID=nevermine:ArchaicHelmet,NBTTag=(ench=#luckyHelmetEnchantments,display=(Name="#e#lLucky Helmet"));ID=nevermine:ArchaicChestplate,NBTTag=(ench=#luckyChestplateEnchantments,display=(Name="#e#lLucky Chestplate"));ID=nevermine:ArchaicLeggings,NBTTag=(ench=#luckyLeggingsEnchantments,display=(Name="#e#lLucky Leggings"));ID=nevermine:ArchaicBoots,NBTTag=(ench=#luckyBootsEnchantments,display=(Name="#e#lLucky Boots")))@luck=2 +/lucky potion Mystery +ID=potion,damage=8195,NBTTag=(CustomPotionEffects=#luckyPotionEffects,display=(Name="#e#lMystery Potion"))@luck=2 +/unlucky potion Mystery +ID=potion,damage=16428,NBTTag=(CustomPotionEffects=#unluckyPotionEffects,display=(Name="#e#lMystery Potion"))@luck=1 + +/==========Messages========== +type=message,ID=#2Visit https://youtube.com/thejtrent238@luck=0 +type=message,ID=#2Made By jtrent238@luck=0 +type=message,ID=#k0000000000000000000000000000000000000000000000000000@luck=0 +type=message,ID=Object Successfully Summoned@luck=0 +type=message,ID=#b#lIs That A Cracker?@luck=0 +type=message,ID=#4All Chests Were Cleared@luck=-1 +type=message,ID=#4Your Enderchest Was Cleared@luck=-1 +type=message,ID=#4Your Bed Just Exploded@luck=-1 +/Herobrine +type=message,ID=#aHerobrine joined the game@luck=-1 +type=message,ID=#aHerobrine left the game@luck=-1 +/jtrent238 +type=message,ID=#ajtrent238 joined the game@luck=-1 +type=message,ID=#ajtrent238 left the game@luck=-1 + + +//////////=====================================////////// +//////////============ LuckyBlocks ============////////// +//////////=====================================////////// + +/========== TOOLS & ARMOR ========== + +/all wood, stone and gold tools +group(ID=wooden_sword;ID=wooden_shovel;ID=wooden_pickaxe;ID=wooden_axe;ID=wooden_hoe)@luck=0 +group(ID=stone_sword;ID=stone_shovel;ID=stone_pickaxe;ID=stone_axe;ID=stone_hoe)@luck=0 +group(ID=golden_sword;ID=golden_shovel;ID=golden_pickaxe;ID=golden_axe;ID=golden_hoe)@luck=1 +/2-3 iron tools +group:#random-2-3(ID=iron_shovel;ID=iron_pickaxe;ID=iron_axe;ID=iron_sword;ID=iron_hoe)@luck=1 +/1-2 diamond tools +group:#random-1-2(ID=diamond_sword;ID=diamond_shovel;ID=diamond_pickaxe;ID=diamond_axe;ID=diamond_hoe)@luck=2 +/all leather and gold armor +group(ID=leather_helmet;ID=leather_chestplate;ID=leather_leggings;ID=leather_boots)@luck=0 +group(ID=golden_helmet;ID=golden_chestplate;ID=golden_leggings;ID=golden_boots;ID=golden_horse_armor)@luck=1 +/2-3 chain and iron armor +group:#random-2-3(ID=chainmail_helmet;ID=chainmail_chestplate;ID=chainmail_leggings;ID=chainmail_boots)@luck=2 +group:#random-2-3(ID=iron_helmet;ID=iron_chestplate;ID=iron_leggings;ID=iron_boots;ID=iron_horse_armor)@luck=1 +/1-2 diamond armor +group:#random-1-2(ID=diamond_helmet;ID=diamond_chestplate;ID=diamond_leggings;ID=diamond_boots;ID=diamond_horse_armor)@luck=2 +/all horse armor +group(ID=iron_horse_armor;ID=golden_horse_armor;ID=diamond_horse_armor)@luck=2 +/bow and arrows +group(ID=bow;ID=arrow,amount=#random-16-32)@luck=1 + +/========== BLOCKS ========== + +ID=sponge@luck=0 +ID=tnt,amount=8@luck=1 +ID=obsidian,amount=14@luck=1 +ID=enchanting_table@luck=2 +ID=end_portal_frame,amount=#random-2-6@luck=2 +ID=dragon_egg@luck=1 +ID=ender_chest,amount=2@luck=0 +ID=beacon@luck=2 +ID=dropper,amount=8@luck=0 +ID=hay_block,amount=8@luck=0 + +/========= ITEMS ========== + +ID=gold_ingot,amount=#random-8-16@luck=1 +ID=stick@luck=-1 +ID=painting,amount=4@luck=0 +ID=saddle,amount=2@luck=0 +ID=cake@luck=0 +ID=rotten_flesh@luck=-1 +ID=nether_star@luck=2 +ID=red_flower,NBTTag=(display=(Name="#cRomantic Rose"))@luck=-1 + +/========== GROUPS ========== + +/bookshelves and books +group(ID=bookshelf,amount=#random-6-12;ID=book,amount=#random-8-16)@luck=0 +/pumpkins and jack o'lanterns +group(ID=pumpkin,amount=#random-8-16;ID=lit_pumpkin,amount=#random-8-16)@luck=0 +/golden apples +group(ID=golden_apple,amount=#random-2-4;ID=golden_apple,amount=#random-1-2,damage=1)@luck=2 +/buckets +group(ID=bucket,amount=#random-1-2;ID=water_bucket,amount=#random-1-2;ID=lava_bucket,amount=#random-1-2;ID=milk_bucket,amount=#random-1-2)@luck=0 +/meat (raw and cooked) +group:1(group(ID=porkchop,amount=#random-8-16;ID=cooked_porkchop,amount=#random-4-8);group(ID=fish,amount=#random-8-16;ID=cooked_fished,amount=#random-4-8);group(ID=beef,amount=#random-8-16;ID=cooked_beef,amount=#random-4-8);group(ID=chicken,amount=#random-8-16;ID=cooked_chicken,amount=#random-4-8))@luck=1 +/vegetable food (carrots, potatoes, pumpkin pie) +group:1(group(ID=carrot,amount=#random-8-16;ID=golden_carrot,amount=#random-4-8);group(ID=potato,amount=#random-8-16;ID=baked_potato,amount=#random-4-8;ID=poisonous_potato,amount=#random-2-4);group(ID=beef,amount=#random-8-16;ID=cooked_beef,amount=#random-4-8);group(ID=pumpkin_pie,amount=#random-6-12))@luck=1 +/ender pearls and eyes +group(ID=ender_pearl,amount=10;ID=ender_eye,amount=5)@luck=2 +/potions +ID=potion,damage=#randomPotionDamage,amount=#random-4-8,reinitialize=true@luck=1 +/spawn eggs +ID=spawn_egg,damage=#randomSpawnEggDamage,amount=#random-4-8,reinitialize=true@luck=1 +/heads +ID=skull,damage=#random-0-4,amount=#random-1-3,reinitialize=true@luck=0 +/jukebox music discs +group(ID=jukebox;ID=#random-2256-2267,amount=#random-1-3,reinitialize=true)@luck=1 +/brewing +group(ID=ender_pearl,amount=#random-1-3;ID=blaze_rod,amount=#random-1-3;ID=ghast_tear,amount=#random-1-3;ID=gold_nugget,amount=#random-1-3;ID=nether_wart,amount=#random-1-3;ID=spider_eye,amount=#random-1-3;ID=fermented_spider_eye,amount=#random-1-3;ID=blaze_powder,amount=#random-1-3;ID=magma_cream,amount=#random-1-3;ID=ender_eye,amount=#random-1-3;ID=382,amount=#random-1-3;type=particle,ID=2002,damage=3)@luck=2 +/redstone +group(ID=dispenser,amount=#random-2-4;ID=noteblock,amount=1;ID=sticky_piston,amount=#random-2-4;ID=piston,amount=4;ID=tnt,amount=#random-4-6;ID=lever,amount=2;ID=stone_pressure_plate,amount=2;ID=wooden_pressure_plate,amount=2;ID=redstone_torch,amount=8;ID=stone_button,amount=2;ID=trapdoor,amount=2;ID=fence_gate,amount=1;ID=redstone_lamp,amount=4;ID=tripwire_hook,amount=2;ID=wooden_button,amount=2;ID=light_weighted_pressure_plate,amount=1;ID=heavy_weighted_pressure_plate,amount=1;ID=daylight_detector,amount=1;ID=hopper,amount=4;ID=dropper,amount=#random-2-4;ID=wooden_door,amount=1;ID=iron_door,amount=1;ID=redstone,amount=#random-32-64;ID=repeater,amount=8;ID=comparator,amount=2;type=particle,ID=2002,damage=9)@luck=2 +/colorful +group(group:1(ID=wool,damage=#random-0-15,amount=#random-32-64,reinitialize=true;ID=stained_hardened_clay,damage=#random-0-15,amount=#random-32-64,reinitialize=true;ID=dye,damage=#random-0-15,amount=#random-32-64,reinitialize=true);type=particle,ID=2002,damage=#randomPotionEffect,amount=20,reinitialize=true)@luck=1 +/iron, gold, diamond, emerald with fireworks +group(ID=iron_ingot,amount=#random-8-16;ID=gold_ingot,amount=#random-8-16;ID=diamond,amount=#random-8-16;ID=emerald,amount=#random-8-16;type=entity,ID=fireworks,NBTTag=#randomFireworkRocket,amount=20,scatterOffset=0-2,reinitialize=true)@luck=2 +/quartz +group(ID=stone_slab,damage=7,amount=#random-4-8;ID=quartz_ore,amount=#random-16-32;ID=quartz_block,amount=#random-4-8;ID=quartz_block,damage=1,amount=#random-4-8;ID=quartz_block,damage=2,amount=#random-4-8;ID=quartz_stairs,amount=#random-4-8;ID=quartz,amount=#random-24-32;type=particle,ID=2002,damage=14)@luck=1 +/fish +group(ID=fishing_rod;ID=#random-349-350,damage=#random-0-3,amount=#random-10-20,reinitialize=true)@luck=1 +/message with mushroom +group(type=command,ID="/tell #playerName Listen to me, #playerName. You are in grave danger. You need to run. Now. Take this mushroom, it is your only hope.",commandSender="PlayerInDistress";ID=red_mushroom,NBTTag=(display=(Name="#cOnly Hope")))@luck=-1; +/random jokes +group:1(ID=clock,NBTTag=(display=(Name="You're wasting your time"));ID=fish,damage=2,NBTTag=(display=(Name="I'm funny"));ID=fish,damage=3,NBTTag=(display=(Name="Oooooh!")))@luck=-1 +/flowers +group(ID=red_flower,damage=#random-0-8,amount=64,reinitialize=true)@luck=0 +/enchantment books +ID=enchanted_book,NBTTag=(ench=#randomEnchantment),amount=#random-7-10,reinitialize=true@luck=1 + +/========== ENTITIES ========== + +/passive mobs +group:1(type=entity,ID=Pig,NBTTag=(CustomName="#e#lLucky Pig",CustomNameVisible=true);type=entity,ID=Cow,NBTTag=(CustomName="#e#lLucky Cow",CustomNameVisible=true);type=entity,ID=Chicken,NBTTag=(CustomName="#e#lLucky Chicken",CustomNameVisible=true);type=entity,ID=Sheep,NBTTag=(CustomName="#e#lLucky Sheep",CustomNameVisible=true);type=entity,ID=Squid,NBTTag=(CustomName="#e#lUnlucky Squid",CustomNameVisible=true))@luck=0 +/colored sheep +type=entity,ID=Sheep,NBTTag=(CustomName="#cM#6r. #eR#aa#2i#bn#3b#5o#dw",CustomNameVisible=true,Color=#random-0-15b),scatterOffset=4-4,adjustHeight=2,amount=16,relativeToPlayer=true,reinitialize=true@luck=1 +/lucky eggs +type=entity,ID=luckyegg,amount=20@luck=2 +/launched expbottles +type=entity,ID=launched_expbottle,amount=#random-16-32@luck=2 +/launched tnt +type=entity,ID=launched_tnt,amount=15@luck=-2 +/lightning creeper +group(type=difficulty,ID=hard;type=entity,ID=Creeper;type=entity,ID=lightning)@luck=-2 +/giant +group(type=difficulty,ID=hard;type=entity,ID=Giant)@luck=-2 +/wither +group(type=difficulty,ID=hard;type=entity,ID=WitherBoss)@chance=0.1@luck=-2 +/ghast +group(type=difficulty,ID=hard;type=entity,ID=Ghast)@chance=0.2@luck=-2 +/bob the decked zombie +group(type=difficulty,ID=hard;type=entity,ID=Zombie,NBTTag=(Equipment=[(id=diamond_sword,Count=1,Damage=0,tag=(ench=#luckySwordEnchantments)),(id=diamond_helmet,Count=1,Damage=0,tag=(ench=#luckyHelmetEnchantments)),(id=diamond_chestplate,Count=1,Damage=0,tag=(ench=#luckyChestplateEnchantments)),(id=diamond_leggings,Count=1,Damage=0,tag=(ench=#luckyLeggingsEnchantments)),(id=diamond_boots,Count=1,Damage=0,tag=(ench=#luckyBootsEnchantments))],CustomName="#e#lBob",CustomNameVisible=true))@luck=-2 +/stacked villager and pigs +type=entity,ID=Villager,NBTTag=(Riding=(id=Pig,Riding=(id=Pig,Riding=(id=Pig,Riding=(id=Pig,Riding=(id=Pig,Riding=(id=Pig,Riding=(id=Pig))))))))@luck=0 +/horses +type=entity,ID=EntityHorse,amount=12,scatterOffset=4-4,adjustHeight=2,reinitialize=true,NBTTag=(Type=#random-0-4,Owner=#playerName)@luck=1 +/witch with bats +group(type=difficulty,ID=hard;type=entity,ID=Witch,adjustHeight=1;type=entity,ID=Bat,amount=64,posY=#bPosY+#random-0-2,scatterOffset=0-1,adjustHeight=1,reinitialize=true)@luck=-1 +/huge slime and magma cube +group:1(type=entity,ID=Slime,NBTTag=(Size=10);type=entity,ID=LavaSlime,NBTTag=(Size=10))@luck=-2 +/pet wolves +group(type=particle,ID="heart",amount=20,scatterOffset=0-2,reinitialize=true;type=entity,ID=Wolf,amount=#random-5-10,scatterOffset=3-3,adjustHeight=1,reinitialize=true,NBTTag=(CollarColor=#random-0-14,Owner=#playerName,Sitting=1))@luck=1 +/pet cats +group(type=particle,ID="heart",amount=20,scatterOffset=0-2,reinitialize=true;type=entity,ID=Ozelot,amount=#random-5-10,scatterOffset=3-3,adjustHeight=1,reinitialize=true,NBTTag=(CatType=#random-0-3,Owner=#playerName,Sitting=1))@luck=1 +/lucky villagers +type=entity,ID=Villager,NBTTag=(Offers=(Recipes=[(buy=(id=diamond,Count=#random-20-25),sell=(id=golden_sword,Count=1,tag=(ench=#luckySwordEnchantments,display=(Name="#e#lLucky Sword"))),maxUses=1),(buy=(id=diamond,Count=#random-20-25),sell=(id=bow,Count=1,tag=(ench=#luckyBowEnchantments,display=(Name="#e#lLucky Bow"))),maxUses=1),(buy=(id=diamond,Count=#random-10-15),sell=(id=fishing_rod,Count=1,tag=(ench=#luckyFishingRodEnchantments,display=(Name="#e#lLucky Fishing Rod"))),maxUses=1),(buy=(id=diamond,Count=#random-10-15),sell=(id=potion,Damage=8195,Count=1,tag=(CustomPotionEffects=#luckyPotionEffects,display=(Name="#e#lLucky Potion"))),maxUses=1),(buy=(id=diamond,Count=#random-7-12),sell=(id=potion,Damage=16428,Count=1,tag=(CustomPotionEffects=#unluckyPotionEffects,display=(Name="#e#lUnlucky Potion"))),maxUses=1)]),CustomName="#e#lLucky Villager",CustomNameVisible=true)@luck=1 +type=entity,ID=Villager,NBTTag=(Offers=(Recipes=[(buy=(id=diamond,Count=#random-12-17),sell=(id=golden_helmet,Count=1,tag=(ench=#luckyHelmetEnchantments,display=(Name="#e#lLucky Helmet"))),maxUses=1),(buy=(id=diamond,Count=#random-20-25),sell=(id=golden_chestplate,Count=1,tag=(ench=#luckyChestplateEnchantments,display=(Name="#e#lLucky Chestplate"))),maxUses=1),(buy=(id=diamond,Count=#random-15-20),sell=(id=golden_leggings,Count=1,tag=(ench=#luckyLeggingsEnchantments,display=(Name="#e#lLucky Leggings"))),maxUses=1),(buy=(id=diamond,Count=#random-12-17),sell=(id=golden_boots,Count=1,tag=(ench=#luckyBootsEnchantments,display=(Name="#e#lLucky Boots"))),maxUses=1)]),CustomName="#e#lLucky Villager",CustomNameVisible=true)@luck=1 +type=entity,ID=Villager,NBTTag=(Offers=(Recipes=[(buy=(id=diamond,Count=#random-10-15),sell=(id=golden_shovel,Count=1,tag=(ench=#luckyToolEnchantments,display=(Name="#e#lLucky Shovel"))),maxUses=1),(buy=(id=diamond,Count=#random-15-20),sell=(id=golden_pickaxe,Count=1,tag=(ench=#luckyToolEnchantments,display=(Name="#e#lLucky Pickaxe"))),maxUses=1),(buy=(id=diamond,Count=#random-15-20),sell=(id=golden_axe,Count=1,tag=(ench=#luckyAxeEnchantments,display=(Name="#e#lLucky Axe"))),maxUses=1),(buy=(id=diamond,Count=#random-10-15),sell=(id=golden_hoe,Count=1,tag=(ench=#luckyToolEnchantments,display=(Name="#e#lLucky Hoe"))),maxUses=1)]),CustomName="#e#lLucky Villager",CustomNameVisible=true)@luck=1 + +/========== STRUCTURES ========== + +/traps +type=structure,ID=anvil_trap,relativeToPlayer=true@luck=-2 +type=structure,ID=lava_trap,relativeToPlayer=true@luck=-2 +type=structure,ID=water_trap,relativeToPlayer=true@luck=-2 +type=structure,ID=pit_trap,relativeToPlayer=true@luck=-2 + +/lucky fort and temple +type=structure,ID=fort,relativeToPlayer=true@luck=2 +type=structure,ID=temple,relativeToPlayer=true@chance=0.4@luck=2 + +/falling blocks (iron, gold, diamond, emerald) +type=falling_block,ID=iron_block@luck=0 +type=falling_block,ID=gold_block@luck=0 +type=falling_block,ID=diamond_block@luck=1 +type=falling_block,ID=emerald_block@luck=1 + +/bedrock problem +type=structure,ID=bedrock_problem@luck=-1 + +/explosion +group(type=difficulty,ID=hard;type=structure,ID=explosion,damage=6)@luck=-2 + +/colorful pole +group(type=falling_block,ID=stained_hardened_clay,damage=14;type=falling_block,ID=stained_hardened_clay,damage=1,posY=#bPosY+10;type=falling_block,ID=stained_hardened_clay,damage=4,posY=#bPosY+20;type=falling_block,ID=stained_hardened_clay,damage=5,posY=#bPosY+30;type=falling_block,ID=stained_hardened_clay,damage=3,posY=#bPosY+40;type=falling_block,ID=stained_hardened_clay,damage=11,posY=#bPosY+50;type=falling_block,ID=stained_hardened_clay,damage=10,posY=#bPosY+60;type=falling_block,ID=stained_hardened_clay,damage=2,posY=#bPosY+70;type=falling_block,ID=stained_hardened_clay,damage=6,posY=#bPosY+80;type=falling_block,ID=diamond_block,posY=#bPosY+90)@luck=2 + +/chests +type=structure,ID=chest,NBTTag=(type="bonusChest")@luck=0 +type=structure,ID=chest,NBTTag=(type="dungeonChest")@luck=1 +type=structure,ID=chest,NBTTag=(type="villageBlacksmith")@luck=1 +type=structure,ID=chest,NBTTag=(items=[(id=iron_ingot,maxAmount=8,weight=10),(id=gold_ingot,maxAmount=4,weight=10),(id=emerald,maxAmount=4,weight=10),(id=diamond,maxAmount=4,weight=10),(id=lucky:lucky_block,maxAmount=2,weight=10),(id=golden_apple,maxAmount=2,weight=10),(id=golden_apple,damage=1,maxAmount=1,weight=5)],min=8,max=8)@luck=2 + +/choice of 2 lucky blocks +type=structure,ID=lucky_choice,relativeToPlayer=true@luck=0 + +/wishing wells +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName gold_nugget 1 0 {display:{Name:\"#6Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#bYour wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=fireworks,NBTTag='#'randomFireworkRocket,amount=20,posY='#'bPosY+3,scatterOffset=2-2,reinitialize=true;ID=gold_ingot,amount=#random-20-30,posY='#'bPosY+10,scatterOffset=2-2;ID=emerald,amount=#random-20-30,posY='#'bPosY+10,scatterOffset=2-2;ID=diamond,amount=#random-20-30,posY='#'bPosY+10,scatterOffset=2-2)"]))@luck=2 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName gold_nugget 1 0 {display:{Name:\"#6Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#eYour wish came true! (If you like potatoes)\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;ID=potato,amount=128,posY='#'bPosY+10,scatterOffset=2-2;ID=baked_potato,amount=64,posY='#'bPosY+10,scatterOffset=2-2;ID=poisonous_potato,amount=32,posY='#'bPosY+10,scatterOffset=2-2)"]))@luck=1 +group(type=structure,ID=wishing_well;type=message,ID="A wishing well? Maybe you should throw in a coin...";type=command,ID="/give #playerName gold_nugget 1 0 {display:{Name:\"#6Coin\"}}";type=block,ID=lucky:lucky_block,posY=#bPosY-3,NBTTag=(Drops=["group(type=message,ID=\"#4Your death wish came true!\";type=block,ID=air,posY='#'bPosY+3;type=block,ID=beacon,posY='#'bPosY+2;type=entity,ID=launched_tnt,posY='#'bPosY+7,amount=20)"]))@luck=-2 + +/========== MONSTER APOCALYPSE ========== + +/sword, difficulty, time, potion effects +group(ID=wooden_sword;type=difficulty,ID=hard;type=time,ID=18750;type=effect,ID=2,duration=30,damage=4;type=effect,ID=8,duration=30;type=effect,ID=15,duration=30;> +/zombies, creepers, spiders + cave spiders +group:1(type=entity,ID=Zombie,amount=#random-20-50,scatterOffset=8-10,adjustHeight=2,reinitialize=true;type=entity,ID=Creeper,amount=#random-10-30,scatterOffset=8-10,adjustHeight=2,reinitialize=true;group(type=entity,ID=Spider,amount=#random-15-45,scatterOffset=8-10,adjustHeight=2,reinitialize=true;type=entity,ID=CaveSpider,amount=#random-5-10,scatterOffset=8-10,adjustHeight=2,reinitialize=true);> +/all +group(type=entity,ID=Zombie,amount=#random-20-50,scatterOffset=8-10,adjustHeight=2,reinitialize=true;type=entity,ID=Creeper,amount=#random-10-30,scatterOffset=8-10,adjustHeight=2,reinitialize=true;group(type=entity,ID=Spider,amount=#random-15-45,scatterOffset=8-10,adjustHeight=2,reinitialize=true;type=entity,ID=CaveSpider,amount=#random-5-10,scatterOffset=8-10,adjustHeight=2,reinitialize=true))))@luck=-2 + +/========== ENCHANTED ITEMS ========== + +/lucky block book +ID=written_book,NBTTag=(author="PlayerInDistress",title="#e#lLucky Block Book",pages=["#l#nThe Lucky Block#r\n\nThe Lucky Block (#ofortunus blockus#r) was brought to Minecraft by the gods to reward the good and punish the evil.","The player's true self will be revealed after mining this block.\n\nSome fear it, and others have been made rich by it.","You must mine it and be prepared for whatever will follow.\n\nIt is not luck.\n\nIt is #bdestiny."])@luck=0 +/lucky sword +ID=golden_sword,NBTTag=(ench=#luckySwordEnchantments,display=(Name="#e#lLucky Sword"))@luck=2 +/lucky bow +ID=bow,NBTTag=(ench=#luckyBowEnchantments,display=(Name="#e#lLucky Bow"))@luck=2 +/lucky fishing rod +ID=fishing_rod,NBTTag=(ench=#luckyFishingRodEnchantments,display=(Name="#e#lLucky Fishing Rod"))@luck=2 +/lucky tools +group:#random-1-2(ID=golden_shovel,NBTTag=(ench=#luckyToolEnchantments,display=(Name="#e#lLucky Shovel"));ID=golden_pickaxe,NBTTag=(ench=#luckyToolEnchantments,display=(Name="#e#lLucky Pickaxe"));ID=golden_axe,NBTTag=(ench=#luckyAxeEnchantments,display=(Name="#e#lLucky Axe"));ID=golden_hoe,NBTTag=(ench=#luckyToolEnchantments,display=(Name="#e#lLucky Hoe")))@luck=2 +/lucky armor +group:#random-1-2(ID=golden_helmet,NBTTag=(ench=#luckyHelmetEnchantments,display=(Name="#e#lLucky Helmet"));ID=golden_chestplate,NBTTag=(ench=#luckyChestplateEnchantments,display=(Name="#e#lLucky Chestplate"));ID=golden_leggings,NBTTag=(ench=#luckyLeggingsEnchantments,display=(Name="#e#lLucky Leggings"));ID=golden_boots,NBTTag=(ench=#luckyBootsEnchantments,display=(Name="#e#lLucky Boots")))@luck=2 +/lucky potion +ID=potion,damage=8195,NBTTag=(CustomPotionEffects=#luckyPotionEffects,display=(Name="#e#lLucky Potion"))@luck=2 +/unlucky potion +ID=potion,damage=16428,NBTTag=(CustomPotionEffects=#unluckyPotionEffects,display=(Name="#e#lUnlucky Potion"))@luck=1