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. I meant that your IDE could have failed to save some of the sources, resulting in this issue. Between "closing Eclipse" and "opening it", there are software operations. Might also be hard drive corruption or less obvious causes.
  2. You may want to look into your IDE settings, the compiling and saving ones particularly.
  3. Use the ItemTossEvent to check the item and where it lands. Change the cauldron to a custom one, with different states, rendering and interactions with the player. Definitely possible.
  4. Need the TileEntity and the log.
  5. Let's say you want to register: EntityRegistry.registerModEntity(CustomEntity.class, "RegistrationName", 1, this, 80, 3, true); Then, assuming your mod id is "modid": In a .lang file, located in assets/modid/lang/ entity.modid.RegistrationName.name=Human language-dependent readable name You need to name the .lang file with language code, like "en_US". I prefer using UTF-8 encoding for the .lang file, and leave a blank line at the beginning.
  6. You are still not describing your problem enough. Where is NetherSpellBook.dat ? Did you put something in it ? How did you write it ? Did you put any breakpoints while testing those lines ? What is each variable value at runtime ? If you have an exception thrown, what is the offending line and the type of the issue ?
  7. @Instance(value = Main.modid) @SidedProxy(clientSide = "testmod.client.ClientProxy", serverSide = "testmod.CommonProxy") These annotations can't be applied to the same field.
  8. static boolean hasEatenFlightApple; I don't know why you are doing this, but you shouldn't.
  9. If you don't have subtypes, you'll have to make one class per block.
  10. You can do it with animated textures, or the "displaytick" method in Block.
  11. I don't understand. If the mod isn't installed on the server, why would you need to disable it there ? You can make a new profile without the mod, to "disable" it on the client.
  12. You can drop items according to metadata. Metadata range for Block is 0-15.
  13. Because seeing where a portal-like-object is going to take you before you go is a waste. :U Indeed. The client do not have any information about the other dimensions before going in because it is a waste. Imagine you have that second entity in the other world. You'll need to forward every packets from that entity, and rebuild the rendering process for each client being forwarded. Anyway...you can use DimensionManager#getWorld(int) to get a world object from its dimension id.
  14. public boolean post(Event event) { IEventListener[] listeners = event.getListenerList().getListeners(busID); for (IEventListener listener : listeners) { listener.invoke(event); } return (event.isCancelable() ? event.isCanceled() : false); } This is what happens in EventBus. Simply, all listeners will be #invoke in registration order, for each priority list. (see ListenerList) By "default", IEventListener is implemented by @Override public void invoke(Event event) { if (handler != null) { if (!event.isCancelable() || !event.isCanceled() || subInfo.receiveCanceled()) { handler.invoke(event); } } } in ASMEventHandler. Note that you can receive a canceled event with @ForgeSubscribe(receiveCanceled=true). Then you can uncancel it. Only the final state of the event will be accounted for. You can also register your own IEventListener with ListenerList#register(int, EventPriority, IEventListener). Fast answer to each of your question: -All will receive the event if (!event.isCancelable() || !event.isCanceled() || subInfo.receiveCanceled()) if they use the "default" IEventListener. -Same priority method will receive the event according to the registration order. -See EventPriority enum to check the priority order. To be sure the event is not canceled, use @ForgeSubscribe(priority=LOWEST, receiveCanceled=true) and uncancel it. -To minimize logical conflicts, you should always have special conditions, and only "rarely" cancel an event.
  15. The main issue is registering the entity twice. Then, the EntityRegistry.registerModEntity method appends the modid before the entity unlocalized name. Finally, the LanguageRegistry is deprecated. You should use the vanilla way with .lang files.
  16. For the vanilla furnace->ASM For a custom furnace, use the TileEntity to check for the item and World#newExplosion(args)
  17. Rendering is client side. There is only one world that renders at a time, Minecraft#theWorld. Rendering things where the player isn't...is a complete waste of rendering power.
  18. Wow...you should reinstall allright.
  19. new ItemPickaxe(wtv_args_needed);
  20. for(int i = 0;i < 2;i++) You are generating twice.
  21. Line 155 of WorldChunkManagerEnder: this.genBiomes is null.
  22. Well...Ruins also uses IWorldGenerator, doesn't it ?
  23. You need to return an item id for that... public int idDropped(int par1, Random par2Random, int par3) { return AddedCompat.metaItemCompat.itemID; }
  24. "Doesn't work" isn't a precise enough description of your problem. Try again. I still don't get why you couldn't put your code in the try block by the way.
  25. The clientSideRequired = true is only needed if you have a network mod requiring a client side. That is, you need to sync information between the server and the client, like new blocks, items, entities... For a client side only mod (changing rendering, basically) or a server side only mod (changing logic, terrain generation...) then you don't need the @NetworkMod annotation.

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.