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.

Tatuck

Members
  • Joined

  • Last visited

  1. And how can I use it in my mod? I think I need to use keytool but does that mean everyone who uses my mod will have to use keytool too?
  2. Hello. I am trying to create a mod which connects to a an URL using SSL (MongoDB Atlas), I was searching and I found the user would have to install the certificate before of using the mod. But I didn't like that. So I found this: System.setProperty("jdk.tls.trustNameService", "true"); But it doesn't work. What can I do?
  3. Finally!!! Thank you! It worked perfectly! I run "gradlew reobfShadowJar" and it worked perfectly! Thanks for your help!
  4. I didn't know I had to reobfuscate the mod, I created it using: "gradlew shadowJar"
  5. My build.gradle: buildscript { repositories { maven { url = 'https://files.minecraftforge.net/maven' } mavenCentral() jcenter() } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '4.1.+', changing: true } } plugins { id 'com.github.johnrengelman.shadow' version '6.1.0' } apply plugin: 'net.minecraftforge.gradle' // Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. apply plugin: 'eclipse' apply plugin: 'maven-publish' version = '1.0' group = 'com.tatuck.coordinateslocator' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'tatuckcoordslocator' java.toolchain.languageVersion = JavaLanguageVersion.of(8) // Mojang ships Java 8 to end users, so your mod should target Java 8. println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) minecraft { mappings channel: 'official', version: '1.16.5' runs { client { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' mods { examplemod { source sourceSets.main } } } server { workingDirectory project.file('run/server') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' mods { examplemod { source sourceSets.main } } setForceExit(false) } data { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' args '--mod', 'examplemod', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') mods { examplemod { source sourceSets.main } } } } } // Include resources generated by data generators. sourceSets.main.resources { srcDir 'src/generated/resources' } dependencies { minecraft 'net.minecraftforge:forge:1.16.5-36.1.0' compile 'org.mongodb:mongodb-driver-sync:4.2.3' shadow 'org.mongodb:mongodb-driver-sync:4.2.3' shadow 'org.mongodb:bson:4.2.3' // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html // http://www.gradle.org/docs/current/userguide/dependency_management.html } // Example for how to get properties into the manifest for reading by the runtime.. jar { manifest { attributes([ "Specification-Title": "examplemod", "Specification-Vendor": "examplemodsareus", "Specification-Version": "1", // We are version 1 of ourselves "Implementation-Title": project.name, "Implementation-Version": "${version}", "Implementation-Vendor" :"examplemodsareus", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ]) } } // Example configuration to allow publishing using the maven-publish task // This is the preferred method to reobfuscate your jar file jar.finalizedBy('reobfJar') // However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing //publish.dependsOn('reobfJar') publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file:///${project.projectDir}/mcmodsrepo" } } } shadowJar { configurations = [project.configurations.shadow] } reobf { shadowJar {} } Update: I have tried again and now it is showing me this error: Description: mouseClicked event handler java.lang.NoSuchMethodError: net.minecraft.client.Minecraft.getInstance()Lnet/minecraft/client/Minecraft; at com.tatuck.coordinateslocator.TatuckCoordinatesLocator.onSound(TatuckCoordinatesLocator.java:43) ~[?:1.0] {re:classloading} at net.minecraftforge.eventbus.ASMEventHandler_0_TatuckCoordinatesLocator_onSound_PlaySoundEvent.invoke(.dynamic) ~[?:?] {} at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:85) ~[eventbus-4.0.0.jar:?] {} at net.minecraftforge.eventbus.EventBus$$Lambda$2544/1439945495.invoke(Unknown Source) ~[?:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:302) ~[eventbus-4.0.0.jar:?] {} at net.minecraftforge.eventbus.EventBus.post(EventBus.java:283) ~[eventbus-4.0.0.jar:?] {} at net.minecraftforge.client.ForgeHooksClient.playSound(ForgeHooksClient.java:282) ~[?:?] {re:classloading} at net.minecraft.client.audio.SoundEngine.func_148611_c(SoundEngine.java:271) ~[?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.audio.SoundHandler.func_147682_a(SoundHandler.java:136) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.gui.widget.Widget.func_230988_a_(Widget.java:198) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.gui.widget.Widget.func_231044_a_(Widget.java:135) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.gui.INestedGuiEventHandler.func_231044_a_(SourceFile:27) ~[?:?] {re:classloading} at net.minecraft.client.gui.screen.MainMenuScreen.func_231044_a_(MainMenuScreen.java:288) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.MouseHelper.func_198033_b(MouseHelper.java:87) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.MouseHelper$$Lambda$3917/1046211253.run(Unknown Source) ~[?:?] {} at net.minecraft.client.gui.screen.Screen.func_231153_a_(Screen.java:427) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.MouseHelper.func_198023_a(MouseHelper.java:85) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.MouseHelper.func_228030_c_(MouseHelper.java:175) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.MouseHelper$$Lambda$3916/2087758561.run(Unknown Source) ~[?:?] {} at net.minecraft.util.concurrent.ThreadTaskExecutor.execute(SourceFile:94) ~[?:?] {re:classloading,pl:accesstransformer:B} at net.minecraft.client.MouseHelper.func_228028_b_(MouseHelper.java:174) ~[?:?] {re:classloading,pl:runtimedistcleaner:A} at net.minecraft.client.MouseHelper$$Lambda$3530/1682774881.invoke(Unknown Source) ~[?:?] {} at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:36) ~[lwjgl-glfw-3.2.2.jar:build 10] {} at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.2.2.jar:build 10] {} at org.lwjgl.glfw.GLFW.glfwWaitEventsTimeout(GLFW.java:3174) ~[lwjgl-glfw-3.2.2.jar:build 10] {} at com.mojang.blaze3d.systems.RenderSystem.limitDisplayFPS(SourceFile:127) ~[?:?] {re:classloading} at net.minecraft.client.Minecraft.func_195542_b(Minecraft.java:999) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:607) [?:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A} at net.minecraft.client.main.Main.main(Main.java:184) [?:?] {re:classloading,pl:runtimedistcleaner:A} at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_51] {} at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_51] {} at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_51] {} at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_51] {} at net.minecraftforge.fml.loading.FMLClientLaunchProvider.lambda$launchService$0(FMLClientLaunchProvider.java:51) [forge-1.16.5-36.1.0.jar:36.1] {} at net.minecraftforge.fml.loading.FMLClientLaunchProvider$$Lambda$438/1260043537.call(Unknown Source) [forge-1.16.5-36.1.0.jar:36.1] {} at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:54) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:72) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.Launcher.run(Launcher.java:82) [modlauncher-8.0.9.jar:?] {} at cpw.mods.modlauncher.Launcher.main(Launcher.java:66) [modlauncher-8.0.9.jar:?] {}
  6. I have tried but for some reason Minecraft doesn't detect the compiled mod. I don't think it is giving me an error because I have checked the logs but I found nothing.
  7. Hello. I am trying to use a gradle librarie in my mod. But when I use "gradlew build" it doesn't compile my librarie and in-game it shows me an error (classnotfoundexception). How can I do that? Thanks
  8. Hello. I am trying to use an external library in my mod, so I thought I had to create a fatjar so I used Shadow Plugin. But now I think it is not compiling Minecraft library. This is my build.gradle: buildscript { repositories { maven { url = 'https://files.minecraftforge.net/maven' } mavenCentral() jcenter() } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '4.1.+', changing: true } } plugins { id 'com.github.johnrengelman.shadow' version '6.1.0' } apply plugin: 'net.minecraftforge.gradle' // Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. apply plugin: 'eclipse' apply plugin: 'maven-publish' version = '1.0' group = 'com.tatuck.coordinateslocator' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'tatuckcoordslocator' java.toolchain.languageVersion = JavaLanguageVersion.of(8) // Mojang ships Java 8 to end users, so your mod should target Java 8. println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) minecraft { mappings channel: 'official', version: '1.16.5' runs { client { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' mods { examplemod { source sourceSets.main } } } server { workingDirectory project.file('run/server') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' mods { examplemod { source sourceSets.main } } setForceExit(false) } data { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' args '--mod', 'examplemod', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') mods { examplemod { source sourceSets.main } } } } } // Include resources generated by data generators. sourceSets.main.resources { srcDir 'src/generated/resources' } dependencies { minecraft 'net.minecraftforge:forge:1.16.5-36.1.0' compile 'org.mongodb:mongodb-driver-sync:4.2.3' shadow 'org.mongodb:mongodb-driver-sync:4.2.3' shadow 'org.mongodb:bson:4.2.3' // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html // http://www.gradle.org/docs/current/userguide/dependency_management.html } jar { manifest { attributes([ "Specification-Title": "examplemod", "Specification-Vendor": "examplemodsareus", "Specification-Version": "1", // We are version 1 of ourselves "Implementation-Title": project.name, "Implementation-Version": "${version}", "Implementation-Vendor" :"examplemodsareus", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ]) } } jar.finalizedBy('reobfJar') publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file:///${project.projectDir}/mcmodsrepo" } } } shadowJar { configurations = [project.configurations.shadow] } reobf { shadowJar {} } And if I open the final .jar using WinRar I can see "com/mongodb/...", "com/tatuck/...", "META-INF/...", "org/bson/..." and "pack.mcmeta" What is the problem? Thanks UPDATE: I don't mind using Shadow. I just want to know how can I import an external library in the same .jar.
  9. Okay. I have tried again with shadow, I did it like it's shown here: https://github.com/Choonster-Minecraft-Mods/GradleShadowTestMod/blob/master/build.gradle but no, it doesn't work. It shows me this error: com.google.common.util.concurrent.ExecutionError: java.lang.NoClassDefFoundError: org/gradle/api/internal/java/JavaLibrary What can I do? UPDATE: If it's needed, my build.gradle: buildscript { repositories { maven { url = 'https://files.minecraftforge.net/maven' } mavenCentral() jcenter() } dependencies { classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '4.1.+', changing: true classpath 'com.github.jengelman.gradle.plugins:shadow:6.1.0' } } plugins { id 'com.github.johnrengelman.shadow' version '6.1.0' id 'java' } apply plugin: 'net.minecraftforge.gradle' // Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. apply plugin: 'eclipse' apply plugin: 'maven-publish' apply plugin: 'com.github.johnrengelman.shadow' apply plugin: 'java' version = '1.0' group = 'com.tatuck.coordinateslocator' // http://maven.apache.org/guides/mini/guide-naming-conventions.html archivesBaseName = 'tatuckcoordslocator' java.toolchain.languageVersion = JavaLanguageVersion.of(8) // Mojang ships Java 8 to end users, so your mod should target Java 8. println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) minecraft { mappings channel: 'official', version: '1.16.5' runs { client { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' mods { examplemod { source sourceSets.main } } } server { workingDirectory project.file('run') // Recommended logging data for a userdev environment // The markers can be changed as needed. // "SCAN": For mods scan. // "REGISTRIES": For firing of registry events. // "REGISTRYDUMP": For getting the contents of all registries. property 'forge.logging.markers', 'REGISTRIES' // Recommended logging level for the console // You can set various levels here. // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels property 'forge.logging.console.level', 'debug' mods { examplemod { source sourceSets.main } } } data { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' args '--mod', 'examplemod', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') mods { examplemod { source sourceSets.main } } } } } // Include resources generated by data generators. sourceSets.main.resources { srcDir 'src/generated/resources' } dependencies { minecraft 'net.minecraftforge:forge:1.16.5-36.1.0' shadow 'org.mongodb:mongodb-driver-sync:4.2.3' // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html // http://www.gradle.org/docs/current/userguide/dependency_management.html } shadowJar { manifest { attributes([ "Specification-Title": "examplemod", "Specification-Vendor": "examplemodsareus", "Specification-Version": "1", // We are version 1 of ourselves "Implementation-Title": project.name, "Implementation-Version": "${version}", "Implementation-Vendor" :"examplemodsareus", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ]) } } // Example for how to get properties into the manifest for reading by the runtime.. jar { manifest { attributes([ "Specification-Title": "examplemod", "Specification-Vendor": "examplemodsareus", "Specification-Version": "1", // We are version 1 of ourselves "Implementation-Title": project.name, "Implementation-Version": "${version}", "Implementation-Vendor" :"examplemodsareus", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ]) } } // Example configuration to allow publishing using the maven-publish task // This is the preferred method to reobfuscate your jar file jar.finalizedBy('reobfJar') // However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing //publish.dependsOn('reobfJar') publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file:///${project.projectDir}/mcmodsrepo" } } } UPDATE: Also tried https://www.baeldung.com/gradle-fat-jar, it just created a bigger file which doesn't work, it doesn't show up in Minecraft mods.
  10. Okay, I have tried and it created a file larger but it doesn't work. It doesn't show up in Minecraft. Writing this in the bottom of my build.gradle file: buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "com.github.jengelman.gradle.plugins:shadow:6.1.0" } } apply plugin: "com.github.johnrengelman.shadow" Also, I have tried using Forge shading like this: configurations { shade compile.extendsFrom shade } dependencies { minecraft 'net.minecraftforge:forge:1.16.5-36.1.0' shade 'org.mongodb:mongodb-driver-sync:4.2.3' } jar { manifest { attributes([ ... ]) } configurations.shade.each { dep -> from(project.zipTree(dep)){ exclude 'META-INF', 'META-INF/**' } } } But "shade" in dependencies shows this error: "No candidates found for method call shade." What can I do? Thanks for you help
  11. Alright. But is the player going to need to download two files instead of just one? And, do you know how can I do it?
  12. Hello. I am trying to use MongoDB on a mod, I have written compile 'org.mongodb:mongodb-driver-sync:4.2.3' in the dependencies (build.gradle), when I start the mod by starting "runClient" on IntelliJ it works perfectly. But when I drop the file generated (build/libs/name-version.jar) using "gradlew build" it shows me this error: java.lang.NoClassDefFoundError: org/bson/conversions/Bson What can I do? Should I import the library using other method? Which method? Thanks!
  13. Alright! Thank you!

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.