• Recently Browsing

    No registered users viewing this page.

  • Posts

    • I know world.isRemote indicates whether the code is running on the logical server or the logical client. I further know that in most cases interacting with the world from the logical client causes desync/ghost entities/etc and so it is important to only interact with the world from the logical server. Finally, although I haven't learned much about GUIs yet, I know those are one of the primary places where logical client-specific code exists.   What I'm wondering is if there is any guidance on what scenarios world.isRemote needs to be checked, or how to tell if any particular method should include that check?   My current impression is that with the exception of registration code (which I'm doing through DeferredRegister and thus is registered on each side according to how Forge knows how to do it) there generally should not be any logic that should run on both sides and so world.isRemote should be checked in pretty much every method. Further, unless there is logic that is specifically known that it should only be executed client-side, generally all logic should be logical server-side only. Obviously this may differ wildly depending on the particular mods goals, but as a general-case implementing vanilla-like items and blocks mod goes that seems to be the case.   For instance: I believe I should check (!isRemote) in Item#onItemUse, but not in Block#createTileEntity (because tile entities *should* be created in the client?) but what about in Block#getShape or TileEntity#tick?   If there's not a general rule-of-thumb (such as "never execute on the client unless you know you have to"), what kinds of properties or scenarios should I be looking for to understand when I do need to check? How do I tell which sides a particular method will even be executed on?
    • Seems to be a problem with the KingVillager mod.
    • Thanks for the compliment. Talking tends to help when I'm trying to convey my reasoning to another person. And yes, I will criticize bad practices or bad design to help point out issues in what could be done better. I even criticize my own videos due to their outdated code and inefficient practices, so I stopped making them. I'm here to help people improve what they are currently doing and not let them keep making the same mistakes. There is a difference between criticizing and back-talking, they're my own opinions and although you don't have to listen to me, quite a number of people share it including those in the Forge team. If you're looking for something that can walk you through without you applying any knowledge for yourself, then sure use the tutorials. However, you most likely will not learn the underlying concept trying to be explained and not be able to adapt your knowledge and think for yourself. I can use an example from TechnoVision's tutorial from his block state episode where they add the methods AbstractBlock#rotate and AbstractBlock#mirror. Anyone watching probably cannot tell me what either of those overrides do and why they should be added. Just adding those methods doesn't teach you anything if you don't know why you need to include them. I want to direct people towards accurate and standardized practices that should be used within Java and the Forge library. If you came here looking for an answer and expecting to put in no work (e.g. copy-paste), then you should really take the time to evaluate what you came here to do. We're here to provide you the tools to succeed and not the final product. Giving them a place where they can discover the answer is more powerful than giving them the answer itself. I've said this many times: the job of a programmer is to be able to adapt to a situation with no prior knowledge of what they will be working with. Asking for help to understand a specific portion of how to use a specific method or field is fine and provides you with insight. However, simply just going "tell me" will not teach you anything. So, to answer your statement, if they only care about the answer, then in my opinion they should choose something else to do. Otherwise, they will ask they same questions over and over again, copy-paste from others, and will fail in the long run.
    • This has happened every time I start Forge, I've googled it and tried to remove some of the mods I thought would be causing it, I've done some research, and even after all that it still says that it wont start because there was a problem loading the description of the mods? The client launches but not like 30 seconds in and it starts to not respond and crashes, leaving me only the crash summary and the log. I tried to fix the problem myself by deleting the mod that "caused the crash" but it just finds another mod to crash on yet again. Here is the summary of the crash that the launcher gave me    The game crashed whilst rendering overlay Error: java.lang.IllegalStateException: Failed to load description for particle mutantbeasts:endersoul Exit Code: -1 Log is here
  • Topics

  • Who's Online (See full list)