Jump to content

[Solved!] Problems with mod (Ore Generation, error at startup)


hbh7

Recommended Posts

Ahhhh it feels nice knowing i'm not crazy, and that its not just me it wont work for. The tutorial i got it from never mentioned anything about any of this, as well as any tutorial i ever saw, none said anything about preInit, or Init. Unless I just have bad luck with tutorials... Anyways, a quick google search finds me this https://svn.forgerock.org/openam/tags/10.0.1/opensso/products/amserver/source/com/iplanet/am/sdk/ldap/EventManager.java Now i'm just wondering if i put it in my project files if i can import it and if this will all go away... With the more and more blocks i am adding as time goes on, the errors are just piling up in the log... D: I will post results in a few minutes. Also, the tutorial i got the inits and such from was a few replies to this topic ago...

Link to comment
Share on other sites

  • Replies 52
  • Created
  • Last Reply

Top Posters In This Topic

I'm pretty sure (as in 110% sure!) that the mentioned event manager you linked is NOT the one intended.

A random class called event manager will probably NOT do what you intend it to ;)

So don't bother!

If you guys dont get it.. then well ya.. try harder...

Link to comment
Share on other sites

Looking into the code again I can't see why you would need that event manager thing, I'm pretty sure you can just remove it as it's not doing ANYTHING as far as I can tell :) If it's needed we can handle that afterwards ;)

If you guys dont get it.. then well ya.. try harder...

Link to comment
Share on other sites

Thank you for the link, once i finish the large part of my mod that i'm determined to finish before I focus on something else, I will certainly focus my time on the info you sent. I have a lot planned for my mod and being able to solve things like this myself would be awesome.

 

Also, I figured about as much with that random class I found. But for the heck of it, I figured i'd mention it. I have been so busy changing things and responding, that i haven't even got a chance to try it out.

Sad part of this all is, if its not in eclipse, there probably isn't a fix for this....... Not one that I can see anyways, if the class isn't even there...

 

Also again, (you keep posting replies, so i am just responding to them all in parts, so this is one big reply) I was kinda thinking the same too, but Bishamonten had it in his example code, so I added it in. I am about to remove it now, and i will see what happens. Unfortunately, due to the timing of the responses i have gotten on this, I must finish the code i am writing right now (that will take a while, a lot of typing, class creation, and other things, basically about 50 classes to create and make functional... yeah a lot to do) before minecraft will even start i believe... I will see now, if it works, i will be very thrilled, and will thank every reply you gave, because you didn't just leave one response and leave, you provided more help than that, and stayed along until it worked. So thank you tons for that, it means a lot.

Link to comment
Share on other sites

Nope, i need to get all the importing and class writing done before i will know if this works. But since all the errors in the block registering code is gone, i think this problem is finally solved :D hmm, wonder if i can comment the code out that needs finishing..... Ok, i will do that so i can see if it works sooner.

Link to comment
Share on other sites

Let me see if I can make you're life a bit easier..

 

50 classes you say? is that by any chance like 20-30 new blocks which all just have different textures, names, id and drops? Then you can do that in 20-30 lines instead of 20-30 block classes, just so you know ;)

If you guys dont get it.. then well ya.. try harder...

Link to comment
Share on other sites

not sure exactly what you did but glad it all works as you wanted it :D

I guess you figured out how to add functionally equal blocks/items by reusing the same class with different parameters/setMethodParameters? :)

 

I'm really happy you got here and read that before you started working then :D

 

 

Edit: I tought only some of them was blocks and some where other stuff, just a guess at the numbers mate nothing else ;)

If you guys dont get it.. then well ya.. try harder...

Link to comment
Share on other sites

Ah that makes more sense, haha. At the top, i will probably point out what i did wrong, so anyone else who may be looking at this knows how to fix it. Erm, I do not believe I have... I said i saw a post on how, but I didn't read it... Now I cant find it and i regret not bookmarking it.... Anyways, does the same principal apply for items by any chance?

 

Link to comment
Share on other sites

It's not a minecraft principle it's an programming principle.

 

I normally don't do this but since you have shown you are willing to learn, i'll do it ;)

 

public class Animal {
String Type;
String Name;
  
