Jump to content

perromercenary00

Members
  • Posts

    849
  • Joined

  • Last visited

  • Days Won

    5

Everything posted by perromercenary00

  1. Good days i been spend the day making again mi guns and billets in 1.9 and get in the new changes to the DataWacher in entities i use the data wacher to sync data betwin the entities in server side to entity's in client side soo i could fix a Little issue about the position and rotations, anyway scavenging code i see the changes and I'm trying to figure out how to use them in this case i wanna use <Rotations> to store values in the server side and latter retrieve client side but client side i only get zeroes this its a resume of what i get private static final DataParameter <Byte> CRITICAL = EntityDataManager.<Byte>createKey(bala9mmEntity.class, DataSerializers.BYTE); private static final DataParameter<Integer> SHOOTINGID = EntityDataManager.<Integer>createKey(bala9mmEntity.class, DataSerializers.VARINT); private static final DataParameter<Rotations> BALAPXYZ = EntityDataManager.<Rotations>createKey(bala9mmEntity.class, DataSerializers.ROTATIONS); private static final DataParameter<Rotations> BALAMXYZ = EntityDataManager.<Rotations>createKey(bala9mmEntity.class, DataSerializers.ROTATIONS); private static final DataParameter<Rotations> BALARPY = EntityDataManager.<Rotations>createKey(bala9mmEntity.class, DataSerializers.ROTATIONS); The plan is update bullet position using BALAPXYZ, update bullet motions using BALAMXYZ and update rotation pitch and yawn in BALARPY so make the init() to load the values in the entity // ############################################################################################3 protected void entityInit() { this.dataWatcher.register(CRITICAL, Byte.valueOf((byte)0)); this.dataWatcher.register(SHOOTINGID, Integer.valueOf((int)0)); //Rotation resemble Vec3D to mi Rotations PXYZ = new Rotations(0,0,0); //just for dummy reasons this.dataWatcher.register(BALAPXYZ, (PXYZ) ); this.dataWatcher.register(BALAMXYZ, (PXYZ) ); this.dataWatcher.register(BALARPY, (PXYZ) ); } and here come the troubles, in the onUpdate method i read and write the values every 10Ticks public void onUpdate() { super.onUpdate(); if ( (onUpdateTick % 10) == 0) { World worldIn = this.worldObj; Rotations PXYZ = null; if (!worldIn.isRemote) { this.dataWatcher.set(SHOOTINGID, Integer.valueOf(this.shootingEntityID)); PXYZ = new Rotations((float)this.posX, (float)this.posY, (float)this.posZ); this.dataWatcher.set(BALAPXYZ, (PXYZ) ); } else { this.shootingEntityID = ((Integer)this.dataWatcher.get(SHOOTINGID)).intValue(); PXYZ = ( this.dataWatcher.get(BALAPXYZ) ); //PXYZ = DataSerializers.ROTATIONS. .read(this.dataWatcher.get(BALAPXYZ)); this.posX = PXYZ.getX(); this.posY = PXYZ.getY(); this.posZ = PXYZ.getZ(); } System.out.println("########## onUpdate() mundo="+worldIn.isRemote+" tick="+onUpdateTick+" SHID="+this.shootingEntityID+ "\nPXYZ x="+PXYZ.getX()+" y="+PXYZ.getY()+" z="+PXYZ.getZ() ); } onUpdateTick ++; ##### what is the correct way to serialize the Rotations() object to store it in the datawacher ? Rotations PXYZ = new Rotations((float)this.posX, (float)this.posY, (float)this.posZ); this.dataWatcher.set(BALAPXYZ, (PXYZ) ); ##### and whats the rightfull way to get again the values in the client side ? Rotations PXYZ = ( this.dataWatcher.get(BALAPXYZ) ); this.posX = PXYZ.getX(); this.posY = PXYZ.getY(); this.posZ = PXYZ.getZ(); coz in the console i get [12:08:49] [server thread/INFO] [sTDOUT]: [mercenarymod.entidades.balas.bala9mmEntity:onUpdate:278]: ########## onUpdate() mundo=false tick=0 SHID=292 PXYZ x=-225.7 y=65.52 z=602.7627 [12:08:49] [Client thread/INFO] [sTDOUT]: [mercenarymod.entidades.balas.bala9mmEntity:onUpdate:278]: ########## onUpdate() mundo=true tick=0 SHID=292 PXYZ x=0.0 y=0.0 z=0.0 Soo i think i have both wrong, i need and example of this thanks for reading
  2. soo the there is not yet replace for soo we remain using RenderingRegistry#registerEntityRenderingHandler for a while until they remove and replace it whith something else ?
  3. good days today i been working in the bullets for mi guns and I'm using entity arrow as base actually i made the render works, soo is working but i see that the "registerEntityRenderingHandler" part from RenderingRegistry.registerEntityRenderingHandler(mercenarymod.entidades.balas.bala9mmEntity.class, new mercenarymod.entidades.balas.bala9mmRender(Minecraft.getMinecraft().getRenderManager()) ); is underlining, is market as deprecated ##### soo what has replace it ?? and how i declare this render with that new method ##### if i leave this this way could it become troublesome in the future ??
  4. nop is only than now thay changed becoze after all are from the same kind i have to change the code for mi mod lozas to this so i could mach the bounding box and the collision box // ###########################################################3 @Override public AxisAlignedBB getBoundingBox(IBlockState state, IBlockAccess source, BlockPos pos) { EnumFacing enumfacing = (EnumFacing) state.getValue(FACING); int ifacing = enumfacing.getIndex(); AxisAlignedBB bb = new AxisAlignedBB(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F); switch (ifacing) { default: // up bb = new AxisAlignedBB(0.0F, 0.66F, 0.0F, 1.0F, 1.0F, 1.0F); break; case 1: // down bb = new AxisAlignedBB(0.0F, 0.0F, 0.0F, 1.0F, 0.33F, 1.0F); break; case 2: // north bb = new AxisAlignedBB(0.0F, 0.0F, 0.66F, 1.0F, 1.0F, 1.0F); break; case 3: // south bb = new AxisAlignedBB(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.33F); break; case 4: // west bb = new AxisAlignedBB(0.66F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); break; case 5: // east bb = new AxisAlignedBB(0.0F, 0.0F, 0.0F, 0.33F, 1.0F, 1.0F); break; } return bb; } // ###########################################################3 @Override public AxisAlignedBB getSelectedBoundingBox(IBlockState state, World worldIn, BlockPos pos) { EnumFacing enumfacing = (EnumFacing) state.getValue(FACING); int ifacing = enumfacing.getIndex(); AxisAlignedBB bb = new AxisAlignedBB(0.0F, 0.0F, 0.0F, 0.0F, 0.0F, 0.0F); switch (ifacing) { default: // up bb = new AxisAlignedBB(0.0F, 0.66F, 0.0F, 1.0F, 1.0F, 1.0F); break; case 1: // down bb = new AxisAlignedBB(0.0F, 0.0F, 0.0F, 1.0F, 0.33F, 1.0F); break; case 2: // north bb = new AxisAlignedBB(0.0F, 0.0F, 0.66F, 1.0F, 1.0F, 1.0F); break; case 3: // south bb = new AxisAlignedBB(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, 0.33F); break; case 4: // west bb = new AxisAlignedBB(0.66F, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); break; case 5: // east bb = new AxisAlignedBB(0.0F, 0.0F, 0.0F, 0.33F, 1.0F, 1.0F); break; } return bb; } // ###########################################################3 and not criying about it, and i think is bether this way
  5. well i couldn't make it run but looks more like the kind of animation you do on the chest top went open this could be use to animate a item in hand ? more exactly to create a fluid item animation to replace something like the bow tighten animation
  6. good nights this time this post is not an accident actually i think i found a bug the trouble is i can't replace the selected itemStack for another using the methods from the item class like onItemUseFinish() or onPlayerStoppedUsing() as i do in 1.8 this is the post with original question i made in the forums http://www.minecraftforge.net/forum/index.php/topic,37521.msg197729.html#msg197729 lets say i have this ItemStackIn is in the slot 1 from the hotbar if in the item code i do something like @Override public void onPlayerStoppedUsing(ItemStack stack, World worldIn, EntityLivingBase entityLiving, int timeLeft) { if (!worldIn.isRemote){ if (entityLiving instanceof EntityPlayer) { EntityPlayer playerIn = (EntityPlayer) entityLiving; playerIn.inventory.setInventorySlotContents( 1, replaceItemStack); } } the change is not happening and i remain with ItemStackIn in the slot 1 but if i set the item in any other slot playerIn.inventory.setInventorySlotContents( 2, replaceItemStack); i end having ItemStackIn in the slot 1 and replaceItemStack in slot 2 the only slot i couldn't replace is the one containing the item on use could you fix this Thank for reading [/code]
  7. good days i having suggestion about the json models works as they come in 1.8 if i wanna make an animated item little more complex i need to make a separate json file for every animation frame of mi mod resulting in than to make a simeple pistol like this i have to create 22 diferent json files and is not exactly the best animation when i notice the change in the json files for the 1.9 i think for a brief this could be solved all the textures and rotations controlled by a single file but wass not as i think in the new system the old method ModelResourceLocation getModel() just get moved to a json file and from this i must call all the other jsons using predicates :{}, soo still i have to create 22 files plus this one json replacing the getModel() soo i suggest to make posible to anidate a json extructure inside another json file soo in place of doing something like this declaring four separate files https://gist.github.com/anonymous/85acc8c28e6c108f5cf9 you could do something like this, all in just one file https://gist.github.com/anonymous/b30ea632b3a1dbc6f0ec or even more convenient give the hability of only declare the replace for the textures https://gist.github.com/anonymous/ee3d2b2f169e6347a855 well thanks for reading and sorry im not native english speak
  8. mi error now i second it [11:37:35] [main/INFO] [FML]: Forge Mod Loader version 12.16.0.1802 for Minecraft 1.9 loading [11:37:35] [main/INFO] [FML]: Java is Java HotSpot 64-Bit Server VM, version 1.8.0_65, running on Linux:amd64:3.16.0-4-amd64, installed at /opt/jdk1.8.0_65/jre [11:40:20] [Client thread/INFO] [sTDOUT]: [mercenarymod.items.materiales.materialesHierroAlrojo:onItemUseFirst:71]: onItemUseFirst hand=OFF_HAND mundo=true [11:40:22] [Client thread/INFO] [sTDOUT]: [mercenarymod.items.materiales.materialesHierroAlrojo:onItemUseFirst:71]: onItemUseFirst hand=OFF_HAND mundo=true [11:40:25] [Client thread/INFO] [sTDOUT]: [mercenarymod.items.materiales.materialesHierroAlrojo:onItemUseFirst:71]: onItemUseFirst hand=MAIN_HAND mundo=true [11:40:26] [Client thread/INFO] [sTDOUT]: [mercenarymod.items.materiales.materialesHierroAlrojo:onItemUseFirst:71]: onItemUseFirst hand=MAIN_HAND mundo=true forge it only works local side
  9. may the forge version ? i make some test coz also am updating items from 1.8 and has some trouble replacing the item and test [09:02:08] [Client thread/INFO] [sTDOUT]: [mercenarymod.items.materiales.materialesHierroAlrojo:onItemUse:67]: onItemUse hand=OFF_HAND mundo=true [09:02:08] [server thread/INFO] [sTDOUT]: [mercenarymod.items.materiales.materialesHierroAlrojo:onItemUse:67]: onItemUse hand=OFF_HAND mundo=false [09:02:12] [Client thread/INFO] [sTDOUT]: [mercenarymod.items.materiales.materialesHierroAlrojo:onItemUse:67]: onItemUse hand=MAIN_HAND mundo=true [09:02:12] [server thread/INFO] [sTDOUT]: [mercenarymod.items.materiales.materialesHierroAlrojo:onItemUse:67]: onItemUse hand=MAIN_HAND mundo=false @Override public EnumActionResult onItemUse(ItemStack stack, EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { //chat.chatm(playerIn, "onItemUse hand="+hand+" mundo="+worldIn.isRemote); System.out.println("onItemUse hand="+hand+" mundo="+worldIn.isRemote); return EnumActionResult.PASS; } or may you still use the method as declared in 1.8,
  10. i having the same issue but i just leave it behind forge 1.9 has only like a week of release and still has a lot of little isues may the fixed in the early time also custom shields dont works, dont crash or throw error of any kind but still the custom shield is not apering in the cretive inventory
  11. yap but i wanna make this especific blocks from mi mod undestructible by bare hands, soo if you wanna pass here you have to doit whith the right tool or blow up the blocks
  12. good days im porting mi blocks and doors to 1.9 and realize something well if i set in the constructor fro the block whith this.setHarvestLevel("pickaxe", 3); this means than the block can only be harvested whith peckaxes of at least level 3 but you still can break the block whith a wodden pickaxe ##### if i wanna make this block only breakeable if is done whith the right tool and level is there sme where something like an this.setBreakLevel("pickaxe", 3); or something that makes the block unbreakeable unless the right tool is used
  13. i still working whith this item lets see i wanna update this item to 1.9 this suspension de redstone when you hold rigth click it change the texture from this (estatica) to this (shaking) and if you hold it shaken for more than 10 sec becomes this (shaked) i have the item materialesSuspensionderedstone that use the texture (estatica) when i hold right click i change the item texture to (shaking) and afther 60 ticks i do the change in onItemUseFinish() replacing teh item whith materialesSuspensionderedstoneActivada that uses texture (shaked) the trouble is the item is not changing to redstoneActivada in the inventory in the code the console output the change is done but the resulting is you remain whith the original bottle in the hand well i found than the offhand is the slot 40 from Player inventory, and im doing the change only server side, and if iset the output to another slot then i have the correct bottle in that slot ############ is this some new feature i have to do something else to change the holded item or is just a bug from the eaarly releaser ?? code is here https://gist.github.com/anonymous/7856798aa7b17366e64a thanks for reading
  14. i new feature i found onUpdate() only works for item in the main hand, and the other side looks like you can ask for the active hand in the server side, local side returns null /** * Called each tick as long the item is on a player inventory. Uses by maps to check if is on a player hand and * update it's contents. */ public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) { if ( isSelected && !worldIn.isRemote ) { if (entityIn instanceof EntityLivingBase) { EntityLivingBase playerIn = (EntityLivingBase) entityIn; EnumHand ManoActiva = playerIn.getActiveHand(); System.out.println( "ManoActiva="+ManoActiva ); } } }
  15. help mi get this straight what is seting the value of the the property "shake" is te code in the constructor that define the the property "shake" and this methosd apply(ItemStack stack, World worldIn, EntityLivingBase entityIn) its like an onUpdate() but only works client side @SideOnly(Side.CLIENT) public float apply(ItemStack stack, World worldIn, EntityLivingBase entityIn) { if ( (entityIn != null) && (entityIn.isHandActive()) && (entityIn.getActiveItemStack() == stack ) ) { //System.out.println(" apply() Mundo="+worldIn.isRemote); return 1.0F; }else { return 0.0F; } //return entityIn != null && entityIn.isHandActive() && entityIn.getActiveItemStack() == stack ? 1.0F : 0.0F ; } i try to add a system.out to prove this theory but causes the game to crash whith an error pointing to the line whith the system.out so i coment it. if this theory is true later i gonna get a hard time sending the values to client world to set the animations and the default texture coz depends on the type of magazine the gun have [20:38:41] [Client thread/FATAL]: Reported exception thrown! net.minecraft.util.ReportedException: Rendering item at net.minecraft.client.renderer.RenderItem.renderItemAndEffectIntoGUI(RenderItem.java:389) ~[RenderItem.class:?] at net.minecraft.client.gui.GuiIngame.renderHotbarItem(GuiIngame.java:1166) ~[GuiIngame.class:?] at net.minecraft.client.gui.GuiIngame.renderHotbar(GuiIngame.java:522) ~[GuiIngame.class:?] at net.minecraftforge.client.GuiIngameForge.renderHotbar(GuiIngameForge.java:308) ~[GuiIngameForge.class:?] at net.minecraftforge.client.GuiIngameForge.renderGameOverlay(GuiIngameForge.java:121) ~[GuiIngameForge.class:?] at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1125) ~[EntityRenderer.class:?] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1135) ~[Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:401) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:118) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_65] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.12.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.12.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_65] at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_65] at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) [start/:?] at GradleStart.main(GradleStart.java:26) [start/:?] Caused by: java.lang.NullPointerException at mercenarymod.items.materiales.materialesSuspensionderedstone$1.apply(materialesSuspensionderedstone.java:57) ~[materialesSuspensionderedstone$1.class:?] at net.minecraft.client.renderer.block.model.ItemOverride.matchesItemStack(ItemOverride.java:47) ~[itemOverride.class:?] at net.minecraft.client.renderer.block.model.ItemOverrideList.applyOverride(ItemOverrideList.java:37) ~[itemOverrideList.class:?] at net.minecraft.client.renderer.block.model.ItemOverrideList.handleItemState(ItemOverrideList.java:52) ~[itemOverrideList.class:?] at net.minecraft.client.renderer.RenderItem.getItemModelWithOverrides(RenderItem.java:253) ~[RenderItem.class:?] at net.minecraft.client.renderer.RenderItem.renderItemAndEffectIntoGUI(RenderItem.java:355) ~[RenderItem.class:?] ... 20 more [20:38:41] [Client thread/INFO] [sTDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:645]: ---- Minecraft Crash Report ---- // Shall we play a game? Time: 20/03/16 08:38 PM Description: Rendering item java.lang.NullPointerException: Rendering item at mercenarymod.items.materiales.materialesSuspensionderedstone$1.apply(materialesSuspensionderedstone.java:57) at net.minecraft.client.renderer.block.model.ItemOverride.matchesItemStack(ItemOverride.java:47) at net.minecraft.client.renderer.block.model.ItemOverrideList.applyOverride(ItemOverrideList.java:37) at net.minecraft.client.renderer.block.model.ItemOverrideList.handleItemState(ItemOverrideList.java:52) at net.minecraft.client.renderer.RenderItem.getItemModelWithOverrides(RenderItem.java:253) at net.minecraft.client.renderer.RenderItem.renderItemAndEffectIntoGUI(RenderItem.java:355) at net.minecraft.client.gui.GuiIngame.renderHotbarItem(GuiIngame.java:1166) at net.minecraft.client.gui.GuiIngame.renderHotbar(GuiIngame.java:522) at net.minecraftforge.client.GuiIngameForge.renderHotbar(GuiIngameForge.java:308) at net.minecraftforge.client.GuiIngameForge.renderGameOverlay(GuiIngameForge.java:121) at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1125) at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1135) at net.minecraft.client.Minecraft.run(Minecraft.java:401) at net.minecraft.client.main.Main.main(Main.java:118) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) 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(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) 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 -- Stacktrace: at mercenarymod.items.materiales.materialesSuspensionderedstone$1.apply(materialesSuspensionderedstone.java:57) at net.minecraft.client.renderer.block.model.ItemOverride.matchesItemStack(ItemOverride.java:47) at net.minecraft.client.renderer.block.model.ItemOverrideList.applyOverride(ItemOverrideList.java:37) at net.minecraft.client.renderer.block.model.ItemOverrideList.handleItemState(ItemOverrideList.java:52) at net.minecraft.client.renderer.RenderItem.getItemModelWithOverrides(RenderItem.java:253) -- Item being rendered -- Details: Item Type: mercenarymod.items.materiales.materialesSuspensionderedstone@1fae388c Item Aux: 0 Item NBT: null Item Foil: false Stacktrace: at net.minecraft.client.renderer.RenderItem.renderItemAndEffectIntoGUI(RenderItem.java:355) at net.minecraft.client.gui.GuiIngame.renderHotbarItem(GuiIngame.java:1166) at net.minecraft.client.gui.GuiIngame.renderHotbar(GuiIngame.java:522) at net.minecraftforge.client.GuiIngameForge.renderHotbar(GuiIngameForge.java:308) at net.minecraftforge.client.GuiIngameForge.renderGameOverlay(GuiIngameForge.java:121) -- Affected level -- Details: Level name: MpServer All players: 1 total; [EntityPlayerSP['Player903'/193, l='MpServer', x=93,57, y=70,00, z=-329,43]] Chunk stats: MultiplayerChunkCache: 251, 251 Level seed: 0 Level generator: ID 00 - default, ver 1. Features enabled: false Level generator options: Level spawn location: World: (-116,64,52), Chunk: (at 12,4,4 in -8,3; contains blocks -128,0,48 to -113,255,63), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511) Level time: 156251 game time, 8321 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: 77 total; [EntitySpider['Araña'/384, l='MpServer', x=136,50, y=25,00, z=-324,50], EntitySpider['Araña'/385, l='MpServer', x=137,50, y=25,00, z=-326,50], EntitySkeleton['Esqueleto'/257, l='MpServer', x=15,50, y=51,00, z=-396,50], EntityBat['Murciélago'/386, l='MpServer', x=141,53, y=26,52, z=-308,03], EntityChicken['Gallina'/387, l='MpServer', x=141,85, y=75,00, z=-316,56], EntityBat['Murciélago'/388, l='MpServer', x=141,79, y=61,18, z=-267,31], EntityBat['Murciélago'/389, l='MpServer', x=135,44, y=50,10, z=-256,74], EntityBat['Murciélago'/392, l='MpServer', x=135,86, y=55,07, z=-251,33], EntityItem['item.item.seeds'/395, l='MpServer', x=157,20, y=63,00, z=-390,75], EntityZombie['Zombi'/396, l='MpServer', x=159,50, y=27,00, z=-348,50], EntityZombie['Zombi'/397, l='MpServer', x=158,50, y=27,00, z=-349,50], EntityZombie['Zombi'/398, l='MpServer', x=159,50, y=27,00, z=-349,50], EntityChicken['Gallina'/270, l='MpServer', x=13,81, y=70,00, z=-253,85], EntityChicken['Gallina'/399, l='MpServer', x=150,55, y=72,00, z=-323,86], EntityCreeper['Creeper'/400, l='MpServer', x=148,50, y=24,00, z=-307,50], EntityChicken['Gallina'/401, l='MpServer', x=149,50, y=72,00, z=-318,50], EntityChicken['Gallina'/402, l='MpServer', x=153,54, y=72,00, z=-318,39], EntityCreeper['Creeper'/403, l='MpServer', x=145,50, y=26,00, z=-264,50], EntityZombie['Zombi'/281, l='MpServer', x=16,50, y=51,00, z=-397,50], EntitySheep['Oveja'/282, l='MpServer', x=22,39, y=70,00, z=-369,71], EntitySheep['Oveja'/283, l='MpServer', x=29,36, y=71,00, z=-370,01], EntitySkeleton['Esqueleto'/412, l='MpServer', x=161,50, y=18,00, z=-303,50], EntitySheep['Oveja'/284, l='MpServer', x=22,73, y=70,00, z=-368,47], EntitySheep['Oveja'/285, l='MpServer', x=28,99, y=71,00, z=-372,65], EntitySkeleton['Esqueleto'/286, l='MpServer', x=30,50, y=40,00, z=-351,50], EntityHorse['Caballo'/414, l='MpServer', x=165,70, y=70,00, z=-288,37], EntityHorse['Caballo'/418, l='MpServer', x=166,11, y=69,00, z=-285,98], EntityItem['item.item.seeds'/291, l='MpServer', x=31,29, y=62,00, z=-317,29], EntitySkeleton['Esqueleto'/419, l='MpServer', x=167,50, y=22,00, z=-268,50], EntityChicken['Gallina'/292, l='MpServer', x=30,57, y=67,00, z=-297,60], EntityChicken['Gallina'/293, l='MpServer', x=28,55, y=68,00, z=-287,79], EntityChicken['Gallina'/294, l='MpServer', x=22,46, y=70,00, z=-251,54], EntityChicken['Gallina'/295, l='MpServer', x=25,14, y=69,00, z=-252,48], EntityChicken['Gallina'/297, l='MpServer', x=23,39, y=68,00, z=-254,94], EntityZombie['Zombi'/301, l='MpServer', x=46,80, y=50,00, z=-369,52], EntityItem['item.item.seeds'/302, l='MpServer', x=39,78, y=63,00, z=-350,46], EntityChicken['Gallina'/303, l='MpServer', x=38,84, y=68,00, z=-304,29], EntityChicken['Gallina'/304, l='MpServer', x=37,87, y=66,00, z=-314,41], EntityChicken['Gallina'/305, l='MpServer', x=47,29, y=66,65, z=-296,05], EntityChicken['Gallina'/306, l='MpServer', x=47,18, y=68,00, z=-302,45], EntityChicken['Gallina'/307, l='MpServer', x=39,50, y=68,00, z=-297,21], EntityItem['item.item.seeds'/308, l='MpServer', x=45,28, y=65,00, z=-294,48], EntityChicken['Gallina'/309, l='MpServer', x=41,63, y=68,00, z=-290,19], EntityItem['item.item.seeds'/316, l='MpServer', x=48,70, y=62,00, z=-359,26], EntityChicken['Gallina'/317, l='MpServer', x=49,89, y=63,00, z=-360,51], EntityItem['item.tile.flower1.dandelion'/318, l='MpServer', x=48,59, y=62,00, z=-359,58], EntityChicken['Gallina'/319, l='MpServer', x=59,87, y=69,00, z=-323,86], EntityChicken['Gallina'/320, l='MpServer', x=61,85, y=69,00, z=-313,63], EntityChicken['Gallina'/321, l='MpServer', x=50,07, y=68,00, z=-288,45], EntityChicken['Gallina'/322, l='MpServer', x=60,16, y=68,00, z=-294,39], EntityChicken['Gallina'/323, l='MpServer', x=58,85, y=68,00, z=-286,48], EntityChicken['Gallina'/330, l='MpServer', x=71,10, y=68,00, z=-304,68], EntityChicken['Gallina'/331, l='MpServer', x=65,18, y=67,00, z=-288,59], EntityZombie['Zombi'/332, l='MpServer', x=74,08, y=19,00, z=-261,92], EntityZombie['Zombi'/333, l='MpServer', x=74,65, y=19,00, z=-261,35], EntitySkeleton['Esqueleto'/334, l='MpServer', x=70,50, y=49,00, z=-264,50], EntityZombie['Zombi'/341, l='MpServer', x=85,45, y=16,00, z=-317,75], EntityChicken['Gallina'/342, l='MpServer', x=83,77, y=69,00, z=-312,84], EntityPlayerSP['Player903'/193, l='MpServer', x=93,57, y=70,00, z=-329,43], EntityZombie['Zombi'/344, l='MpServer', x=87,56, y=23,00, z=-263,75], EntityItem['item.item.seeds'/352, l='MpServer', x=103,44, y=62,00, z=-391,98], EntityCreeper['Creeper'/353, l='MpServer', x=101,50, y=22,00, z=-263,50], EntityBat['Murciélago'/354, l='MpServer', x=108,76, y=45,96, z=-257,34], EntityChicken['Gallina'/366, l='MpServer', x=115,51, y=70,00, z=-364,16], EntityChicken['Gallina'/367, l='MpServer', x=114,90, y=72,00, z=-353,74], EntityChicken['Gallina'/368, l='MpServer', x=113,36, y=71,00, z=-330,84], EntitySkeleton['Esqueleto'/369, l='MpServer', x=112,50, y=25,00, z=-303,50], EntityBat['Murciélago'/370, l='MpServer', x=114,62, y=42,12, z=-264,02], EntitySkeleton['Esqueleto'/375, l='MpServer', x=130,50, y=33,00, z=-398,50], EntityCreeper['Creeper'/376, l='MpServer', x=131,50, y=60,00, z=-394,50], EntityItem['item.item.seeds'/377, l='MpServer', x=134,13, y=65,00, z=-377,92], EntityItem['item.item.seeds'/378, l='MpServer', x=136,93, y=66,00, z=-380,72], EntityChicken['Gallina'/379, l='MpServer', x=135,51, y=71,00, z=-352,84], EntityChicken['Gallina'/380, l='MpServer', x=130,82, y=70,00, z=-365,16], EntityChicken['Gallina'/381, l='MpServer', x=130,77, y=69,82, z=-357,49], EntityChicken['Gallina'/382, l='MpServer', x=132,44, y=71,00, z=-349,85], EntityChicken['Gallina'/383, l='MpServer', x=129,07, y=71,00, z=-350,87]] Retry entities: 0 total; [] Server brand: fml,forge Server type: Integrated singleplayer server Stacktrace: at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:445) at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2766) at net.minecraft.client.Minecraft.run(Minecraft.java:422) at net.minecraft.client.main.Main.main(Main.java:118) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) 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(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at net.minecraftforge.gradle.GradleStartCommon.launch(GradleStartCommon.java:97) at GradleStart.main(GradleStart.java:26) -- System Details -- Details: Minecraft Version: 1.9 Operating System: Linux (amd64) version 3.16.0-4-amd64 Java Version: 1.8.0_65, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 777228792 bytes (741 MB) / 1056309248 bytes (1007 MB) up to 2130051072 bytes (2031 MB) JVM Flags: 4 total; -Xincgc -Xmx1024M -Xms1024M -Xmx2g IntCache: cache: 0, tcache: 0, allocated: 12, tallocated: 94 FML: MCP 9.23 Powered by Forge 12.16.0.1767 4 mods loaded, 4 mods active States: 'U' = Unloaded 'L' = Loaded 'C' = Constructed 'H' = Pre-initialized 'I' = Initialized 'J' = Post-initialized 'A' = Available 'D' = Disabled 'E' = Errored UCHIJAAAA mcp{9.19} [Minecraft Coder Pack] (minecraft.jar) UCHIJAAAA FML{8.0.99.99} [Forge Mod Loader] (forgeSrc-1.9-12.16.0.1767-1.9.jar) UCHIJAAAA Forge{12.16.0.1767} [Minecraft Forge] (forgeSrc-1.9-12.16.0.1767-1.9.jar) UCHIJAAAA modmercenario{1.8.9} [modmercenario] (bin) Loaded coremods (and transformers): GL info: ' Vendor: 'NVIDIA Corporation' Version: '4.4.0 NVIDIA 340.93' Renderer: 'GeForce GT 520/PCIe/SSE2' Launched Version: 1.9 LWJGL: 2.9.4 OpenGL: GeForce GT 520/PCIe/SSE2 GL version 4.4.0 NVIDIA 340.93, 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: No Is Modded: Definitely; Client brand changed to 'fml,forge' Type: Client (map_client.txt) Resource Packs: Current Language: Español (España) Profiler Position: N/A (disabled) CPU: 2x Intel(R) Celeron(R) CPU G1610 @ 2.60GHz [20:38:41] [Client thread/INFO] [sTDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:645]: #@!@# Game crashed! Crash report saved to: #@!@# /home/usuario/Modding/forge-1.9-1767-modmercenario/run/./crash-reports/crash-2016-03-20_20.38.41-client.txt AL lib: (EE) alc_cleanup: 1 device not closed
  16. when i see the new feature allowing to hold two items at same i only could drow in the posibilityes like in the old mine and blade mod use two swords to fight, or fight sword and shield, mi mod is like 40% fireguns soo i imagine using dual pistols no matther the kind or even more get the assault rifle in one hand and wields mi drill in the other hand as a bioshock bigDady soo i spend the weaken playing around whith the 1.9 code trying to understand the changes and now how far i can get whith it and set some system outs in a custom item [/code] //############################################################################################3 public ActionResult<ItemStack> onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn, EnumHand hand) { boolean sePudo = true; System.out.println("\n onItemRightClick(" +itemStackIn.getUnlocalizedName()+ "World="+worldIn.isRemote+ "EntityPlayer="+playerIn.getName()+ "EnumHand="+hand.name()+ ")\n"); playerIn.setActiveHand(hand); //this line is equivalent to playerIn.setItemInUse() //trigger as well onUsingTick() and onPlayerStoppedUsing() return sePudo ? new ActionResult(EnumActionResult.FAIL, itemStackIn) : new ActionResult(EnumActionResult.PASS, itemStackIn); } //############################################################################################3 public boolean onEntitySwing(EntityLivingBase entityLiving, ItemStack itemStackIn) { World worldIn = entityLiving.worldObj; if (entityLiving instanceof EntityPlayer) { EntityPlayer playerIn = (EntityPlayer) entityLiving; EnumHand hand = playerIn.getActiveHand(); ItemStack offHand = playerIn.getHeldItem(EnumHand.OFF_HAND); ItemStack mainHand = playerIn.getHeldItem(EnumHand.MAIN_HAND); System.out.println("\n onItemLeftClick(" +itemStackIn.getUnlocalizedName()+ "World="+worldIn.isRemote+ "EntityPlayer="+playerIn.getName()+ //"EnumHand="+hand.name()+ ")\n"); } return false; } if i take two of this same item "materialesSuspensionderedstone" in left and right hand and press the butons Both item respond to onItemRightClick() but only if there is not present of this line playerIn.setActiveHand(hand); in the code if playerIn.setActiveHand(hand); is present in this case like both have coz are the same only respond the rightHand item the leftHand do nothing but if i left only the item in the leftHand and nothing in the other or an item whithout playerIn.setActiveHand(hand); then the leftHand respond onEntitySwing() only works whith the rigthHand the leftHand do nothing even if its the only Item and rigthHand its empty if i wield two vainilla swords only the one in the rightHand works this is congruent whith mi little results onEntitySwing() dont work whith leftHand items and leftHand onItemRightClick() only works if the rigthHand has'not the playerIn.setActiveHand(hand) line or the same is an item that does nothing on right click like a simple stick by the nature of mi mod guns i need to implement a onItemLeftClick() wass hard on the 1.8 and gonna be harder in 1.9, i imaginate it than when you have two item on both hands and press right click it activates the rightHand onItemRightClick(), and if you press leftClick it the activates lefthand onItemRightClick() allowing to do the complex things from both items at same time like shooth two diferent guns at same time or atack whit two mellee weapons at same time or one of the one and other of the other kind #######################################333 the post get to long the question is is posibble to trigger the method onItemRightClick() from your LeftHand Item pressing and holding LeftClick ??
  17. looks like playerIn.setActiveHand(hand); has replaced playerIn.setItemInUse(suspencion, this.getMaxItemUseDuration(suspencion)); now mi item shake when hold right click and works even if the bottle is in the left hand but neithers know whats or where is made the change of new ResourceLocation("shake") to one i need to know this coz later i have to animate mi guns and i do that cicling textures i been trying float shake = (float) (this.getPropertyGetter(new ResourceLocation("shake")).floatValue) ; whiout succes looks like the ItemClass has' no methods to retrive this values, but the json get the changes a change the dispaly model for thi item
  18. good days lets see i wanna update this item to 1.9 this suspension de redstone when you hold rigth click it change the texture from this (estatica) to this (shaking) and if you hold it shaken for more than 10 sec becomes this (shaked) but now everithing has change and ModelResourceLocation getModel(ItemStack, playerIn, useRemaining) dont works any more i been scavenging in the ItemBow class and made some experimets create a property "shake" and made a json but i dont understand how to change the value of shake to "1", to change the dispayed item image from the firs (statica) to the second (shaking), the thirth (shaked) is a diferent item soo here dont gonna do nothing whith it #### soo how do i change the item property value "shake" from "0" to "1" to change the display texture of the item #### i wass looking here and there and looks like the item properties can only be of (float) type but in the ItemBow.class they declare a property "pull" and other "pulling" the two are aplied as float values but later in bow.json they use it "pulling" like an int and "pull" as float "predicate": { "pulling": 1, "pull": 0.65 }, wtf ?? and it works! #### mi code https://gist.github.com/anonymous/62db605629488d69bace mi json https://gist.github.com/anonymous/59aeadfaf19faef41295 and the other json https://gist.github.com/anonymous/a8a6af4ce7ee25a26648 Thanks for reading
  19. ya i wass thinking in made thath but first i have to fix the parental model this is an ingot and i wanted to make a 3d model of an ingot at hand but its harder than it looks
  20. sorry a found an example in vainilla bow json "display": { "thirdperson_righthand": { "rotation": [ -80, 260, -40 ], "translation": [ -1, -2, 2.5 ], "scale": [ 0.9, 0.9, 0.9 ] }, "thirdperson_lefthand": { "rotation": [ -80, -280, 40 ], "translation": [ -1, -2, 2.5 ], "scale": [ 0.9, 0.9, 0.9 ] }, "firstperson_righthand": { "rotation": [ 0, -90, 25 ], "translation": [ 1.13, 5.2, 1.13], "scale": [ 0.5, 0.5, 0.5 ] }, "firstperson_lefthand": { "rotation": [ 0, 90, -25 ], "translation": [ 1.13, 5.2, 1.13], "scale": [ 0.5, 0.5, 0.5 ] }, "gui": { "rotation": [ 45, 22.5, 0 ], "translation": [ 0, 0, 0 ], "scale": [ 1.0, 1.0, 1.0 ] } }
  21. Good days i speend all the afternoon resolving issues whith json files from mi mod and stuck whith this feature normaly I used in mi json files for mi items this kind of code "display": { "thirdperson": { "rotation": [ 0, 0, 45 ], "translation": [ 0, 0, 0 ], "scale": [ 0.5, 0.5, 0.5 ] }, "firstperson": { "rotation": [ 0, 0, 45 ], "translation": [ 0, 16, 0 ], "scale": [ 0.125, 0.125, 0.125 ] }, "gui": { "rotation": [ 45, 22.5, 0 ], "translation": [ 0, 0, 0 ], "scale": [ 1.0, 1.0, 1.0 ] } } to adjust the position and rotation of the item in the diferents modes, thirdperson, firstperson, and the way the item looks in the Inventory but in this case the changes i made has no efect on position scale|translation|rotation for thirdperson and firstperson only the gui values seems to work to adjust the inventory icon rotation and position ############################# they change this behaveour there is no other explanation, but now ¿ how do you adjust the scale|translation|rotation of an item in this new schemme? full json { "textures": { "particle": "blocks/blocks/blocks/blocks/modmercenario:items/materiales/acero", "0": "modmercenario:items/materiales/aceroi", "1": "modmercenario:items/materiales/transparencia", "2": "modmercenario:items/materiales/acerob" }, "elements": [ { "name": "Element", "from": [ 2.0, 6.0, 6.0 ], "to": [ 14.0, 10.0, 10.0 ], "faces": { "north": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "east": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "south": { "texture": "#0", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "west": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "up": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "down": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ] } } }, { "name": "Element", "from": [ 4.0, 6.0, 6.0 ], "to": [ 12.0, 10.0, 10.0 ], "faces": { "north": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "east": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "south": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "west": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "up": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "down": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] } } }, { "name": "Element", "from": [ 2.0, 6.0, 6.0 ], "to": [ 14.0, 8.0, 10.0 ], "faces": { "north": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "east": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "south": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "west": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "up": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "down": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] } } }, { "name": "Element", "from": [ 2.0, 6.0, 6.01 ], "to": [ 4.82, 8.0, 9.99 ], "rotation": { "origin": [ 2.0, 8.0, 8.0 ], "axis": "z", "angle": 45.0 }, "faces": { "north": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "east": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "south": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "west": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "up": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "down": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ] } } }, { "name": "Element", "from": [ 11.18, 6.0, 6.01 ], "to": [ 14.0, 8.0, 9.99 ], "rotation": { "origin": [ 14.0, 8.0, 8.0 ], "axis": "z", "angle": -45.0 }, "faces": { "north": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "east": { "texture": "#1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "south": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "west": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "up": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "down": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ] } } } ], "display": { "thirdperson": { "rotation": [ 0, 0, 45 ], "translation": [ 0, 0, 0 ], "scale": [ 0.5, 0.5, 0.5 ] }, "firstperson": { "rotation": [ 0, 0, 45 ], "translation": [ 0, 16, 0 ], "scale": [ 0.125, 0.125, 0.125 ] }, "gui": { "rotation": [ 45, 22.5, 0 ], "translation": [ 0, 0, 0 ], "scale": [ 1.0, 1.0, 1.0 ] } } } thanks for readng
  22. ñaa befor i do comments only whith // whatever i write is ignored that now has change the only way is "_comment": "comment text goes here...", but you can do this anywhere, resignation i have to remove all the comments manually this would trouble some now the items uses properties to define textures some of mi json will become long, and hard to understand whithout the comments
  23. good days in early version i used to leave comments describing what this json part does using // but this coments now are taken per errors and textures don't load //Horizontal section of the drill body //cuerpo horizontal 0 //1.242 0.621 { "from": [ 3.5, 1, 7.379 ], "to": [ 6.5, 5.01, 8.621 ], "rotation": { "origin": [ 5,8,8 ], "axis": "y", "angle": 0, "rescale": false }, "shade": false, "faces": { "north": { "uv": [ 0, 0, 16, 16 ], "texture": "#rojo" }, "south": { "uv": [ 0, 0, 16, 16 ], "texture": "#rojo" }, "west": { "uv": [ 0, 0, 16, 16 ], "texture": "#rojo" }, "east": { "uv": [ 0, 0, 16, 16 ], "texture": "#rojo" }, "up": { "uv": [ 0, 0, 16, 16 ], "texture": "#rojo" }, "down": { "uv": [ 0, 0, 16, 16 ], "texture": "#rojo" } } } , ############### What is the new way to make comments in json ? i dont wanna open one by one json to fix at hand this, to many files soo i was thinking in use sed in the linux console todo something like this $ sed -i 's#//#WhateverCommentsAreNow#g' *.json and let the penguins do the job
  24. sip but is it'n deliverated just a recurrent accident, when came from google sometimes get bug mi mistake in the other side i been used to set the color from thext using EnumChatFormatting but dont find it i guest it also changes name can you help mi whith that ? playerIn.addChatComponentMessage(new TextComponentString(EnumChatFormatting.RED + mensaje));
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.