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.

Featured Replies

Posted

I'm trying to add a dependency on a mod of mine's but when i want to test my code and run the game in IntelliJ the mod "vexAPI" (vanillaExtensionAPI) isn't loaded / detected by forge (like if it was a compileOnly dependency) and if I try to interact with any class the game runs on a Exception (probably ClassDefNotFound, can't remember (too lazy to replicate it now)). Here's the gist with anything i think is relevant: https://gist.github.com/Kevadroz/01d07e6bfb50eb8028a250e48a058659, ask for any other code/file you want. The commented SourceSet just loads yaamcem's sources when i ty to use it, same if i replace the sting with ":vexAPI". What am i doing wrong? What can i do to fix it? Thanks for any given help (if any). Also, if you are gonna say "use a multibuild setup", i already tried, same problem.

EDIT: Just noticed there's a ForgeGradle SubForum, i wish i saw it before posting this
EDIT2: Whould be nice for this to be moved into the correct SubForum

Edited by Kevadroz

Isn't compile the old method of doing it? I thought it was implementation now.

 

Also, you probably need to extend the configuration of the api to include your mod compile. Something like this in Example 1.

Edited by ChampionAsh5357

  • Author
6 hours ago, ChampionAsh5357 said:

Extend the configuration of the api to include your mod compile.

I'm having trouble to interpret that sentence.

  • Author
45 minutes ago, ChampionAsh5357 said:

Sorry, I just reread your question and realized it wasn't your api.

No, i'm the one who's sorry for not specifying that it IS my api (well, the api part of that mod isn't done yet, i need development and testing of the mod itself before doing anything)

3 minutes ago, Kevadroz said:

No, i'm the one who's sorry for not specifying that it IS my api

Ah, well then you probably need to create a configuration block (e.g. configurations{...}) and having the compile from one classifier to extend from another (e.g. <classifier>Compile.extendsFrom compile).

Maybe, I might also just be giving you incorrect information as well as gradle tends to be spaghetti when it comes to anything. I'm assuming that you already did the refresh, regen, and then run I mentioned above?

 

I am working off the assumption that the api is part of the current folder structure.

  • Author
1 minute ago, ChampionAsh5357 said:

Maybe, I might also just be giving you incorrect information as well as gradle tends to be spaghetti when it comes to anything. I'm assuming that you already did the refresh, regen, and then run I mentioned above?

Yes, tough that "run I mentioned abobe" isn't completely clear to me. I just did a "runClient", the mod didn't load, but the path was detected:

[07oct2020 17:36:16.110] [main/DEBUG] [net.minecraftforge.fml.loading.LibraryFinder/CORE]: Found JAR classpath_mod at path /home/kevin/Documentos/mc-mods/forge/modRoots/vanillaExtensionAPI/build/resources/main
1 minute ago, ChampionAsh5357 said:

I am working off the assumption that the api is part of the current folder structure.

See settings.gradle.

1 minute ago, Kevadroz said:

tough that "run I mentioned abobe" isn't completely clear to me

Well once you change your build.gradle, you need to tell your client, server, and data start that the information has changed. That's done by refreshing the gradle dependencies, regenning the runs, and then clicking on either runClient, runServer, or runData. Else, it won't recognize anything that has changed.

3 minutes ago, Kevadroz said:

Hmmm, this should work imo with my knowledge in gradle. My only other thought is that the api is not a mod itself. And if that's the case you need to include the one with the mod annotation.

  • Author
1 minute ago, ChampionAsh5357 said:

Well once you change your build.gradle, you need to tell your client, server, and data start that the information has changed. That's done by refreshing the gradle dependencies, regenning the runs, and then clicking on either runClient, runServer, or runData. Else, it won't recognize anything that has changed.

That's what i did

1 minute ago, ChampionAsh5357 said:

Hmmm, this should work imo with my knowledge in gradle. My only other thought is that the api is not a mod itself. And if that's the case you need to include the one with the mod annotation.

It is a mod.

  • Author

Tough it is not a solution i like, packing a jar without reobfing and putting it in the mods folder works... so it isn't of high priority to me, as i'm coding features completely or almost completly before implementing them on other mods, so i don't need to pack it often at all, but it whould be good to know how to this properly, i wish i could use mavenLocal, but that also doesn't work (doesn't detect te artifact). Well, here's the debug.log.

So, just as a notice, it recognizes that the resource class path exists; however, it doesn't recognize the actual mod itself. I can see that from this line: 

Quote

[07oct2020 17:36:17.639] [main/DEBUG] [net.minecraftforge.fml.loading.moddiscovery.ModDiscoverer/SCAN]: Found 3 mod files with 3 mods

So it most likely doesn't recognize your mod as a dependency for some reason. Either because it's not compiled onto the build path or something else not recognizing it as an actual jar. That's my final bit of insight.

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

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.