  public Animal(string type, String name) {
  Name = name;
  Type = type;
  }

public void SayHello()
{
   Console.PrintLine("Hello I'm a " + type + " and my name is " + name + "!");
}

 

if you create two Animals

 this:
[code]
Animal animal1 = new Animal("Dog", "Albert");
Animal animal2 = new Animal("Cat", "Daisy");

animal1.SayHello();
animal2.SayHello();

this would result in the following output:

Hello I'm a Dog and my name is Albert!

Hello I'm a Cat and my name is Daisy!

 

If you guys dont get it.. then well ya.. try harder...

Link to comment
Share on other sites

Ah that makes more sense, haha. At the top, i will probably point out what i did wrong, so anyone else who may be looking at this knows how to fix it.

 

Anyways this all hopefully just proved to you how much time you can save by learning JAVA properly before you start on that large portion of you're mod.

If you guys dont get it.. then well ya.. try harder...

Link to comment
Share on other sites

I meant principal as the same process. Principal may not have been the right word... Same idea may have been better wording. Anyways,

So what you are saying, is outside the "public class hbhbtm {}",  i would write, "public class blocknewblock1 {" and then put the code that i would have put in the actual class, inside the brackets?

 

(btw, some family came over, so that's why i had a late response)

 

Anyways, yeah i have a tendency to just "wing it" with a lot of things, but usually i can figure it out, and if i cant, even after searching google, well, here i am.... The large portion isn't that much, its just a lot of repetitive things, adding like 50 items. I just chose to do it all at once, since i was going to do it all anyways. Also, i started this a few days after i made this topic, I had no idea it would effect this... (time wise) Also, i am about half way done with that large portion. I just saved the most boring and time consuming for last(creating all the classes)

Edit: I actually did have some programming background, not a ton, but some.(python, lua, and a little java) So I guess I wasn't really "winging" it with this.

Link to comment
Share on other sites

Yes you could that, but you could also just do this:

 

Block block1 = (new MyBlock(671, "textureName")).setHardness(1F).SetName("First Block");

Block block2 = new MyBlock(672, "textureName");

 

and just set the texture inside the constructor and reg it as usual in the reg method.

 

Or you could if you name the block the same as the png, just use the blockname instead when you reg it and then just change the ID and .setName between blocks.

If you guys dont get it.. then well ya.. try harder...

Link to comment
Share on other sites

If i do this, "Block Block1 = new MyBlock1(1165, "Blank1");" it still asks me to create a class for it, (as usual) am i missing something?

 

 

Side question, can you use .SetName("Block name thats an example") instead of LanguageRegistry.addName(block1, "Block 1")?

Link to comment
Share on other sites

OHHHH, it all makes sense now... As you may have noticed, i tend to read things wrong... :( i can't help it either... its been a problem my whole life... even if reading slow

Anyways, that one class, would it look like mojang's block.class?

Or just like any old block class that i would have now?

Link to comment
Share on other sites

it could just be something like this:

 

public class MyBlockNameHere extends Block
String TextureLocation;
public MyBlockNameHere (int ID, String texture)
{
   super(ID);
TextureLocation = texture;
}

   @Override
    @SideOnly(Side.CLIENT)
    public void registerIcons(IconRegister iconRegister) {
       this.blockIcon = iconRegister.registerIcon(modID +":" + TextureLocation );
    }

 

Something along those lines should work fine

If you guys dont get it.. then well ya.. try harder...

Link to comment
Share on other sites

Yeahhhhh in what i was trying, i missed like, well, all of it... :(

 

Edit: Like usual with me, when i try to do something, I end up causing more damage than good.... xD well, time to decompile minecraft again and get a new Block.java.... No idea what i clicked that made it have an error now.... it wasn't even open.... Anyway, the code you gave, had many errors that i am trying to fix... I may have got it.... xD

Link to comment
Share on other sites

Yeahhhhh in what i was trying, i missed like, well, all of it... :(

 

Edit: Like usual with me, when i try to do something, I end up causing more damage than good.... xD well, time to decompile minecraft again and get a new Block.java.... No idea what i clicked that made it have an error now.... it wasn't even open.... Anyway, the code you gave, had many errors that i am trying to fix... I may have got it.... xD

 

Well it was all from memory but all the things inn there should be inside the other blocks you made so with a few changes one of them would do ;)

 

 

If you guys dont get it.. then well ya.. try harder...

Link to comment
Share on other sites

Well i will keep playing with it, I may mess things up, (all the time :( ), but i don't give up, and if i do, i fix what i messed up first. Not the point, I will continue trying to get it to work. Currently, it has no errors, but minecraft's block.java does :L gotta fix that (no idea how the heck that got messed up... i didn't touch it...)

Edit: forgot i had a copy of a fresh MCP and Forge setup, yay!

Link to comment
Share on other sites

that's weird, you must have touched it by an accident :)

 

Anyways you see how many easy ways there are to do things once you learn more programming, so I do again recommend that you take some time to do that. But I do understand that coding is more doing progress and that's more fun :)

 

PS: Check you're PM box ;)

If you guys dont get it.. then well ya.. try harder...

Link to comment
Share on other sites

I think one of the "quick fixes" i clicked opened it and did something to it. Even with a brand new block.java, the error is still there.... i am going to ignore it for now, i don't think it means anything if its the same on a brand new one. A while back when I was getting into Lua in the computercraft mod, once i discovered functions, i was like "OMG THIS IS AMAZING!" So im betting i will have similar encounters. I would never have known I had a PM unless you pointed it out xD I never look there.

Link to comment
Share on other sites

There's some setting somewhere to get it as a popup somehow, don't know where but you could find it somewhere under settings I think ;)

 

Anyways yeah, it's awesome with those "OH NICE!!!" moments when you realize something cool and you can just implement it and you're life is 10x easier and you're code looks so much neater ;)

 

 

Oh PRO TIP:

Use good variable and method names, don't call stuff asdk and someMethod() even if you remember it yourself that way. Someday you will want help and then the code better be readable ;)

Also once you may want to work with someone and then it's kind of a must as well :D

If you guys dont get it.. then well ya.. try harder...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I'm developing a dimension, but it's kinda resource intensive so some times during player teleporting it lags behind making the player phase down into the void, so im trying to implement some kind of pregeneration to force the game loading a small set of chunks in the are the player will teleport to. Some of the things i've tried like using ServerLevel and ServerChunkCache methods like getChunk() dont actually trigger chunk generation if the chunk isn't already on persistent storage (already generated) or placing tickets, but that doesn't work either. Ideally i should be able to check when the task has ended too. I've peeked around some pregen engines, but they're too complex for my current understanding of the system of which I have just a basic understanding (how ServerLevel ,ServerChunkCache  and ChunkMap work) of. Any tips or other classes I should be looking into to understand how to do this correctly?
    • https://mclo.gs/4UC49Ao
    • Way back in the Forge 1.17 days, work started for adding JPMS (Java Platform Module Support) to ModLauncher and ForgeModLoader. This has been used internally by Forge and some libraries for a while now, but mods (those with mods.toml specifically) have not been able to take advantage of it. As of Forge 1.21.1 and 1.21.3, this is now possible!   What is JPMS and what does it mean for modders? JPMS is the Java Platform Module System, introduced in Java 9. It allows you to define modules, which are collections of packages and resources that can be exported or hidden from other modules. This allows for much more fine-tuned control over visibility, cleaner syntax for service declarations and support for sealed types across packages. For example, you might have a mod with a module called `com.example.mod` that exports `com.example.mod.api` and `com.example.mod.impl` to other mods, but hides `com.example.mod.internal` from them. This would allow you to have a clean API for other mods to use, while keeping your internal implementation details hidden from IDE hints, helping prevent accidental usage of internals that might break without prior notice. This is particularly useful if you'd like to use public records with module-private constructors or partially module-private record components, as you can create a sealed interface that only your record implements, having the interface be exported and the record hidden. It's also nice for declaring and using services, as you'll get compile-time errors from the Java compiler for typos and the like, rather than deferring to runtime errors. In more advanced cases, you can also have public methods that are only accessible to specific other modules -- handy if you want internal interactions between multiple of your own mods.   How do I bypass it? We understand there may be drama in implementing a system that prevents mods from accessing each other's internals when necessary (like when a mod is abandoned or you need to fix a compat issue) -- after all, we are already modding a game that doesn't have explicit support for Java mods yet. We have already thought of this and are offering APIs from day one to selectively bypass module restrictions. Let me be clear: Forge mods are not required to use JPMS. If you don't want to use it, you don't have to. The default behaviour is to have fully open, fully exported automatic modules. In Java, you can use the `Add-Opens` and `Add-Exports` manifest attributes to selectively bypass module restrictions of other mods at launch time, and we've added explicit support for these when loading your Forge mods. At compile-time, you can use existing solutions such as the extra-java-module-info Gradle plugin to deal with non-modular dependencies and add extra opens and exports to other modules. Here's an example on how to make the internal package `com.example.examplemod.internal` open to your mod in your build.gradle: tasks.named('jar', Jar) { manifest { attributes([ 'Add-Opens' : 'com.example.examplemod/com.example.examplemod.internal' 'Specification-Title' : mod_id, 'Specification-Vendor' : mod_authors // (...) ]) } } With the above in your mod's jar manifest, you can now reflectively access the classes inside that internal package. Multiple entries are separated with a space, as per Java's official spec. You can also use Add-Exports to directly call without reflection, however you'd need to use the Gradle plugin mentioned earlier to be able to compile. The syntax for Add-Exports is the same as Add-Opens, and instructions for the compile-time step with the Gradle plugin are detailed later in this post. Remember to prefer the opens and exports keywords inside module-info.java for sources you control. The Add-Opens/Add-Exports attributes are only intended for forcing open other mods.   What else is new with module support? Previously, the runtime module name was always forced to the first mod ID in your `mods.toml` file and all packages were forced fully open and exported. Module names are now distinguished from mod IDs, meaning the module name in your module-info.java can be different from the mod ID in your `mods.toml`. This allows you to have a more descriptive module name that doesn't have to be the same as your mod ID, however we strongly recommend including your mod ID as part of your module name to aid troubleshooting. The `Automatic-Module-Name` manifest attribute is now also honoured, allowing you to specify a module name for your mod without needing to create a `module-info.java` file. This is particularly useful for mods that don't care about JPMS features but want to have a more descriptive module name and easier integration with other mods that do use JPMS.   How do I use it? The first step is to create a `module-info.java` file in your mod's source directory. This file should be in the same package as your main mod class, and should look something like this: open module com.example.examplemod { requires net.minecraftforge.eventbus; requires net.minecraftforge.fmlcore; requires net.minecraftforge.forge; requires net.minecraftforge.javafmlmod; requires net.minecraftforge.mergetool.api; requires org.slf4j; requires logging; } For now, we're leaving the whole module open to reflection, which is a good starting point. When we know we want to close something off, we can remove the open modifier from the module and open or export individual packages instead. Remember that you need to be open to Forge (module name net.minecraftforge.forge), otherwise it can't call your mod's constructor. Next is fixing modules in Gradle. While Forge and Java support modules properly, Gradle does not put automatic modules on the module path by default, meaning that the logging module (from com.mojang:logging) is not found. To fix this, add the Gradle plugin and add a compile-time module definition for that Mojang library: plugins { // (...) id 'org.gradlex.extra-java-module-info' version "1.9" } // (...) extraJavaModuleInfo { failOnMissingModuleInfo = false automaticModule("com.mojang:logging", "logging") } The automatic module override specified in your build.gradle should match the runtime one to avoid errors. You can do the same for any library or mod dependency that is missing either a module-info or explicit Automatic-Module-Name, however be aware that you may need to update your mod once said library adds one. That's all you need to get started with module support in your mods. You can learn more about modules and how to use them at dev.java.
    • Faire la mise à jour grâce à ce lien m'a aider personnellement, merci à @Paint_Ninja. https://www.amd.com/en/support 
    • When I came across the 'Exit Code: I got a 1 error in my Minecraft mods, so I decided to figure out what was wrong. First, I took a look at the logs. In the mods folder (usually where you'd find logs or crash reports), I found the latest.log file or the corresponding crash report. I read it through carefully, looking for any lines with errors or warnings. Then I checked the Minecraft Forge support site, where you can often find info on what causes errors and how to fix them. I then disabled half of my mods and tried running the game. If the error disappeared, it meant that the problem was with the disabled mod. I repeated this several times to find the problem mod.
  • Topics

×
×
  • Create New...

Important Information

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