f1rSt1kChannel
Members-
Posts
138 -
Joined
-
Last visited
Everything posted by f1rSt1kChannel
-
Change protected foodStats in an EntityPlayer?
f1rSt1kChannel replied to Alix_The_Alicorn's topic in Modder Support
See this: https://github.com/wuppy29/WuppyMods/tree/master/com/wuppy/harderpeaceful -
[1.7.2] player flying for 3 minutes on item right click?
f1rSt1kChannel replied to Dom323's topic in Modder Support
Create custom potion effect and apply on player. -
Weapon Attack Speed or weapon cooldown?
f1rSt1kChannel replied to chiyin00's topic in Modder Support
Post your code! -
I know Java well.
-
UP
-
Not work... package agravaine.esoteric.tileentity; import net.minecraft.init.Items; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntityFurnace; import agravaine.agravainelib.block.tileentity.TileEntityInventoryBase; import agravaine.agravainelib.item.crafting.CampfireRecipes; public class TileEntityCampfire extends TileEntityInventoryBase{ public int fuelBurnTime; public int currentFoodBurnTime; public int campfireCookTime1; public int campfireCookTime2; public static final int FUEL = 1, INPUT_1 = 0, INPUT_2 = 3, OUTPUT_1 = 2, OUTPUT_2 = 4; public TileEntityCampfire(){ super("Campfire", false, 5); fuelBurnTime = 0; currentFoodBurnTime = 0; campfireCookTime1 = 0; campfireCookTime2 = 0; } public void writeToNBT(NBTTagCompound nbt){ super.writeToNBT(nbt); nbt.setShort("BurnTime", (short)fuelBurnTime); nbt.setShort("CookTime1", (short)campfireCookTime1); nbt.setShort("CookTime2", (short)campfireCookTime2); } public void readFromNBT(NBTTagCompound nbt){ super.readFromNBT(nbt); fuelBurnTime = nbt.getShort("BurnTime"); campfireCookTime1 = nbt.getShort("CookTime1"); campfireCookTime2 = nbt.getShort("CookTime2"); currentFoodBurnTime = getItemBurnTime(inventoryContents[FUEL]); } public int getInventoryStackLimit(){ return 6; } public int getCookProgressScaled(int i, int j){ int cookingTime; if(j == 0){ cookingTime = CampfireRecipes.cooking().getCookingTime(inventoryContents[iNPUT_1]); return (campfireCookTime1 * i) / cookingTime; }else{ cookingTime = CampfireRecipes.cooking().getCookingTime(inventoryContents[iNPUT_2]); return (campfireCookTime2 * i) / cookingTime; } } public int getBurnTimeRemainingScaled(int i){ if(currentFoodBurnTime == 0){ currentFoodBurnTime = 200; } return (fuelBurnTime * i) / currentFoodBurnTime; } public boolean isBurning(){ return fuelBurnTime > 0; } public void updateEntity(){ boolean isBurning = fuelBurnTime > 0; boolean inventoryChanged = false; if(fuelBurnTime > 0){ fuelBurnTime--; } if(!worldObj.isRemote){ if(fuelBurnTime == 0 && (canCook(0, 2) || canCook(3, 4))){ currentFoodBurnTime = fuelBurnTime = getItemBurnTime(inventoryContents[FUEL]); if(fuelBurnTime > 0){ onInventoryChanged(); if(inventoryContents[FUEL] != null){ --inventoryContents[FUEL].stackSize; if(inventoryContents[FUEL].stackSize == 0){ inventoryContents[FUEL] = inventoryContents[FUEL].getItem().getContainerItem(inventoryContents[FUEL]); } } } } if(isBurning()){ if(canCook(INPUT_1, OUTPUT_1)){ campfireCookTime1++; int cookingTime = CampfireRecipes.cooking().getCookingTime(inventoryContents[iNPUT_1]); if(campfireCookTime1 == cookingTime){ campfireCookTime1 = 0; cookItem(0, 2); onInventoryChanged(); } }else{ campfireCookTime1 = 0; } if(canCook(INPUT_2, OUTPUT_2)){ campfireCookTime2++; int cookingTime = CampfireRecipes.cooking().getCookingTime(inventoryContents[iNPUT_2]); if(campfireCookTime2 == cookingTime){ campfireCookTime2 = 0; cookItem(3, 4); onInventoryChanged(); } }else{ campfireCookTime2 = 0; } }else{ campfireCookTime1 = 0; campfireCookTime2 = 0; } if(isBurning != (fuelBurnTime > 0)){ onInventoryChanged(); //BlockCampfire.updateCampfireState(furnaceBurnTime > 0, worldObj, xCoord, yCoord, zCoord); } } } public boolean canCook(int input, int output){ if(inventoryContents[input] == null){ return false; } ItemStack itemstack = CampfireRecipes.cooking().getCookingResult(inventoryContents[input]); if(itemstack == null){ return false; } if(inventoryContents[output] == null){ return true; } if(!inventoryContents[output].isItemEqual(itemstack)){ return false; } if(inventoryContents[output].stackSize + itemstack.stackSize <= getInventoryStackLimit() && inventoryContents[output].stackSize + itemstack.stackSize <= inventoryContents[output].getMaxStackSize()){ return true; } return inventoryContents[output].stackSize + itemstack.stackSize <= itemstack.getMaxStackSize(); } public void cookItem(int input, int output){ if(!canCook(input, output)){ return; } ItemStack itemstack = CampfireRecipes.cooking().getCookingResult(inventoryContents[input]); if(inventoryContents[output] == null){ inventoryContents[output] = itemstack.copy(); }else if(inventoryContents[output].getItem() == itemstack.getItem()){ inventoryContents[output].stackSize += itemstack.stackSize; } --inventoryContents[input].stackSize; if(inventoryContents[input].stackSize <= 0){ inventoryContents[input] = null; } } public static int getItemBurnTime(ItemStack itemstack){ return TileEntityFurnace.getItemBurnTime(itemstack); } public static boolean isItemFuel(ItemStack par0ItemStack){ return getItemBurnTime(par0ItemStack) > 0; } public boolean isItemValidForSlot(int slotId, ItemStack iStack){ return slotId == OUTPUT_1 || slotId == OUTPUT_2 ? false : slotId == FUEL ? isItemFuel(iStack) : iStack.getItem() instanceof ItemFood; } public int[] getAccessibleSlotsFromSide(int slotId){ return slotId == 0 || slotId == 3 ? new int[]{2, 1, 4, 3} : (slotId == 1 ? new int[] {0} : new int[] {1}); } public boolean canInsertItem(int slotId, ItemStack iStack, int side){ return isItemValidForSlot(slotId, iStack); } public boolean canExtractItem(int slotId, ItemStack iStack, int side){ return false; } }
-
And what then?
-
Does not work public int getCookingTime(ItemStack iStack){ Iterator iterator = cookingTimeList.entrySet().iterator(); Entry entry = null; do{ if(!iterator.hasNext()){ return 0; } if(iterator.next() != null){ entry = (Entry)iterator.next(); } }while(!areItemStacksEqual(iStack, (ItemStack)entry.getKey())); return ((Integer)entry.getValue()).intValue(); }
-
Made his "furnace" and I want her to make their recipes. They are the same as the stove and recipes, but instead of getting experience I have while cooking. But for some reason it does not work and breaks the game. P.S Sorry for my bad english. TileEntity: package agravaine.esoteric.tileentity; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemHoe; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraft.item.ItemTool; import net.minecraft.item.crafting.FurnaceRecipes; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntityFurnace; import agravaine.agravainelib.block.tileentity.TileEntityInventoryBase; import agravaine.agravainelib.item.crafting.CampfireRecipes; public class TileEntityCampfire extends TileEntityInventoryBase{ public int fuelBurnTime; public int currentFoodBurnTime; public int campfireCookTime1; public int campfireCookTime2; public int cookingTime1; public int cookingTime2; public static final int FUEL = 1, INPUT_1 = 0, INPUT_2 = 3, OUTPUT_1 = 2, OUTPUT_2 = 4; public TileEntityCampfire(){ super("Campfire", false, 5); fuelBurnTime = 0; currentFoodBurnTime = 0; campfireCookTime1 = 0; campfireCookTime2 = 0; cookingTime1 = CampfireRecipes.cooking().getCookingTime(inventoryContents[iNPUT_1]); cookingTime2 = CampfireRecipes.cooking().getCookingTime(inventoryContents[iNPUT_2]); } public void writeToNBT(NBTTagCompound nbt){ super.writeToNBT(nbt); nbt.setShort("BurnTime", (short)fuelBurnTime); nbt.setShort("CookTime1", (short)campfireCookTime1); nbt.setShort("CookTime2", (short)campfireCookTime2); } public void readFromNBT(NBTTagCompound nbt){ super.readFromNBT(nbt); fuelBurnTime = nbt.getShort("BurnTime"); campfireCookTime1 = nbt.getShort("CookTime1"); campfireCookTime2 = nbt.getShort("CookTime2"); currentFoodBurnTime = getItemBurnTime(inventoryContents[FUEL]); } public int getInventoryStackLimit(){ return 6; } public int getCookProgressScaled(int i, int j){ if(j == 0){ return cookingTime1 == 0 ? 0 : (campfireCookTime1 * i) / cookingTime1; }else{ return cookingTime2 == 0 ? 0 : (campfireCookTime2 * i) / cookingTime2; } } public int getBurnTimeRemainingScaled(int i){ if(currentFoodBurnTime == 0){ currentFoodBurnTime = 200; } return (fuelBurnTime * i) / currentFoodBurnTime; } public boolean isBurning(){ return fuelBurnTime > 0; } public void updateEntity(){ boolean isBurning = fuelBurnTime > 0; boolean inventoryChanged = false; if(fuelBurnTime > 0){ fuelBurnTime--; } if(!worldObj.isRemote){ if(fuelBurnTime == 0 && (canCook(0, 2) || canCook(3, 4))){ currentFoodBurnTime = fuelBurnTime = getItemBurnTime(inventoryContents[FUEL]); if(fuelBurnTime > 0){ onInventoryChanged(); if(inventoryContents[FUEL] != null){ --inventoryContents[FUEL].stackSize; if(inventoryContents[FUEL].stackSize == 0){ inventoryContents[FUEL] = inventoryContents[FUEL].getItem().getContainerItem(inventoryContents[FUEL]); } } } } if(isBurning()){ if(canCook(INPUT_1, OUTPUT_1)){ campfireCookTime1++; if(campfireCookTime1 == cookingTime1){ campfireCookTime1 = 0; cookItem(0, 2); onInventoryChanged(); } }else{ campfireCookTime1 = 0; } if(canCook(INPUT_2, OUTPUT_2)){ campfireCookTime2++; if(campfireCookTime2 == cookingTime2){ campfireCookTime2 = 0; cookItem(3, 4); onInventoryChanged(); } }else{ campfireCookTime2 = 0; } }else{ campfireCookTime1 = 0; campfireCookTime2 = 0; } if(isBurning != (fuelBurnTime > 0)){ onInventoryChanged(); //BlockCampfire.updateCampfireState(furnaceBurnTime > 0, worldObj, xCoord, yCoord, zCoord); } } } public boolean canCook(int input, int output){ if(inventoryContents[input] == null){ return false; } ItemStack itemstack = CampfireRecipes.cooking().getCookingResult(inventoryContents[input]); if(itemstack == null){ return false; } if(inventoryContents[output] == null){ return true; } if(!inventoryContents[output].isItemEqual(itemstack)){ return false; } if(inventoryContents[output].stackSize + itemstack.stackSize <= getInventoryStackLimit() && inventoryContents[output].stackSize + itemstack.stackSize <= inventoryContents[output].getMaxStackSize()){ return true; } return inventoryContents[output].stackSize + itemstack.stackSize <= itemstack.getMaxStackSize(); } public void cookItem(int input, int output){ if(!canCook(input, output)){ return; } ItemStack itemstack = CampfireRecipes.cooking().getCookingResult(inventoryContents[input]); if(inventoryContents[output] == null){ inventoryContents[output] = itemstack.copy(); }else if(inventoryContents[output].getItem() == itemstack.getItem()){ inventoryContents[output].stackSize += itemstack.stackSize; } --inventoryContents[input].stackSize; if(inventoryContents[input].stackSize <= 0){ inventoryContents[input] = null; } } public static int getItemBurnTime(ItemStack iStack){ if(iStack == null){ return 0; } Item item = iStack.getItem(); if(item instanceof ItemBlock && Block.getBlockFromItem(item) != Blocks.air){ Block block = Block.getBlockFromItem(item); if(block == Blocks.wooden_slab){ return 250; } if(block.getMaterial() == Material.wood){ return 500; } if(block == Blocks.coal_block){ return 18000; } } if(item instanceof ItemTool && ((ItemTool)item).getToolMaterialName().equals("WOOD")){ return 450; } if(item instanceof ItemSword && ((ItemSword)item).getToolMaterialName().equals("WOOD")){ return 450; } if(item instanceof ItemHoe && ((ItemHoe)item).getToolMaterialName().equals("WOOD")){ return 450; } if(item == Items.stick) return 200; if(item == Items.coal) return 2400; if(item == Item.getItemFromBlock(Blocks.sapling)){ return 150; } if(item == Items.blaze_rod){ return 2700; } return GameRegistry.getFuelValue(iStack); } public static boolean isItemFuel(ItemStack par0ItemStack){ return getItemBurnTime(par0ItemStack) > 0; } public boolean isItemValidForSlot(int slotId, ItemStack iStack){ return slotId == OUTPUT_1 || slotId == OUTPUT_2 ? false : slotId == FUEL ? isItemFuel(iStack) : iStack.getItem() instanceof ItemFood; } public int[] getAccessibleSlotsFromSide(int slotId){ return slotId == 0 || slotId == 3 ? new int[]{2, 1, 4, 3} : (slotId == 1 ? new int[] {0} : new int[] {1}); } public boolean canInsertItem(int slotId, ItemStack iStack, int side){ return isItemValidForSlot(slotId, iStack); } public boolean canExtractItem(int slotId, ItemStack iStack, int side){ return false; } } Recipes: package agravaine.agravainelib.item.crafting; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import net.minecraft.block.Block; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemFishFood; import net.minecraft.item.ItemFood; import net.minecraft.item.ItemStack; public class CampfireRecipes{ private static final CampfireRecipes instance = new CampfireRecipes();; private Map<ItemStack, ItemStack> cookingList = new HashMap<ItemStack, ItemStack>(); private Map<ItemStack, Integer> cookingTimeList = new HashMap<ItemStack, Integer>(); public static CampfireRecipes cooking(){ return instance; } private CampfireRecipes(){ addRecipe(Items.porkchop, new ItemStack(Items.cooked_porkchop), 250); addRecipe(Items.beef, new ItemStack(Items.cooked_beef), 250); addRecipe(Items.chicken, new ItemStack(Items.cooked_chicken), 300); addRecipe(Items.potato, new ItemStack(Items.baked_potato), 200); ItemFishFood.FishType[] fishtypes = ItemFishFood.FishType.values(); for(int j = 0; j < fishtypes.length; ++j){ ItemFishFood.FishType fishtype = fishtypes[j]; if(fishtype.func_150973_i()){ addRecipe(new ItemStack(Items.fish, 1, fishtype.func_150976_a()), new ItemStack(Items.cooked_fished, 1, fishtype.func_150976_a()), 320); } } } public void addRecipe(Item item, ItemStack result, int cookingTime){ addRecipe(new ItemStack(item, 1, 32767), result, cookingTime); } public void addRecipe(ItemStack iStack, ItemStack result, int cookingTime){ cookingList.put(iStack, result); cookingTimeList.put(result, cookingTime); } public ItemStack getCookingResult(ItemStack item){ Iterator iterator = cookingList.entrySet().iterator(); Entry entry; do{ if(!iterator.hasNext()){ return null; } entry = (Entry)iterator.next(); }while(!areItemStacksEqual(item, (ItemStack)entry.getKey())); return (ItemStack)entry.getValue(); } public int getCookingTime(ItemStack iStack){ Iterator iterator = cookingTimeList.entrySet().iterator(); Entry entry; do{ if(!iterator.hasNext()){ return 0; } entry = (Entry)iterator.next(); }while(!areItemStacksEqual(iStack, (ItemStack)entry.getKey())); return ((Integer)entry.getValue()).intValue(); } private boolean areItemStacksEqual(ItemStack itemStackOne, ItemStack itemStackTwo){ return itemStackTwo.getItem() == itemStackOne.getItem() && (itemStackTwo.getItemDamage() == 32767 || itemStackTwo.getItemDamage() == itemStackOne.getItemDamage()); } public Map<ItemStack, ItemStack> getSmeltingList(){ return cookingList; } } Crash: java.lang.NullPointerException at agravaine.agravainelib.item.crafting.CampfireRecipes.areItemStacksEqual(CampfireRecipes.java:75) ~[CampfireRecipes.class:?] at agravaine.agravainelib.item.crafting.CampfireRecipes.getCookingTime(CampfireRecipes.java:70) ~[CampfireRecipes.class:?] at agravaine.esoteric.tileentity.TileEntityCampfire.<init>(TileEntityCampfire.java:37) ~[TileEntityCampfire.class:?] at agravaine.esoteric.block.BlockCampfire.createNewTileEntity(BlockCampfire.java:21) ~[blockCampfire.class:?] at net.minecraft.block.Block.createTileEntity(Block.java:1770) ~[block.class:?] at net.minecraft.world.chunk.Chunk.func_150806_e(Chunk.java:939) ~[Chunk.class:?] at net.minecraft.world.ChunkCache.getTileEntity(ChunkCache.java:103) ~[ChunkCache.class:?] at net.minecraft.client.renderer.WorldRenderer.updateRenderer(WorldRenderer.java:189) ~[WorldRenderer.class:?] at net.minecraft.client.renderer.RenderGlobal.updateRenderers(RenderGlobal.java:1616) ~[RenderGlobal.class:?] at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1262) ~[EntityRenderer.class:?] at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1095) ~[EntityRenderer.class:?] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1024) ~[Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:912) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:112) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_55] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_55] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_55] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_55] at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) [launchwrapper-1.9.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?] ---- Minecraft Crash Report ---- // I'm sorry, Dave. Time: 09.06.14 21:05 Description: Unexpected error java.lang.NullPointerException: Unexpected error at agravaine.agravainelib.item.crafting.CampfireRecipes.areItemStacksEqual(CampfireRecipes.java:75) at agravaine.agravainelib.item.crafting.CampfireRecipes.getCookingTime(CampfireRecipes.java:70) at agravaine.esoteric.tileentity.TileEntityCampfire.<init>(TileEntityCampfire.java:37) at agravaine.esoteric.block.BlockCampfire.createNewTileEntity(BlockCampfire.java:21) at net.minecraft.block.Block.createTileEntity(Block.java:1770) at net.minecraft.world.chunk.Chunk.func_150806_e(Chunk.java:939) at net.minecraft.world.ChunkCache.getTileEntity(ChunkCache.java:103) at net.minecraft.client.renderer.WorldRenderer.updateRenderer(WorldRenderer.java:189) at net.minecraft.client.renderer.RenderGlobal.updateRenderers(RenderGlobal.java:1616) at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1262) at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1095) at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1024) at net.minecraft.client.Minecraft.run(Minecraft.java:912) at net.minecraft.client.main.Main.main(Main.java:112) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at agravaine.agravainelib.item.crafting.CampfireRecipes.areItemStacksEqual(CampfireRecipes.java:75) at agravaine.agravainelib.item.crafting.CampfireRecipes.getCookingTime(CampfireRecipes.java:70) at agravaine.esoteric.tileentity.TileEntityCampfire.<init>(TileEntityCampfire.java:37) at agravaine.esoteric.block.BlockCampfire.createNewTileEntity(BlockCampfire.java:21) at net.minecraft.block.Block.createTileEntity(Block.java:1770) at net.minecraft.world.chunk.Chunk.func_150806_e(Chunk.java:939) at net.minecraft.world.ChunkCache.getTileEntity(ChunkCache.java:103) at net.minecraft.client.renderer.WorldRenderer.updateRenderer(WorldRenderer.java:189) at net.minecraft.client.renderer.RenderGlobal.updateRenderers(RenderGlobal.java:1616) at net.minecraft.client.renderer.EntityRenderer.renderWorld(EntityRenderer.java:1262) -- Affected level -- Details: Level name: MpServer All players: 1 total; [EntityClientPlayerMP['Player376'/148, l='MpServer', x=-272,64, y=5,62, z=-1090,34]] Chunk stats: MultiplayerChunkCache: 35, 35 Level seed: 0 Level generator: ID 01 - flat, ver 0. Features enabled: false Level generator options: Level spawn location: World: (-282,4,-1086), Chunk: (at 6,0,2 in -18,-68; contains blocks -288,0,-1088 to -273,255,-1073), Region: (-1,-3; contains chunks -32,-96 to -1,-65, blocks -512,0,-1536 to -1,255,-1025) Level time: 4264 game time, 4264 day time Level dimension: 0 Level storage version: 0x00000 - Unknown? Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false) Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false Forced entities: 28 total; [EntityChicken['Chicken'/76, l='MpServer', x=-293,50, y=4,00, z=-1119,50], EntityHorse['Horse'/77, l='MpServer', x=-291,50, y=4,00, z=-1119,50], EntityPig['Pig'/78, l='MpServer', x=-289,50, y=4,00, z=-1119,84], EntityPig['Pig'/79, l='MpServer', x=-300,81, y=4,00, z=-1106,34], EntityChicken['Chicken'/73, l='MpServer', x=-300,69, y=4,00, z=-1123,97], EntityChicken['Chicken'/74, l='MpServer', x=-292,53, y=4,00, z=-1127,53], EntityHorse['Horse'/75, l='MpServer', x=-300,28, y=4,00, z=-1122,88], EntityClientPlayerMP['Player376'/148, l='MpServer', x=-272,64, y=5,62, z=-1090,34], EntityChicken['Chicken'/85, l='MpServer', x=-278,63, y=4,00, z=-1099,41], EntityPig['Pig'/84, l='MpServer', x=-284,78, y=4,00, z=-1119,81], EntityHorse['Horse'/87, l='MpServer', x=-262,50, y=4,00, z=-1115,50], EntityChicken['Chicken'/86, l='MpServer', x=-272,63, y=4,00, z=-1088,44], EntityPig['Pig'/81, l='MpServer', x=-288,88, y=4,00, z=-1115,13], EntityPig['Pig'/80, l='MpServer', x=-289,38, y=4,00, z=-1111,88], EntitySheep['Sheep'/83, l='MpServer', x=-285,63, y=4,00, z=-1134,22], EntityCow['Cow'/93, l='MpServer', x=-247,50, y=4,00, z=-1115,50], EntityCow['Cow'/94, l='MpServer', x=-251,50, y=4,00, z=-1115,81], EntityCow['Cow'/89, l='MpServer', x=-265,13, y=4,00, z=-1107,31], EntityHorse['Horse'/88, l='MpServer', x=-262,97, y=4,00, z=-1118,16], EntityCow['Cow'/90, l='MpServer', x=-258,34, y=4,00, z=-1105,47], EntitySheep['Sheep'/111, l='MpServer', x=-227,81, y=4,00, z=-1086,69], EntitySheep['Sheep'/108, l='MpServer', x=-227,75, y=4,00, z=-1090,03], EntitySheep['Sheep'/109, l='MpServer', x=-233,38, y=4,00, z=-1090,19], EntitySheep['Sheep'/107, l='MpServer', x=-231,81, y=4,00, z=-1088,44], EntitySheep['Sheep'/115, l='MpServer', x=-223,91, y=4,00, z=-1087,94], EntitySheep['Sheep'/114, l='MpServer', x=-238,50, y=4,00, z=-1082,50], EntitySheep['Sheep'/113, l='MpServer', x=-234,50, y=4,00, z=-1082,50], EntitySheep['Sheep'/112, l='MpServer', x=-227,03, y=4,00, z=-1080,09]] Retry entities: 0 total; [] Server brand: fml,forge Server type: Integrated singleplayer server Stacktrace: at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:412) at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2523) at net.minecraft.client.Minecraft.run(Minecraft.java:941) at net.minecraft.client.main.Main.main(Main.java:112) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:134) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) -- System Details -- Details: Minecraft Version: 1.7.2 Operating System: Windows XP (x86) version 5.1 Java Version: 1.7.0_55, Oracle Corporation Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation Memory: 896474512 bytes (854 MB) / 1060372480 bytes (1011 MB) up to 1060372480 bytes (1011 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M AABB Pool Size: 9254 (518224 bytes; 0 MB) allocated, 2 (112 bytes; 0 MB) used IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: MCP v9.03 FML v7.2.209.1112 Minecraft Forge 10.12.1.1112 5 mods loaded, 5 mods active mcp{9.03} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available FML{7.2.209.1112} [Forge Mod Loader] (forgeSrc-1.7.2-10.12.1.1112.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available Forge{10.12.1.1112} [Minecraft Forge] (forgeSrc-1.7.2-10.12.1.1112.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available AgravaineLib{0.12} [AgravaineLib] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available Esoteric{Alpha Alpha 0.03} [Esoteric] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available Launched Version: 1.6 LWJGL: 2.9.0 OpenGL: GeForce 6100 nForce 405/PCI/SSE2/3DNOW! GL version 2.0.3, NVIDIA Corporation Is Modded: Definitely; Client brand changed to 'fml,forge' Type: Client (map_client.txt) Resource Packs: [] Current Language: English (US) Profiler Position: N/A (disabled) Vec3 Pool Size: 33 (1848 bytes; 0 MB) allocated, 26 (1456 bytes; 0 MB) used Anisotropic Filtering: Off (1) [21:05:09] [server thread/INFO]: Stopping server #@!@# Game crashed! Crash report saved to: #@!@# C:\Modding\Forge\eclipse\.\crash-reports\crash-2014-06-09_21.05.09-client.txt [21:05:09] [Client thread/INFO] [FML]: Waiting for the server to terminate/save. [21:05:09] [server thread/INFO]: Saving players [21:05:09] [server thread/INFO]: Saving worlds [21:05:09] [server thread/INFO]: Saving chunks for level 'New World'/Overworld [21:05:10] [server thread/INFO]: Saving chunks for level 'New World'/Nether [21:05:10] [server thread/INFO]: Saving chunks for level 'New World'/The End [21:05:10] [server thread/INFO] [FML]: Unloading dimension 0 [21:05:10] [server thread/INFO] [FML]: Unloading dimension -1 [21:05:10] [server thread/INFO] [FML]: Unloading dimension 1 [21:05:10] [server thread/INFO] [FML]: Applying holder lookups [21:05:10] [server thread/INFO] [FML]: Holder lookups applied [21:05:10] [Client thread/INFO] [FML]: Server terminated. AL lib: (EE) alc_cleanup: 1 device not closed Indicates this method: private boolean areItemStacksEqual(ItemStack itemStackOne, ItemStack itemStackTwo){ return itemStackTwo.getItem() == itemStackOne.getItem() && (itemStackTwo.getItemDamage() == 32767 || itemStackTwo.getItemDamage() == itemStackOne.getItemDamage()); //<---------------------------- } Help, please!
-
Weapon Attack Speed or weapon cooldown?
f1rSt1kChannel replied to chiyin00's topic in Modder Support
Create class Cooldownable.class: public class Cooldownable{ public static final String COOLDOWN_NBT = "agravaine:cooldown"; /** * Call this onUpdate() in your Item WARNING: you should check for * !world.isRemote * * @param iStack * stack to update * @param maxCooldown * maximum cooldown */ public static void onUpdate(ItemStack iStack, int maxCooldown){ AgravaineNBTHelper.checkNBT(iStack); if(!AgravaineNBTHelper.verifyKey(iStack, COOLDOWN_NBT)){ AgravaineNBTHelper.setInteger(iStack, COOLDOWN_NBT, maxCooldown); } if(AgravaineNBTHelper.getInteger(iStack, COOLDOWN_NBT) > 0){ AgravaineNBTHelper.decreaseInteger(iStack, COOLDOWN_NBT, 1); } } /** * Checks for cooldown. Call it when your item needs to be used * * @param iStack * Stack to check * @param maxCooldown * Maximum cooldown * @return True if item's cooldown is zero, returns true and sets it to * maximum, otherwise false */ public static boolean canUse(ItemStack iStack, int maxCooldown){ AgravaineNBTHelper.checkNBT(iStack); if(AgravaineNBTHelper.getInteger(iStack, COOLDOWN_NBT) > 0){ return false; }else{ AgravaineNBTHelper.setInteger(iStack, COOLDOWN_NBT, maxCooldown); return true; } } /** * Call this addInformation() in your Item * * @param iStack * stack to update * @param info * cooldown text */ public static void displayCooldown(ItemStack iStack, List info){ AgravaineNBTHelper.checkNBT(iStack); if(AgravaineNBTHelper.getInteger(iStack, COOLDOWN_NBT) > 0){ info.add("Cooldown: " + AgravaineNBTHelper.getInteger(iStack, COOLDOWN_NBT)); }else{ info.add("Cooldown: ready"); } } } Example weapons with cooldown: public class ItemBase extends Item{ public static final int COOLDOWN = 200; //200 - cooldown in ticks. 1 sec - 20 ticks. public ItemBase(){ super(); } public void onUpdate(ItemStack iStack, World world, Entity entity, int esotericInt, boolean agravaineBoolean){ if(!world.isRemote){ Cooldownable.onUpdate(iStack, COOLDOWN); } } public ItemStack onItemRightClick(ItemStack iStack, World world, EntityPlayer player){ if(Cooldownable.canUse(iStack, COOLDOWN)){ player.motionY++; } return iStack; } public void addInformation(ItemStack iStack, EntityPlayer player, List info, boolean esotericBoolean){ Cooldownable.displayCooldown(iStack, info); //display current cooldown } } Util: public class AgravaineNBTHelper{ /** * Used for null-safety * * @param stack */ public static NBTTagCompound checkNBT(ItemStack stack){ if(stack.stackTagCompound == null){ stack.stackTagCompound = new NBTTagCompound(); } return stack.stackTagCompound; } /** * Shortcut for NBTTagCompound.hasKey() */ public static boolean verifyKey(ItemStack stack, String name){ return stack.stackTagCompound.hasKey(name); } public static void setInteger(ItemStack stack, String name, int value){ stack.stackTagCompound.setInteger(name, value); } public static int getInteger(ItemStack stack, String name){ return stack.stackTagCompound.getInteger(name); } public static void decreaseInteger(ItemStack stack, String name, int value){ if(getInteger(stack, name) > 0){ setInteger(stack, name, getInteger(stack, name) - value); } } public static void decreaseIntegerIgnoreZero(ItemStack stack, String name, int value){ setInteger(stack, name, getInteger(stack, name) - value); } public static void setString(ItemStack stack, String name, String value){ stack.stackTagCompound.setString(name, value); } public static String getString(ItemStack stack, String name){ return stack.stackTagCompound.getString(name); } public static void setBoolean(ItemStack stack, String name, boolean value){ stack.stackTagCompound.setBoolean(name, value); } public static boolean getBoolean(ItemStack stack, String name){ return stack.stackTagCompound.getBoolean(name); } public static void invertBoolean(ItemStack stack, String name){ setBoolean(stack, name, !getBoolean(stack, name)); } public static void setByte(ItemStack stack, String name, byte value){ stack.stackTagCompound.setByte(name, value); } public static byte getByte(ItemStack stack, String name){ if(!verifyKey(stack, name)){ setByte(stack, name, (byte)0); } return stack.stackTagCompound.getByte(name); } } Good luck! -
Ну да, на mcmodding врятли кто ответит =)
-
[1.7.2] New Potion - Reflection or ExtendedProperties?
f1rSt1kChannel replied to Bedrock_Miner's topic in Modder Support
See https://github.com/Glitchfiend/BiomesOPlenty/tree/master/src/main/java/biomesoplenty/common/potions -
You did not specify a biome, which will spawn a spider.
-
[SOLVED] [1.6.4] Spawn custom EntityFX on server side
f1rSt1kChannel replied to BlackCrafer666's topic in Modder Support
Нет, Majestic -
List<Entity> entities = mc.theWorld.getEntitiesWithinAABBExcludingEntity(mc.thePlayer, mc.thePlayer.boundingBox.expand(19.8D, 19.8D, 19.8D)); EntityLivingBase entity; while(entities.iterator.hasNext()){ entity = (EntityLivingBase)entities.iterator.next(); if(entity instanceof EntityGrunt){ //sample } }
-
[SOLVED] [1.6.4] Spawn custom EntityFX on server side
f1rSt1kChannel replied to BlackCrafer666's topic in Modder Support
Ой лол, ты уже и сюда написал -
See PlayerInteractEvent and Action.RIGTH_CLICK_BLOCK.
-
Your method return false.
-
[1.7.2] How would I go about organizing my creative items?
f1rSt1kChannel replied to KeeperofMee's topic in Modder Support
Order of objects depends on the ID. Put here are from smaller to larger and you will have everything in order. -
Use PlayerUpdateEvent.
-
[1.7.2] Making the gravity like Mars.
f1rSt1kChannel replied to Theoretikos's topic in Modder Support
Galacticraft is open source. -
for(int i = 0; i < inv.getSizeInventory(); i++){ inv.setInventorySlotContents(i, itemStack); }
-
TileEntity tile = world.getBlockTileEntity(x, y, z); if(tile instanceof IInventory){ IInventory inv = (IInventory)tile; inv.setInventorySlotContents(slot, itemStack); }
-
Thank you! Try it now and accomplish your goal!
-
That's what I deserve. But how to get GIT eclipse that it is synchronized?