Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

GotoLink

Members
  • Joined

  • Last visited

Everything posted by GotoLink

  1. They should be in jars/assets folder.
  2. Server doesn't touch a tick handler if you don't register it on server side.
  3. NullPointerException at net.minecraft.inventory.Slot.getStack(Slot.java:105) at net.minecraft.inventory.Container.getInventory(Container.java:69) at net.minecraft.inventory.Container.addCraftingToCrafters(Container.java:55) at edaron.mod.ContainerTikitorch.addCraftingToCrafters(ContainerTikitorch.java:49) Something is null at line 105 of Slot. Probably due to wrong setting of your ContainerTikitorch.
  4. I can't see that ParticleEffects class. Can't debug the thing.
  5. Did you try before ? With the changes in resource packs, that old limitation might have gone. See EntityFX#setParticleIcon(Icon) just in case.
  6. Did you look at BlockCake ? It isn't hard to change the rendering height to a smaller value.
  7. Sounds are downloaded when the game is launched. Check your internet connection.
  8. event.setResult(Result.ALLOW); You need to do that on client side too. Particles should already be done by the bonemeal itself.
  9. Mazetar gave the main lines, so will just throw my example here: https://github.com/GotoLink/BetterVillages/tree/master/bettervillages
  10. Well the KeyHandler is a ready-to-use class implementing a client tick handler. Its use is basically explained in ThePocketSoul linked tutorial, now that i look at it. @TheGreyGhost You should consider trying reflection first, it is just "normal" code really. If you know java rules of coding, you are good to go
  11. World#setBlock(x,y,z, Block.chest.blockID); tileentity = World#getBlockTileEntity(x,y,z); if(tileentity instanceof IInventory){ IInventory(tileentity)#setInventorySlotContents(int, ItemStack); }
  12. I'd recommend using KeyHandler, for compatibility, ease of use, and auto registration of keys into the controls menu, for player convenience. @TheGreyGhost: Your second, third and fourth strategies would basically break compatibility the same way. They do roughly the same thing. But reflection is different from ASM. Reflection is a powerful type of code to make mods compatible between each other without dependency. A practical example is the Forge annotations, those are loaded with reflection. Manipulating classes at runtime, that is the goal of reflection. ASM is an extremely powerful tool (to break everything without knowing ) relying on bytecode (read: manipulating lines of code, at an "internal" level). If you master it, you can change as much things as Forge without shipping Minecraft code. A practical example is the Forge event system, which use @ForgeSubscribe in a mod class to hook with reflection, then apply changes with ASM.
  13. Well, you may haven't noticed, but you have a copy of WorldChunkManager here. Which you already extends. You might want to fix that. I am blaming the tutorial here. Look for WorldChunkManagerHell, the vanilla Nether, for a practical example of what can be changed.
  14. You need to return true to "using the new AI" method flag.
  15. Slot which don't contain an item typically return null. Your method for retrieving is good, but your method for putting the item in the slot isn't...if you didn't forget to code one, that is.
  16. Set a print into the console. For me, it isn't generating because your valid position checks are too strict for a non-flat world. if (distanceToAir > 1) { return false; } Chests: set a chest block, get its tile entity, cast it to IInventory, set its slots.
  17. Because "crystal" is null. There are merge tools for github. You should learn and discuss within your team about how you want to use them.
  18. You edit what you want to change from the "vanilla" world. That's as precise an answer you can get from that question.
  19. Then extends ItemSword and don't override that method.
  20. You mean you don't know how to use conditions statement like so ? public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) { return firstitem == par2ItemStack.itemID || seconditem == par2ItemStack.itemID ? true : super.getIsRepairable(par1ItemStack, par2ItemStack); }
  21. You forgot to tell what blocks are supposed to generate, and what blocks are actually generating.
  22. I'd complete ThePocketSoul answer with OreDictionary.WILD_CARD_VALUE let Forge handle that for you
  23. Is there any reason you want to lock the data sent to one player at a time ? Is the data contained dependent on any player state ? Asking because if the player disconnect before all packets are done, that could lock the entire thing.
  24. This would mean you put your sound at assets/mochickens/sound/sounds/layDiamond ?
  25. AFAIK, the noClip variable in Entity is not used for rendering, only for movement. You might want to look at isInvisibleToPlayer(EntityPlayer) .

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.