• Recently Browsing

    No registered users viewing this page.

  • Posts

    • Hello, i just wanted to start my mod and this error popped up: Failed to get asset: minecraft/lang/be_by.json. I tried gradlew eclipse and genEclipseRuns nothing helped. Can someone help me with this error? Lg, zOnlyKroks
    • 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.
  • Topics

  • Who's Online (See full list)