Skip 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.

Animefan8888

Forge Modder
  • Joined

  • Last visited

Everything posted by Animefan8888

  1. Are you wanting to change the whole name or just add prefixes/suffixes?
  2. Where do you send the packet?
  3. I beleive you cannot remove from the Villager registry, but i may be mistaken.
  4. You should make your own thread with all the relevant code, because it is rather difficult to guess what is wrong, because there are many possibilities. The missing mapping error is because you have not call GameRegistry.registerTileEntity(...).
  5. I have not tried this but I think GameRegistry.addSmelting and GameRegistry.addCrafting work after postInit so when the player connects have the server send the Crafting and smelting data over and compare it on the client then modify the clients.
  6. Too answer your question in the PS yes you do.
  7. Unless you specifically have to use a HashMap ie you need some way to save the Enchantment yourself to something there is no need to use one. And post your updated code.
  8. Not quite this checks if the world is server side. A couple of things. You should be using EnchantmentHelper.getEnchantmentLevel(...) and not EnchantmentHelper.getMaxEnchantmentLevel(...) Next if you haven't already if(!world.isRemote) { //allow flying code here } Instead of getting your Enchantment from the registry you should have a static field for your enchantment you should be using instead. Also in survival mode you should still take fall damage even if allowFlying is true. This is why the PlayerFlyableFallEvent exists.
  9. Instead of adding ForgeGuard.SELECTOR to the inventory add ForgeGuard.SELECTOR.copy() to the inventory. I ran into this problem once. I was using the FurnaceRecipes and just straight up set the slot to the FurnaceRecipes, but then whenever I increased the stackSize I would get more for every process, and once taken out of the furnace I would get a stack of the item, but with a stackSize of zero. That was one of the best debugging moments of my life...
  10. Go into your file explorer and see if that path exists (note: testmod: is equivilent to assets/testmod/). And it is case sensitive.
  11. I have a recommendation not sure if it is what you are looking for or not, but here goes. Instead of switching between textures, you could use them both, but apply the layers with transparency and have your own "counter" that determines when it changes like every time it renders decrease the transparency of the current overlay?
  12. It still doesn't work if I make everything lowercase. So here is the json: { "parent": "item/generated", "texture": { "layer0": "ss:items/endertanium_ingot" } } Does this include your code, ie when you register the model for the item using ModelLoader.setCustomModelResourceLocation(...) are you also using lowercase there?
  13. You would need to put in a PR to the forge github, but even then it is not guaranteed to be implemented.
  14. Yes it is possible with 3D rectangles. You have one on the top and one one the bottom, in the opposite corners. 3x3 example in Java(shouldn't be too different for scala) new BlockPos(-1, -1, -1); new BlockPos(1, 1, 1); This will give me the corners of a 3d rectangle at the x, y, z positions of -1, -1, -1 to 1, 1, 1 which will include zero if you iterate properly. Now on to your WorldSavedData problem. You need to tell the game to save your data. IE you should be using the WorldEvent.Load and WorldEvent.Save. Call your read and write methods from there.
  15. This is pretty simple honestly you could learn everything you need from looking at the vanilla classes. A render layer is basically just a object that stores "multiple" models inside of it for an entity.
  16. There are World capabilities, I assume you would use them, plus a better way assuming that your areas are cubes. You should just save two BlockPos's for each area. One in one corner and one in the complete opposite corner.
  17. This should give you 3x3 area around pos. Iterable<BlockPos> positions = BlockPos.getAllInBox(pos.down().north().east(), pos.up().south().west());
  18. Now ive spelled it correctly, but its still not working Console log.
  19. I think you will need to switch over to using an int for loop ie for (int x = -1; x < 1; x++) { for (int y = -1; y < 1; y++) { for (int z = -1; z < 1; z++) { } } }
  20. It wants either your modid, or your mods @Instance field for modObject. It wants a mod specific ID for your GUI/Container. Then it wants either the block coords or the player coords or the entity coords where this is opening from.
  21. You should not have been using that in the first place. Create your on implementation of IGuiHandler and register it with NetworkRegistry. Then you call player.openGui(...)
  22. You will have to recreate that functionality your self just add the getName and hasCustomName and setName methods to your TE and implement them how you would normally in the Block class and GUI.
  23. Yes you will have to check for the players movement keys and then send the data to your entity via a packet.

Important Information

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

Account

Navigation

Search

Search

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.