-
Posts
40 -
Joined
-
Last visited
Posts posted by IlTosaerba
-
-
Basically, 1.7.10 version is the best version to use in custom forge servers with friends.
It's not only my opinion, we done a test and if 1.8.9 or 1.12 are the most powerfull ones, 1.7.10 still the best if you don't have a server and want to host a VPN to play with your friends.
Crete mods for 1.7.10 means create costum content for and/or with your friends. -
Hi modders,
I want to put a particular custom workbench in my mod, a workbench with "holes" in the GUI.GUI:
Spoiler
Now, in the container I successfully added the slots in the right way, but when I try to interact with it the ShapedRecipe give me problems.
The InventoryCrafting is a 5x5, so I created a custom class to set the SizeInventory to 17 (instead of 25).
Custom InventoryCraft:
Spoilerpackage com.WLLC.mysticWeapons.crafting.crystalInfuser; import net.minecraft.inventory.Container; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; public class WLLC_myWE_CrystalInfuserInventoryCrafting extends InventoryCrafting { public WLLC_myWE_CrystalInfuserInventoryCrafting(Container p_i1807_1_) { super(p_i1807_1_, 5, 5); } @Override public int getSizeInventory() { return 17; } @Override public String getInventoryName() { return "container.crystalInfuser"; } @Override public boolean hasCustomInventoryName() { return true; } @Override public ItemStack getStackInRowAndColumn(int row, int column) { if (row == 0 || row == 4) { return vanillaGetStackInRowAndColumnOperation(row, column); } else if (row == 1 || row == 3){ if (column == 0 || column == 4) { return vanillaGetStackInRowAndColumnOperation(row, column); } else { return null; } } else if (row == 2) { if (column != 1 && column != 3) { return vanillaGetStackInRowAndColumnOperation(row, column); } else { return null; } } else { return null; } } public ItemStack vanillaGetStackInRowAndColumnOperation(int row, int column) { return super.getStackInSlot(row + column * 5); } }
The problem is in the checkMatch() method of the ShapedRecipe class, where the class do some strange operation (lines form 98 to 106). This kind of satanic farmulas work fine if I have a 25 elements array, but I have a 17 one and I don't know how to arrange them to correctly scan the array from 0 to 16.
Custom ShapedRecipe:Spoilerpackage com.WLLC.mysticWeapons.crafting.crystalInfuser; import net.minecraft.inventory.InventoryCrafting; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.IRecipe; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; public class WLLC_myWE_CrystalInfuserShapedRecipes implements IRecipe { public final int recipeWidth; public final int recipeHeight; public final ItemStack[] recipeItems; private ItemStack recipeOutput; private boolean field_92101_f; private static final String __OBFID = "CL_00000093"; public WLLC_myWE_CrystalInfuserShapedRecipes(int p_i1917_1_, int p_i1917_2_, ItemStack[] ingredients, ItemStack result) { this.recipeWidth = p_i1917_1_; this.recipeHeight = p_i1917_2_; this.recipeItems = ingredients; this.recipeOutput = result; } public ItemStack getRecipeOutput() { return this.recipeOutput; } public boolean customMatches(WLLC_myWE_CrystalInfuserInventoryCrafting invCrafting, World world) { for (int row = 0; row <= 5 - this.recipeWidth; ++row) { for (int column = 0; column <= 5 - this.recipeHeight; ++column) { if (row == 0 || row == 4) { return vanillaMatchesProcess(invCrafting, world, row, column); } else if (row == 1 || row == 3){ if (column == 0 || column == 4) { return vanillaMatchesProcess(invCrafting, world, row, column); } } else if (row == 2) { if (column != 1 && column != 3) { return vanillaMatchesProcess(invCrafting, world, row, column); } } } } return false; } public boolean vanillaMatchesProcess(WLLC_myWE_CrystalInfuserInventoryCrafting invCrafting, World world, int row, int column) { if (this.checkMatch(invCrafting, row, column, true)) { return true; } if (this.checkMatch(invCrafting, row, column, false)) { return true; } return false; } private boolean checkMatch(WLLC_myWE_CrystalInfuserInventoryCrafting invCrafting, int row0, int column0, boolean p_77573_4_) { for (int row = 0; row < 5; ++row) { for (int column = 0; column < 5; ++column) { int row1 = row - row0; int column1 = column - column0; ItemStack itemstack = null; if (row1 >= 0 && column1 >= 0 && row1 < this.recipeWidth && column1 < this.recipeHeight) { if (p_77573_4_) { itemstack = this.recipeItems[this.recipeWidth - row1 - 1 + column1 * this.recipeWidth]; } else { itemstack = this.recipeItems[row1 + column1 * this.recipeWidth]; } } ItemStack itemstack1 = invCrafting.getStackInRowAndColumn(row, column); if (itemstack1 != null || itemstack != null) { if (itemstack1 == null && itemstack != null || itemstack1 != null && itemstack == null) { return false; } if (itemstack.getItem() != itemstack1.getItem()) { return false; } if (itemstack.getItemDamage() != 32767 && itemstack.getItemDamage() != itemstack1.getItemDamage()) { return false; } } } } return true; } public ItemStack customGetCraftingResult(WLLC_myWE_CrystalInfuserInventoryCrafting invCrafting) { ItemStack itemstack = this.getRecipeOutput().copy(); if (this.field_92101_f) { for (int i = 0; i < invCrafting.getSizeInventory(); ++i) { ItemStack itemstack1 = invCrafting.getStackInSlot(i); if (itemstack1 != null && itemstack1.hasTagCompound()) { itemstack.setTagCompound((NBTTagCompound)itemstack1.stackTagCompound.copy()); } } } return itemstack; } public int getRecipeSize() { return this.recipeWidth * this.recipeHeight; } public WLLC_myWE_CrystalInfuserShapedRecipes func_92100_c() { this.field_92101_f = true; return this; } @Override public boolean matches(InventoryCrafting invCrafting, World world) { return this.customMatches((WLLC_myWE_CrystalInfuserInventoryCrafting) invCrafting, world); } @Override public ItemStack getCraftingResult(InventoryCrafting invCrafting) { return this.customGetCraftingResult((WLLC_myWE_CrystalInfuserInventoryCrafting) invCrafting); } }
How can I resolve this? Or I'm doing this terribly wrong?
Thanks in advice -
Hi modders,
I know that 1.7.10 is a bit out dated but I must use this version form my mod.
My mod adds some crystal that give special powers. How this works?
Well, I created some Enchantments, then I add this Enchantments to an Item when this is put in an anvil with a crystal via the AnvilUpdateEvent in my EventHandler class. After doing this I check the special scenario always via the EventHandlers to do stuff. For example if you put in the anvil a sword and a blood crystal the sword obtain the "Life Steal" enchantment which heal u a bit after a kill. This works thanks to the LivingDeathEvent. The code (the imports are been deleted, don't know why):
Spoilerpackage com.WLLC.mysticWeapons.handlers; public class WLLC_myWE_BloodPowersEventHandler { @SubscribeEvent public void onLivingDeathEvent(LivingDeathEvent event) { //Check for lifeSteal Power if (event.source.getEntity() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.source.getEntity(); ItemStack heldItem = player.getHeldItem(); int lifeStealEnchantmentLevel = EnchantmentHelper.getEnchantmentLevel(GlobalVariables.lifeSteal.effectId, heldItem); if (heldItem != null && lifeStealEnchantmentLevel > 0) { player.heal(1.0F * lifeStealEnchantmentLevel); } } } @SubscribeEvent public void addBloodPowerEvent(AnvilUpdateEvent event) { if (event.left.getItem() instanceof ItemSword && Item.getIdFromItem(event.right.getItem()) == Item.getIdFromItem(WLLC_myWE_Items.bloodCrystal)) { event.cost = 50; event.output = event.left.copy(); event.output.addEnchantment(GlobalVariables.lifeSteal, 1); } } }
Now, if u put in the anvil an armor piece and a dark Crystal the armor piece gain the "Assassin's Blessing" enchantment, which should make you invisible after a kill. Now, for make this works, over the events, I use a boolean variable. This is because I want to make all the pg invisible, even the armor and the held item. U know that if i add the potion effect (invisibility) to the player the armor and the held item will still visible. So i make the armor disappear thanks to the SetArmorModel event, which i discover be Client side only. If I play in my singleplayer world it all works, but when I test the mod in the server it doesen't work. Here's the code:
The handler for the dark powers:
Spoilerpackage com.WLLC.mysticWeapons.handlers; import com.WLLC.mysticWeapons.GlobalVariables; import com.WLLC.mysticWeapons.items.WLLC_myWE_Items; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemArmor; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraftforge.client.event.RenderPlayerEvent.SetArmorModel; import net.minecraftforge.event.AnvilUpdateEvent; import net.minecraftforge.event.entity.living.LivingDeathEvent; public class WLLC_myWE_DarkPowersEventHandler { @SubscribeEvent public void addDarkPowerEvent(AnvilUpdateEvent event) { if (event.left.getItem() instanceof ItemArmor && Item.getIdFromItem(event.right.getItem()) == Item.getIdFromItem(WLLC_myWE_Items.darkCrystal)) { event.cost = 50; event.output = event.left.copy(); event.output.addEnchantment(GlobalVariables.assassinBlessing, 1); } } @SubscribeEvent public void onLivingDeathEvent(LivingDeathEvent event) { //Check for assassinBlessing Power if (event.source.getEntity() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.source.getEntity(); for (int i = 0; i<4; i++) { int assassinBlessingEnchantmentLevel = EnchantmentHelper.getEnchantmentLevel(GlobalVariables.assassinBlessing.effectId, player.inventory.armorItemInSlot(i)); if (assassinBlessingEnchantmentLevel > 0) { player.addPotionEffect(new PotionEffect(Potion.invisibility.id, 159, 1, false)); if (!GlobalVariables.assassinBlessingBonus) { GlobalVariables.assassinBlessingBonus = true; break; } } } } } //The check for the assassinBlessing Bonus is in ClientOnlyEventHandler 'cause its a Render event }
The SetArmorModel event:
Spoilerpackage com.WLLC.mysticWeapons.handlers; import com.WLLC.mysticWeapons.GlobalVariables; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.client.event.RenderPlayerEvent.SetArmorModel; public class WLLC_myWE_ClientOnlyEventHandler { @SubscribeEvent public void onArmorEvent(SetArmorModel event) { //Check for assassinBlessin Bonus if (event.entity instanceof EntityPlayer && GlobalVariables.assassinBlessingBonus) { if (((EntityPlayer) event.entity).isInvisible()){ event.result = 0; } else { GlobalVariables.assassinBlessingBonus = false; } } } }
My proxys (Client and Common):
Spoilerpackage com.WLLC.mysticWeapons.proxy; import com.WLLC.mysticWeapons.handlers.WLLC_myWE_ClientOnlyEventHandler; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.common.MinecraftForge; public class ClientProxy extends CommonProxy{ public void preInit(FMLPreInitializationEvent preEvent) { super.preInit(preEvent); } @Override public void init(FMLInitializationEvent event) { super.init(event); MinecraftForge.EVENT_BUS.register(new WLLC_myWE_ClientOnlyEventHandler()); } public void postInit(FMLPostInitializationEvent postEvent) { super.postInit(postEvent); } }
Spoilerpackage com.WLLC.mysticWeapons.proxy; import com.WLLC.mysticWeapons.crafting.WLLC_myWE_Recipes; import com.WLLC.mysticWeapons.handlers.WLLC_myWE_BloodPowersEventHandler; import com.WLLC.mysticWeapons.handlers.WLLC_myWE_DarkPowersEventHandler; import com.WLLC.mysticWeapons.handlers.WLLC_myWE_SoulPowersEventHandler; import com.WLLC.mysticWeapons.items.WLLC_myWE_Items; import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLPostInitializationEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.common.MinecraftForge; public class CommonProxy { public void preInit(FMLPreInitializationEvent preEvent) { WLLC_myWE_Items.initItems(); WLLC_myWE_Recipes.initRecipes(); } public void init(FMLInitializationEvent event) { MinecraftForge.EVENT_BUS.register(new WLLC_myWE_BloodPowersEventHandler()); MinecraftForge.EVENT_BUS.register(new WLLC_myWE_SoulPowersEventHandler()); MinecraftForge.EVENT_BUS.register(new WLLC_myWE_DarkPowersEventHandler()); } public void postInit(FMLPostInitializationEvent postEvent) { } }
And the GlobalVariables class:
Spoilerpackage com.WLLC.mysticWeapons; import com.WLLC.mysticWeapons.enchantments.WLLC_myWE_AssassinBlessing; import com.WLLC.mysticWeapons.enchantments.WLLC_myWE_LifeSteal; import com.WLLC.mysticWeapons.enchantments.WLLC_myWE_SolidAir; import net.minecraft.enchantment.Enchantment; public class GlobalVariables { public static final String MOD_ID = "wllc_mywe"; public static final String MOD_NAME = "[WLLC]Mystic Weapons"; public static final String VERSION = "V 1.0"; public static final String WLLC_COMMON_PROXY = "com.WLLC.mysticWeapons.proxy.CommonProxy"; public static final String WLLC_CLIENT_PROXY = "com.WLLC.mysticWeapons.proxy.ClientProxy"; public static final Enchantment lifeSteal = new WLLC_myWE_LifeSteal(69, 5); public static final Enchantment solidAir = new WLLC_myWE_SolidAir(70, 5); public static final Enchantment assassinBlessing = new WLLC_myWE_AssassinBlessing(71, 5); public static boolean solidAirBonus = false; public static boolean assassinBlessingBonus = false; }
There is a way to make it works also on server or should I give up?
Thx for the help -
I everybody,
I'm making a mod and I'm following shadowfacts' tutorial.
Today I wanted to da a simple crop, so following this tutorial I made my corn crops.
Everythink work except for one thing. When I righ-click on a block with my seeds the game crash.
My project: https://github.com/IlTosaerba/Minecraft-1.12.2-WLLC-Mod/tree/IlTosaerba-WLLC-1.12.2]-Mod (The "resource/assets" has been exploded 'cause GitHub don't permit the upload of +100 files and I don't understand how to create folders and so on)
Crash Error:
Spoiler---- Minecraft Crash Report ----
// You should try our sister game, Minceraft!Time: 3/11/18 5:33 PM
Description: Unexpected errorjava.lang.NullPointerException: Unexpected error
at net.minecraft.item.ItemSeeds.getPlant(ItemSeeds.java:61)
at net.minecraft.block.Block.canSustainPlant(Block.java:1931)
at net.minecraft.item.ItemSeeds.onItemUse(ItemSeeds.java:34)
at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:201)
at net.minecraft.client.multiplayer.PlayerControllerMP.processRightClickBlock(PlayerControllerMP.java:499)
at net.minecraft.client.Minecraft.rightClickMouse(Minecraft.java:1692)
at net.minecraft.client.Minecraft.processKeyBinds(Minecraft.java:2379)
at net.minecraft.client.Minecraft.runTickKeyboard(Minecraft.java:2145)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1933)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1186)
at net.minecraft.client.Minecraft.run(Minecraft.java:441)
at net.minecraft.client.main.Main.main(Main.java:118)
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:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
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.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
at GradleStart.main(GradleStart.java:26)
A detailed walkthrough of the error, its code path and all known details is as follows:
----------------------------------------------------------------------------------------- Head --
Thread: Client thread
Stacktrace:
at net.minecraft.item.ItemSeeds.getPlant(ItemSeeds.java:61)
at net.minecraft.block.Block.canSustainPlant(Block.java:1931)
at net.minecraft.item.ItemSeeds.onItemUse(ItemSeeds.java:34)
at net.minecraft.item.ItemStack.onItemUse(ItemStack.java:201)
at net.minecraft.client.multiplayer.PlayerControllerMP.processRightClickBlock(PlayerControllerMP.java:499)
at net.minecraft.client.Minecraft.rightClickMouse(Minecraft.java:1692)
at net.minecraft.client.Minecraft.processKeyBinds(Minecraft.java:2379)
at net.minecraft.client.Minecraft.runTickKeyboard(Minecraft.java:2145)-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [EntityPlayerSP['Player617'/226, l='MpServer', x=289.27, y=72.00, z=262.34]]
Chunk stats: MultiplayerChunkCache: 539, 539
Level seed: 0
Level generator: ID 00 - default, ver 1. Features enabled: false
Level generator options:
Level spawn location: World: (286,64,260), Chunk: (at 14,4,4 in 17,16; contains blocks 272,0,256 to 287,255,271), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,0,0 to 511,255,511)
Level time: 3635 game time, 3635 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: 88 total; [EntitySkeleton['Skeleton'/128, l='MpServer', x=286.52, y=49.00, z=238.27], EntitySkeleton['Skeleton'/129, l='MpServer', x=284.98, y=48.00, z=233.92], EntityZombie['Zombie'/130, l='MpServer', x=275.40, y=48.00, z=233.78], EntityBat['Bat'/131, l='MpServer', x=281.49, y=50.34, z=235.50], EntityCreeper['Creeper'/132, l='MpServer', x=279.23, y=48.00, z=237.52], EntitySpider['Spider'/133, l='MpServer', x=283.97, y=49.00, z=233.99], EntityCreeper['Creeper'/134, l='MpServer', x=283.82, y=39.00, z=269.58], EntityZombie['Zombie'/135, l='MpServer', x=274.50, y=30.00, z=275.50], EntityCreeper['Creeper'/136, l='MpServer', x=280.47, y=40.00, z=277.15], EntityCreeper['Creeper'/137, l='MpServer', x=285.43, y=39.00, z=277.79], EntityBat['Bat'/138, l='MpServer', x=279.38, y=32.87, z=274.65], EntitySkeleton['Skeleton'/139, l='MpServer', x=286.50, y=21.00, z=312.50], EntitySkeleton['Skeleton'/140, l='MpServer', x=274.16, y=24.00, z=307.82], EntityZombie['Zombie'/141, l='MpServer', x=275.75, y=24.00, z=311.49], EntitySkeleton['Skeleton'/142, l='MpServer', x=275.90, y=25.00, z=312.50], EntitySkeleton['Skeleton'/143, l='MpServer', x=274.50, y=25.00, z=316.50], EntityCreeper['Creeper'/144, l='MpServer', x=289.20, y=24.00, z=309.57], EntitySquid['Squid'/145, l='MpServer', x=276.21, y=57.89, z=321.77], EntityZombie['Zombie'/146, l='MpServer', x=280.50, y=15.00, z=334.50], EntitySkeleton['Skeleton'/147, l='MpServer', x=275.73, y=20.00, z=324.46], EntitySlime['Slime'/148, l='MpServer', x=278.78, y=17.55, z=326.85], EntityWitch['Witch'/149, l='MpServer', x=284.29, y=23.00, z=326.50], EntityZombie['Zombie'/150, l='MpServer', x=285.48, y=22.00, z=322.77], EntityItem['item.tile.mushroom'/155, l='MpServer', x=288.78, y=25.00, z=265.13], EntityEnderman['Enderman'/156, l='MpServer', x=300.76, y=29.00, z=263.50], EntitySkeleton['Skeleton'/157, l='MpServer', x=297.33, y=27.00, z=264.48], EntityCreeper['Creeper'/158, l='MpServer', x=288.83, y=39.00, z=271.51], EntityZombie['Zombie'/159, l='MpServer', x=296.21, y=42.00, z=284.58], EntityCreeper['Creeper'/160, l='MpServer', x=290.50, y=42.00, z=279.50], EntitySpider['Spider'/161, l='MpServer', x=303.30, y=32.00, z=278.00], EntityItem['item.tile.flower1.dandelion'/162, l='MpServer', x=293.93, y=61.00, z=312.42], EntityItem['item.tile.flower1.dandelion'/163, l='MpServer', x=294.65, y=63.00, z=308.25], EntitySquid['Squid'/164, l='MpServer', x=296.34, y=61.01, z=315.57], EntityItem['item.item.seeds'/165, l='MpServer', x=292.58, y=64.00, z=309.29], EntityItem['item.tile.flower1.dandelion'/166, l='MpServer', x=290.61, y=64.00, z=308.55], EntityItem['item.tile.flower1.dandelion'/167, l='MpServer', x=290.37, y=64.00, z=310.61], EntityPig['Pig'/174, l='MpServer', x=315.44, y=73.00, z=281.26], EntityPig['Pig'/175, l='MpServer', x=323.25, y=74.00, z=279.49], EntityPig['Pig'/176, l='MpServer', x=311.25, y=72.00, z=281.27], EntityPig['Pig'/177, l='MpServer', x=317.21, y=70.00, z=294.67], EntityBat['Bat'/178, l='MpServer', x=311.58, y=18.14, z=314.43], EntityZombie['Zombie'/179, l='MpServer', x=316.50, y=39.00, z=304.82], EntityZombie['Zombie'/180, l='MpServer', x=316.50, y=14.00, z=320.50], EntityPig['Pig'/54, l='MpServer', x=219.81, y=69.00, z=237.79], EntityPig['Pig'/55, l='MpServer', x=223.66, y=69.00, z=242.20], EntityBat['Bat'/56, l='MpServer', x=223.95, y=32.05, z=277.57], EntityWitch['Witch'/57, l='MpServer', x=222.50, y=39.00, z=277.50], EntityCreeper['Creeper'/58, l='MpServer', x=219.84, y=33.00, z=285.45], EntityItem['item.tile.flower2.poppy'/186, l='MpServer', x=331.06, y=64.00, z=228.99], EntityZombie['Zombie'/59, l='MpServer', x=222.50, y=32.00, z=284.19], EntitySkeleton['Skeleton'/187, l='MpServer', x=320.50, y=22.00, z=292.50], EntityCreeper['Creeper'/60, l='MpServer', x=218.50, y=19.00, z=296.50], EntitySkeleton['Skeleton'/188, l='MpServer', x=335.25, y=52.00, z=297.47], EntityZombie['Zombie'/189, l='MpServer', x=333.50, y=52.00, z=293.71], EntityZombie['Zombie'/62, l='MpServer', x=215.50, y=34.00, z=288.50], EntitySkeleton['Skeleton'/195, l='MpServer', x=340.29, y=15.00, z=198.49], EntityPig['Pig'/68, l='MpServer', x=234.12, y=70.00, z=245.50], EntityItem['item.item.seeds'/196, l='MpServer', x=343.34, y=64.00, z=290.22], EntityPig['Pig'/69, l='MpServer', x=225.60, y=69.00, z=246.78], EntityCreeper['Creeper'/70, l='MpServer', x=227.50, y=39.00, z=275.50], EntityCreeper['Creeper'/71, l='MpServer', x=225.18, y=39.00, z=276.58], EntityZombie['Zombie'/72, l='MpServer', x=226.50, y=22.00, z=299.50], EntityCreeper['Creeper'/73, l='MpServer', x=237.21, y=25.00, z=303.50], EntityBat['Bat'/346, l='MpServer', x=341.75, y=29.99, z=333.59], EntityItem['item.tile.mushroom'/95, l='MpServer', x=252.88, y=11.00, z=200.20], EntityCreeper['Creeper'/97, l='MpServer', x=246.50, y=12.00, z=325.50], EntityPlayerSP['Player617'/226, l='MpServer', x=289.27, y=72.00, z=262.34], EntityPig['Pig'/104, l='MpServer', x=261.62, y=69.00, z=197.76], EntityPig['Pig'/105, l='MpServer', x=269.29, y=68.00, z=202.65], EntityPig['Pig'/106, l='MpServer', x=256.76, y=69.00, z=204.77], EntitySkeleton['Skeleton'/107, l='MpServer', x=267.76, y=48.00, z=237.24], EntitySkeleton['Skeleton'/108, l='MpServer', x=257.34, y=32.00, z=252.08], EntityCreeper['Creeper'/109, l='MpServer', x=258.30, y=32.00, z=249.36], EntitySkeleton['Skeleton'/110, l='MpServer', x=256.51, y=33.00, z=253.25], EntityBat['Bat'/111, l='MpServer', x=269.57, y=53.10, z=241.06], EntityCreeper['Creeper'/112, l='MpServer', x=261.50, y=39.00, z=271.50], EntitySkeleton['Skeleton'/113, l='MpServer', x=260.45, y=39.00, z=276.23], EntityCreeper['Creeper'/114, l='MpServer', x=261.42, y=24.00, z=301.79], EntityZombie['Zombie'/115, l='MpServer', x=270.18, y=24.00, z=311.25], EntityZombie['Zombie'/116, l='MpServer', x=265.83, y=26.00, z=309.36], EntityZombie['Zombie'/117, l='MpServer', x=275.07, y=25.00, z=312.50], EntityZombie['Zombie'/118, l='MpServer', x=270.27, y=24.00, z=313.50], EntitySkeleton['Skeleton'/119, l='MpServer', x=256.49, y=28.00, z=308.32], EntityZombie['Zombie'/120, l='MpServer', x=257.50, y=28.00, z=312.50], EntityCreeper['Creeper'/124, l='MpServer', x=281.50, y=57.00, z=200.50], EntityPig['Pig'/125, l='MpServer', x=272.23, y=68.00, z=197.70], EntityZombie['Zombie'/126, l='MpServer', x=278.91, y=49.00, z=238.26], EntitySkeleton['Skeleton'/127, l='MpServer', x=282.50, y=48.00, z=235.50]]
Retry entities: 0 total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:461)
at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2896)
at net.minecraft.client.Minecraft.run(Minecraft.java:470)
at net.minecraft.client.main.Main.main(Main.java:118)
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:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
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.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97)
at GradleStart.main(GradleStart.java:26)-- System Details --
Details:
Minecraft Version: 1.12.2
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_162, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 523714776 bytes (499 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
IntCache: cache: 4, tcache: 0, allocated: 13, tallocated: 95
FML: MCP 9.42 Powered by Forge 14.23.2.2624 5 mods loaded, 5 mods active
States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored| State | ID | Version | Source | Signature |
|:--------- |:--------- |:------------ |:-------------------------------- |:--------- |
| UCHIJAAAA | minecraft | 1.12.2 | minecraft.jar | None |
| UCHIJAAAA | mcp | 9.42 | minecraft.jar | None |
| UCHIJAAAA | FML | 8.0.99.99 | forgeSrc-1.12.2-14.23.2.2624.jar | None |
| UCHIJAAAA | forge | 14.23.2.2624 | forgeSrc-1.12.2-14.23.2.2624.jar | None |
| UCHIJAAAA | wllc | 1.0 | bin | None |Loaded coremods (and transformers):
GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.6.0 NVIDIA 391.01' Renderer: 'GeForce GTX 1060 6GB/PCIe/SSE2'
Launched Version: 1.12.2
LWJGL: 2.9.4
OpenGL: GeForce GTX 1060 6GB/PCIe/SSE2 GL version 4.6.0 NVIDIA 391.01, NVIDIA Corporation
GL Caps: Using GL 1.3 multitexturing.
Using GL 1.3 texture combiners.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Shaders are available because OpenGL 2.1 is supported.
VBOs are available because OpenGL 1.5 is supported.Using VBOs: Yes
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)
CPU: 8x AMD FX(tm)-9590 Eight-Core Processor -
Oh dear, I really suck at doing models...
Is there a place on the forum where I can hire a person for a free json adjustment?
-
8 minutes ago, Choonster said:
It's a plain text file, you can just remove the line with the "parent" property.
Oh, cool, now I see my shield. Only need to adjust the json file to see it properly. Thanks a lot
-
On 10/3/2018 at 11:03 AM, Choonster said:
Yes, you need to create your own model or extend an existing one.
I tryed to create my costum models (with Blockbench) but it still "extend" from builtin/entity.
So the problem remain. How can i solve it?
Here's my project
-
2 minutes ago, Choonster said:
Edit the first post and add [Solved] to the thread title.
Ok thanks, only the last thing.
Why if I remove the parent line from the json model it still doesen't work? Is it because the "parent" attribute is a sort of "@Override"?
-
3 hours ago, Choonster said:
Yes, you need to create your own model or extend an existing one.
Since I don't have one for the shield, I will create my own... so, Thankyou
How can I set this trhead as solved?
-
9 hours ago, Daeruin said:
Depends a lot on what you want to do. I usually recommend Shadowfacts tutorials for the basics.
Thanks, I'm already using it
-
7 hours ago, Choonster said:
Your model extends from builtin/entity, which means Minecraft expects it to be rendered by a TileEntitySpecialRenderer. Since you don't have one, nothing renders.
Ideally you should use a regular baked model for the shield rather than a TESR.
So I need to create a costum model, right?
-
Hi everybody
I have a mod which need a shield.
So I copy-paste the shield models from vanilla, create the textures and the class ToolShield.java that is simil copyed from ItemShield.java
The problem is that when I lunch the game and select the shield it is invisible.
Here my project: https://github.com/IlTosaerba/Minecraft-1.12.2-WLLC-Mod
-
1 hour ago, Draco18s said:
It is used for weighed loot probabilities. e.g. fishing, dungeon chests, etc.
Oh, cool, so I was half right, after all. Can I use it also as random Entity (mobs) drops?
-
Just now, diesieben07 said:
This has nothing to do with EnumRarity.
My bad, I miss the part of the EnumRarities
-
5 hours ago, diesieben07 said:
What for? What are you trying to achieve?
I think he's trying to give Items a rarity and than base the drop of this Items on the rarity of the item itself.
Like, think that we put a LivingDropEvent on Zombie and say it can drop "Rusty sword [common]", "Elite sword [Rare]", "Creator's sword [Legendary]". You will have only one sword dropped by every single Zombie, the rusty will be the more common up to the rarest "Creator's sword".
-
1 hour ago, diesieben07 said:
How exactly did you install Forge? Are you talking about installing Forge in the launcher? Or the development environment?
I fixed the problem, like I just sayed
However now I'm looking for goods minecraft 1.12.2 modding tutorials. Any Idea?
-
4 hours ago, diesieben07 said:
1.12.2.
Call Block::getDrops (the deprecated one, for backwards compatibility) to obtain the drops.
I'm installing the 1.12.2 forge version. I first install the 1.12.2 vannila but when I try to lunch the forge version it gave me an error:
Seems like you are using a not supported modded game version
The game crashed whilst initializing game
QuoteThe game crashed whilst initializing game
Error: java.lang.NoClassDefFoundError: net/minecraft/util/Vec3No error's report
How can I fix it?
Fix it, I forgot to remove 1.8.9's mods lol
-
13 hours ago, diesieben07 said:
First of all stop using 1.8.9.
This is not as easy as you might think. Do you want the block to turn into it's drops? Or do you want to get the "pick block" (middle click) result?
What version should I use? Keep in mind that I'm doing this mod for a forge server. So I need a version that has lot of cool mods and that doesen't weight too much on the CPU and GPU.
What I want to do is that:
When u break a block it gives u the itemBlock right? It's drop.
I want this appening when I right click with my item without breaking the block. So when I right click on a random block with my Item it spawn its drop without being break.
-
Hi everybody
The problem is solved, just use an updated version of minecraft, like the 1.12.2
Have a nice day and good modding :3
-
Hello modders
For my mod I have a block which can power.
I need that the block power only when i click on it with a particular item...
For example
Block : Card reader
Item : Personal card
When I click with the personal card on the card reader, after a while the card reader power the Office Printer .
If i click on the card reader with any other Item it will do nothing -
I don't really understand if u wnat:
To put an animated texture on block/item
To make the dropped block/item rotate like in vannilla
To make a block which can move like minecart (for example)
Other
-
18 hours ago, Socratic_Phoenix said:
@IlTosaerba You're not supposed to copy the code... your supposed to look at the code and ask questions if you need help, I'm just providing another example. The Keys class just stores some constants, and the Tome class isn't at all connected to the crafting table... Use the example to write your own classes.
And the CraftingBlocks class what exatly contain?
-
18 hours ago, Socratic_Phoenix said:
@IlTosaerba You're not supposed to copy the code... your supposed to look at the code and ask questions if you need help, I'm just providing another example. The Keys class just stores some constants, and the Tome class isn't at all connected to the crafting table... Use the example to write your own classes.
Allright, I'll try hoping it will work
-
2 hours ago, Socratic_Phoenix said:
Go figure! I've done this exact thing!
See here and here for the relevant files. Basically, what you have to do is:
- Create the block (if you want to store the items in the block after a player has quit, you will need a TileEntity - normal crafting table & my crafting table do not do this)
- Create the container & gui
- Register the slots in the container & the textures in the gui
- Setup a GUI handler
- Add an right-click action to the block so that it opens the gui
- Create a custom recipe class or use minecraft's IRecipe (I created my own so it could access the player doing the crafting - this is probably not necessary, but it depends on what you're doing)
- If you made your own class, create some kind of registry to hold the recipes you want to have, otherwise just use CraftingManager
- Add checks in the crafting slot / container to see if the recipe is matched, and if it is, get the result and clear the table
- Voila! Tables!
If you have any specific questions, I'd be willing to help when I've got time.
Thanks but I can't apply your method 'cause u use a lot of class which I haven't. So if I try to copy ur code it will never work 'cause I haven't all class (for example Tome class and Keys class and others)
How to make a custom Workbench with "holes"
in Modder Support
Posted
Container code: