Jump to content

Version property isn't expanded in development enviorment (name probably too)


Recommended Posts

Posted

So, first of all why I need this to be the case (perhaps this can be solved via solving my original Problem):

I wanted to test my mod with an Minecraft server, so I've tried to start MC Server and Client both in my development enviorment (IntellJ). Unfortunatly this results in an invalid session id...

 

My solution to that was to use an ordinary MC-Forge client and add my mod as a jar to its mod folder. So far I didn't have any Proplems, but as soon as I tried to connect, I got an Mod-rejection error: My versions apperntly aren't the same...

 

So I looked at both logs and found these strange differences:

Normal Forge Client, Mod linked as jar: version is ok (and as expected)

[main/WARN] [spellcraft/]: Mod spellcraft is missing the required element 'version' and a version.properties file could not be found. Falling back to metadata version 0.2.1.109

Development Forge Server: somehow using unexpanded version ${version}

[Server thread/WARN] [spellcraft]: Mod spellcraft is missing the required element 'version' and a version.properties file could not be found. Falling back to metadata version ${version}

Apperently Using a Development Forge Client leads to the same unexpanded version.

Here's the Server side Mod-rejection...

[12:57:41] [User Authenticator #1/INFO]: UUID of player Major_Tuvok is ------------I don't want to show my UUID--------------
[12:57:41] [Netty Server IO #1/INFO] [FML]: Client protocol version 2
[12:57:41] [Netty Server IO #1/INFO] [FML]: Client attempting to join with 8 mods : minecraft@1.12.2,spellcraft@0.2.1.109,FML@8.0.99.99,forge@14.23.2.2611,mcp@9.42,journeymap@1.12.2-5.5.2,waila@1.8.23,jei@4.8.5.159
[12:57:41] [Netty Server IO #1/INFO] [FML]: Rejecting connection CLIENT: [FMLMod:spellcraft{${version}}]
[12:57:41] [Netty Server IO #1/ERROR] [FML]: Network Disconnect: Mod rejections [FMLMod:spellcraft{${version}}]
[12:57:41] [Server thread/INFO]: Major_Tuvok lost connection: Mod rejections [FMLMod:spellcraft{${version}}]
[12:57:41] [Server thread/INFO]: Major_Tuvok left the game

And my Build.gradle (I already tried to force processrecources task by simply adding it right before it is declared, didn't help):

buildscript {
    repositories {
        jcenter()
        maven { url = "http://files.minecraftforge.net/maven" }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT'
    }
}
apply plugin: 'net.minecraftforge.gradle.forge'
apply plugin: 'java'
//Only edit below this line, the above code adds and enables the necessary things for Forge to be setup.
if (    !project.hasProperty('mod_pgroup') ||
        !project.hasProperty('mod_id') ) {
    throw new Exception("Missing Mod-Properties!");
}
if (    !project.hasProperty('ver_forge') ||
        !project.hasProperty('ver_mc')) {
    println "missing Minecraft Version!"
}
if (    !project.hasProperty('ver_mappings') ) {
    println "missing Mappings Version!"
}
if (    !project.hasProperty('ver_major_mod') ||
        !project.hasProperty('ver_major_api') ||
        !project.hasProperty('ver_minor_api') ||
        (System.getenv('BUILD_NUMBER')==null && !project.hasProperty('ver_build'))) {
    println "missing Project Version!"
} else if (System.getenv('BUILD_NUMBER')==null) {
    println "Cannot access Build Number!"
}



minecraft {

    version = "1.12.2-14.23.2.2611"
    if (project.hasProperty('ver_mc') && project.hasProperty('ver_forge')) {
        version = "${ver_mc}-${ver_forge}"
    }
    runDir = "run"

    // the mappings can be changed at any time, and must be in the following format.
    // snapshot_YYYYMMDD   snapshot are built nightly.
    // stable_#            stables are built at the discretion of the MCP team.
    // Use non-default mappings at your own risk. they may not always work.
    // simply re-run your setup task after changing the mappings to update your workspace.
    mappings = "snapshot_20180201"
    if (project.hasProperty('ver_mappings')) {
        mappings = "${ver_mappings}"
    }
    // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable.
}

String getVersion() {
    if (    !project.hasProperty('ver_major_mod') ||
            !project.hasProperty('ver_major_api') ||
            !project.hasProperty('ver_minor_api') ||
            (System.getenv('BUILD_NUMBER')==null && !project.hasProperty('ver_build'))) {
        return "CUSTOM_BUILD";
    }
    String res = "${ver_major_mod}.${ver_major_api}.${ver_minor_api}."
    if (System.getenv('BUIlD_NUMBER')!=null) {
        ver_build = System.getenv('BUIlD_NUMBER')
    } else {
        ver_build = (ver_build.toInteger()+1).toString()
    }
    res+=ver_build
    ver_code = res;
    return res;
}

version = getVersion()
group="${mod_pgroup}.${mod_id}" // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "${mod_id}"

sourceCompatibility = targetCompatibility = "1.8" // Need this here so eclipse task generates correctly.
compileJava {
    sourceCompatibility = targetCompatibility = "1.8"
}

dependencies {
    // you may put jars on which you depend on in ./libs
    // or you may define them like so..
    //compile "some.group:artifact:version:classifier"
    //compile "some.group:artifact:version"
    // real examples
    //compile 'com.mod-buildcraft:buildcraft:6.0.8:dev'  // adds buildcraft to the dev env
    //compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env

    // the 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime.
    //provided 'com.mod-buildcraft:buildcraft:6.0.8:dev'

    //compile 'build/libs/Mekanism-1.11.2-9.3.4.313'
    // the deobf configurations:  'deobfCompile' and 'deobfProvided' are the same as the normal compile and provided,
    // except that these dependencies get remapped to your current MCP mappings
    //deobfCompile 'com.mod-buildcraft:buildcraft:6.0.8:dev'
    //deobfProvided 'com.mod-buildcraft:buildcraft:6.0.8:dev'

    // for more info...
    // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
    // http://www.gradle.org/docs/current/userguide/dependency_management.html

}

processResources {
    // this will ensure that this task is redone when the versions change.
    inputs.property "version", project.version
    inputs.property "mcversion", project.minecraft.version

    // replace stuff in mcmod.info, nothing else
    from(sourceSets.main.resources.srcDirs) {
        include 'mcmod.info'
                
        // replace version and mcversion
        expand 'version':project.version, 'mcversion':project.minecraft.version
    }
        
    // copy everything else except the mcmod.info
    from(sourceSets.main.resources.srcDirs) {
        exclude 'mcmod.info'
    }
}

jar {
    classifier = ''
    from sourceSets.main.output
    from sourceSets.api.output
    manifest.mainAttributes(
            "Built-By": System.getProperty('user.name'),
            "Created-By": "${System.getProperty('java.vm.version')} + (${System.getProperty('java.vm.vendor')})",
            "Implementation-Title": project.name,
            "Implementation-Version": project.version,
            "Built-On": "${ver_mc}-${ver_forge}"
    )
}

Before anyone asks: I know that the toInteger Method doesn't increment the version saved in gradle.properties... I'm going to change that after this issue has been solved.

And my gradle.properties:

# Sets default memory used for gradle commands. Can be overridden by user or command line properties.
# This is required to provide enough memory for the Minecraft decompilation process.
org.gradle.jvmargs=-Xmx6G
#version
ver_java=1.8
ver_code=1.12.2-0.2.1.109
ver_major_mod=0
ver_major_api=2
ver_minor_api=1
ver_build=108
ver_forge=14.23.2.2611
ver_mc=1.12.2
ver_mappings=snapshot_20180201
#mod
mod_pgroup=mt.mcmods
mod_id=spellcraft

 

Any help would be greatly appreciated... :(

Posted

I have to add: I don't know why this suddendly popped up: the last time I looked at my mod's ingame version (about one month ago) It was ok... The only thing I changed since than was changeing my forge and mappings version

Posted

Yes, this is how build scripts work. They don't replace things in the original source so that it doesn't pollute your code.

To solve your original issue, either login to a valid account on the client. GradleStart supports --username and --password.

Or just edit your dev server's settings.properites to turn offline mode on...

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Posted

thanke you, using an acceptable Username works. although I seem to be doing sth. wrong when setting online mode to false because I'm unable to connect if that's the case... (I didn't look into that yet-I'm not used to working with mc server configs...)  :)

I've created a very dirty workaround (it bypasses to some extend the standard processResources) which provides me with correct versions in dev enviorment.

def modinfoFile = 'src/main/resources/mcmod.info'
def tempDir = 'build/tmp/modifiedSources'
def classesDir = 'classes/production/Spellcraft_-_MC_14.23.2.2611_main'
def buildDir = 'build/resources/main'
def versionFileName = 'mcmod.info'
def tempFile = tempDir+'/'+versionFileName

compileJava.doFirst {
    copy {
        from(modinfoFile)
        into(tempDir)
    }
    ant.replace(file: tempFile, token: '${version}', value: project.version)
    ant.replace(file: tempFile, token: '${mcversion}', value: project.minecraft.version)
}

compileJava.doLast {
    copy {
        from(tempFile)
        into(classesDir)
    }
    copy {
        from(tempFile)
        into(buildDir)
    }
}

Using my dirty workaround along with a correct username and

online-mode=true

in the server.properties file works as well as setting it to false (whilst using that workaround, I didn't try without it)... (It seems like it does... I apperntly have some kind of Packet registration Problem(I seem to accidentally try to load WorldClient on the Server?!?) which I simply workaround by disabling any serverside registration at the moment, so that I can't completly connect without the game crashing)

 

Again: Thank you :)

This topic can be closed now (If I find how to do that myself, I'll close it myself)

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.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • If you are using AMD/ATI, update your drivers - get the drivers from their website - do not update via system
    • Not sure why this is happening, but I would love some help. The reason I restarted the server was because I was getting an error while trying to join regarding this "Internal Exception: io.netty.handler.codec.DecoderException: io.netty.handler.codec.EncoderException: java.io.IOException: Root tag must be a named compound tag" Im using ServerMiner if thats any help
    • [13-05-2025 02:20:01]    |-- fabric-renderer-registries-v1 3.2.25+df3654b390 [13-05-2025 02:20:01]    |-- fabric-rendering-data-attachment-v1 0.3.19+6e0787e690 [13-05-2025 02:20:01]    |-- fabric-rendering-fluids-v1 3.0.11+4d0d570390 [13-05-2025 02:20:01]    |-- fabric-rendering-v0 1.1.28+df3654b390 [13-05-2025 02:20:01]    |-- fabric-rendering-v1 1.13.0+526f2c6790 [13-05-2025 02:20:01]    |-- fabric-resource-conditions-api-v1 2.1.2+aae9039d90 [13-05-2025 02:20:01]    |-- fabric-resource-loader-v0 0.8.4+edbdcddb90 [13-05-2025 02:20:01]    |-- fabric-screen-api-v1 1.0.32+4d0d570390 [13-05-2025 02:20:01]    |-- fabric-screen-handler-api-v1 1.3.8+1cc24b1b90 [13-05-2025 02:20:01]    |-- fabric-sound-api-v1 1.0.2+c4f28df590 [13-05-2025 02:20:01]    |-- fabric-textures-v0 1.0.24+aeb40ebe90 [13-05-2025 02:20:01]    |-- fabric-transfer-api-v1 2.1.6+413cbbc790 [13-05-2025 02:20:01]    \-- fabric-transitive-access-wideners-v1 1.3.3+08b73de490 [13-05-2025 02:20:01] - fabricloader 0.16.14 [13-05-2025 02:20:01]    \-- mixinextras 0.4.1 [13-05-2025 02:20:01] - geckolib3 3.1.40 [13-05-2025 02:20:01]    \-- com_eliotlash_mclib_mclib 20 [13-05-2025 02:20:01] - genesis 1.19.2-1.0.2 [13-05-2025 02:20:01] - grounded_origins 1.2.3 [13-05-2025 02:20:01]    \-- apugli 1.9.3+1.19-fabric [13-05-2025 02:20:01] - icarus 1.14.1 [13-05-2025 02:20:01] - identity 2.6.1-1.19.1 [13-05-2025 02:20:01]    \-- omega-config 1.2.3-1.18.1 [13-05-2025 02:20:01] - impaled 1.1.4 [13-05-2025 02:20:01] - itemfig 1.19.2-0.2.7-fabric [13-05-2025 02:20:01] - java 17 [13-05-2025 02:20:01] - journeymap 5.9.8 [13-05-2025 02:20:01]    \-- journeymap-api-fabric 1.19.1-1.9-fabric-SNAPSHOT [13-05-2025 02:20:01] - landchidori 1.0.3 [13-05-2025 02:20:01] - latoorigins 1.19.2-1.1.0 [13-05-2025 02:20:01] - lithium 0.11.1 [13-05-2025 02:20:01] - magic_origins v0.3.5 [13-05-2025 02:20:01] - medievalorigins 5.1.9.2+1.19.2 [13-05-2025 02:20:01]    |-- additionalentityattributes 1.4.0+1.19.2 [13-05-2025 02:20:01]    |-- common-protection-api 1.0.0 [13-05-2025 02:20:01]    \-- reach-entity-attributes 2.3.0 [13-05-2025 02:20:01] - midnightlib 1.0.0 [13-05-2025 02:20:01] - minecraft 1.19.2 [13-05-2025 02:20:01] - moborigins 1.10.0 [13-05-2025 02:20:01] - mrplaguewarper 1.0.8 [13-05-2025 02:20:01] - mythic 1.0.2 [13-05-2025 02:20:01] - mythorigins 1.19-0.2.0 [13-05-2025 02:20:01] - omnitrix_origins 1.0.0 [13-05-2025 02:20:01] - oneporigins 1.0 [13-05-2025 02:20:01] - origins 1.7.1 [13-05-2025 02:20:01]    |-- apoli 2.6.1 [13-05-2025 02:20:01]    |    |-- calio 1.7.0 [13-05-2025 02:20:01]    |    |-- cardinal-components-base 5.0.1 [13-05-2025 02:20:01]    |    |-- cardinal-components-entity 5.0.1 [13-05-2025 02:20:01]    |    |-- cloth-config 8.0.75 [13-05-2025 02:20:01]    |    |    \-- cloth-basic-math 0.6.1 [13-05-2025 02:20:01]    |    \-- playerabilitylib 1.6.0 [13-05-2025 02:20:01]    \-- reach-entity-attributes 2.3.0 [13-05-2025 02:20:01] - origins-plus-plus 2.3.1 [13-05-2025 02:20:01] - origins_4d_being 1.0.0 [13-05-2025 02:20:01] - origins_vampire_mr 1-v2.1.0 [13-05-2025 02:20:01] - originsumbrellas 1.5.4 [13-05-2025 02:20:01] - pehkui 3.8.3+1.14.4-1.21 [13-05-2025 02:20:01]    \-- kanos_config 0.4.1+1.14.4-1.19.4 [13-05-2025 02:20:01] - promans_origins 1.0.0 [13-05-2025 02:20:01] - rpg_origins 1.4.3 [13-05-2025 02:20:01] - sculkling 1.0.0 [13-05-2025 02:20:01] - seleni 0.2.5+1.19.2 [13-05-2025 02:20:01] - slimeorigin 2.0.2-1.19.2 [13-05-2025 02:20:01] - spilaioorigins 1.19-0.3.0 [13-05-2025 02:20:01] - thiccpackets 1.17-1.19+ [13-05-2025 02:20:01] - thorigins 4.2.0 [13-05-2025 02:20:01] - trinkets 3.4.2 [13-05-2025 02:20:01] - voidwalker 1.0.0 [13-05-2025 02:20:01] - yee 3.0.3 [13-05-2025 02:20:01] Found 1 non-fabric mod: [13-05-2025 02:20:01] - better_weapons-1.jar [13-05-2025 02:20:01] SpongePowered MIXIN Subsystem Version=0.8.7 Source=file:/home/smpicnic/server/data/libraries/net/fabricmc/sponge-mixin/0.15.5+mixin.0.8.7/sponge-mixin-0.15.5+mixin.0.8.7.jar Service=Knot/Fabric Env=SERVER [13-05-2025 02:20:01] Compatibility level set to JAVA_17 [13-05-2025 02:20:02] Loaded configuration file for Lithium: 114 options available, 0 override(s) found [13-05-2025 02:20:02] Error loading class: net/minecraft/class_998 (java.lang.ClassNotFoundException: net/minecraft/class_998) [13-05-2025 02:20:02] @Mixin target net.minecraft.class_998 was not found impaled.mixins.json:TridentRiptideFeatureRendererMixin from mod impaled [13-05-2025 02:20:02] Initializing MixinExtras via com.llamalad7.mixinextras.service.MixinExtrasServiceImpl(version=0.4.1). [13-05-2025 02:20:03] Method overwrite conflict for revertScale in slimeorigin.mixins.json:MixinLivingEntity from mod slimeorigin, previously written by latokike.mythorigins.mixin.LivingEntityMixin. Skipping method. [13-05-2025 02:20:03] Added Config bclib.generator to auto sync (file hash) [13-05-2025 02:20:03] Added Config bclib.main to auto sync (content diff) [13-05-2025 02:20:03] Added Config bclib.recipes to auto sync (file hash) [13-05-2025 02:20:03] Added Config bclib.biomes to auto sync (file hash) [13-05-2025 02:20:04] Method overwrite conflict for damage in spilaioorigins.mixins.json:ItemStackMixin from mod spilaioorigins, previously written by latokike.latoorigins.mixin.ItemStackMixin. Skipping method. [13-05-2025 02:20:05] Building unoptimized datafixer [13-05-2025 02:20:05] Method overwrite conflict for method_6091 in moborigins.mixins.json:RavagerEntityMixin from mod moborigins, previously written by draylar.identity.mixin.RavagerEntityMixin. Skipping method. [13-05-2025 02:20:05] Minecraft has crashed! [13-05-2025 02:20:05] net.fabricmc.loader.impl.FormattedException: java.lang.NoSuchFieldError: ATTACK_DAMAGE_MODIFIER [13-05-2025 02:20:05] at net.fabricmc.loader.impl.FormattedException.ofLocalized(FormattedException.java:63) ~[fabric-loader-0.16.14.jar:?] [13-05-2025 02:20:05] at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:482) ~[fabric-loader-0.16.14.jar:?] [13-05-2025 02:20:05] at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) [fabric-loader-0.16.14.jar:?] [13-05-2025 02:20:05] at net.fabricmc.loader.impl.launch.knot.KnotServer.main(KnotServer.java:23) [fabric-loader-0.16.14.jar:?] [13-05-2025 02:20:05] at net.fabricmc.loader.impl.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:69) [fabric-loader-0.16.14.jar:?] [13-05-2025 02:20:05] Caused by: java.lang.NoSuchFieldError: ATTACK_DAMAGE_MODIFIER [13-05-2025 02:20:05] at net.minecraft.class_1799.<clinit>(class_1799.java:126) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.minecraft.class_1761.<init>(class_1761.java:114) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.minecraft.class_1761$1.<init>(class_1761.java:15) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.minecraft.class_1761.<clinit>(class_1761.java:15) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.minecraft.class_1802.<clinit>(class_1802.java:22) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.minecraft.class_1308$Anonymous$dedb2ce0fc304852b6ae6ea54fec0e73.<init>(DropSkullsMixins.java:23) ~[?:?] [13-05-2025 02:20:05] at net.minecraft.class_1308.<clinit>(class_1308.java:87) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.minecraft.class_1299.<clinit>(class_1299.java:260) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.minecraft.class_3103.<clinit>(class_3103.java:28) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.minecraft.class_3031.<clinit>(class_3031.java:84) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.minecraft.class_6800.<clinit>(class_6800.java:20) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.minecraft.class_6803.method_39702(class_6803.java:24) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.minecraft.class_5458.method_44104(class_5458.java:98) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.minecraft.class_5458.method_30566(class_5458.java:105) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at java.util.LinkedHashMap.forEach(LinkedHashMap.java:721) ~[?:?] [13-05-2025 02:20:05] at net.minecraft.class_5458.<clinit>(class_5458.java:104) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.minecraft.class_2378.<clinit>(class_2378.java:326) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.minecraft.class_2966.method_12851(class_2966.java:50) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.minecraft.server.Main.main(Main.java:98) ~[server-intermediary.jar:?] [13-05-2025 02:20:05] at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:480) ~[fabric-loader-0.16.14.jar:?] [13-05-2025 02:20:05] ... 3 more
    • Every time I try to run a modpack I am using, I get a crash error saying that it was caused by an invalid Java Runtime configuration. I have tried everything I can think of to try and debug it but nothing has worked. https://pastebin.com/ddxQTLh4
    • ok i tried to disable the last mod's i installed and it is some of then, so now im going to do the classic enable and disable trick to find out which mod cause the crash. thanks for the help  
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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