Jump to content

Recommended Posts

Posted

I am trying to spawn a fake player entity using forge, however apparently a bunch of the imports are obfuscated still?
 

public class FakePlayerEntity extends Entity { public FakePlayerEntity(World worldIn) { super(worldIn, worldIn.getGameRules().getBoolean(GameRules.NATURAL_REGENERATION)); // Additional setup for your fake player entity }


World is not found, when I auto implement the required super. IntelliJ sets the code to the following

    public FakePlayerEntity(EntityType<?> p_19870_, Level p_19871_) {
        super(p_19870_, p_19871_);
    }


The example mod works fine and all the imports for it are accurate. Just wondering If I am going about creating an Entity the wrong way

Posted (edited)

Don't post code snippets out of context in the forums, put a complete example of your problem on github where we can see everything.

 

But if you are posting compiler errors, you want a learning java forum not a minecraft modding forum.

Edited by warjort

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Posted (edited)

I cant find the Imports based on all the guides I am reading. Im not new to programming, I just don't usually use java. Usually I code in C# or Python. Again the issue isnt with the code itself, its the seemingly missing imports.

Also that's basically the entire Class for my custom Entity. (I haven't started coding it yet as Im encountering Issues with the Imports as I previously stated. It seems like the Default Forge Installation for IntelliJ using genIntellijRuns is Either missing Mappings for some classes, or I messed up the install of the IDE. If Its the Latter I will go and fix it on my own, if its the former then I have an issue that needs to be addressed)
 

import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.world.World;

public class FakePlayerEntity extends PlayerEntity {
    
	// Constructor
    public FakePlayerEntity(World worldIn) {
        super(worldIn, worldIn.getGameRules().getBoolean(GameRules.NATURAL_REGENERATION));
    }

Both of those imports don't exist. Im posting here specifically because in the Forge tutorials and documentation I can't find anything relating to Entity classes. Hence yes, it is an IDE error but given that I can't find any information on making a custom Entity (Using the latest version of forge), Where exactly should I ask this?
Am I Supposed to have those two Imports? EG: Are those imports normally accessible or am I missing something? (The ExampleMod works and launches fine).

Edited by jasonmbrown
Tweaked Information
Posted (edited)

Those are the old forge names from minecraft/forge 1.16 and before.

You want mojang official names for those classes which Forge switched to by default in 1.17

PlayerEntity -> ServerPlayer

World -> Level

 

If you are going to use tutorials you need to make sure they are for the version you are developing with.

Mojang tend to have lots in "churn" in their codebase.

 

I believe there used to be a bot on Forge's discord that let you look up the changed name to help people migrate from 1.16 to 1.17

If it still exists (I don't use discord so don't know) it is probably out of date by now but might still have some use?

 

Edited by warjort

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Posted (edited)
31 minutes ago, warjort said:

Those are the old forge names from minecraft/forge 1.16 and before.

You want mojang official names for those classes which Forge switched to by default in 1.17

PlayerEntity -> ServerPlayer

World -> Level

If you are going to use tutorials you need to make sure they are for the version you are developing with.

Mojang tend to have lots in "churn" in their codebase.

I believe there used to be a bot on Forge's discord that let you look up the changed name to help people migrate from 1.16 to 1.17

If it still exists (I don't use discord so don't know) it is probably out of date by now but might still have some use?

Ah thank you very much for that information. I haven't done any Minecraft modding since back in 1.12, things have changed quite a bit in a good way. I just wish more guides had the version number they were written for.

On a side note, it seems like what I thought was Obfuscation was actually just IntelliJ's weird way of generating variable names. So in essence part of my issue was due to my stupidity, and part of it was due to the confusion over the imports.

Edited by jasonmbrown

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

    • that happens every time I enter a new dimension.
    • This is the last line before the crash: [ebwizardry]: Synchronising spell emitters for PixelTraveler But I have no idea what this means
    • What in particular? I barely used that mod this time around, and it's never been a problem in the past.
    • Im trying to build my mod using shade since i use the luaj library however i keep getting this error Reason: Task ':reobfJar' uses this output of task ':shadowJar' without declaring an explicit or implicit dependency. This can lead to incorrect results being produced, depending on what order the tasks are executed. So i try adding reobfJar.dependsOn shadowJar  Could not get unknown property 'reobfJar' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. my gradle file plugins { id 'eclipse' id 'idea' id 'maven-publish' id 'net.minecraftforge.gradle' version '[6.0,6.2)' id 'com.github.johnrengelman.shadow' version '7.1.2' id 'org.spongepowered.mixin' version '0.7.+' } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'org.spongepowered.mixin' apply plugin: 'com.github.johnrengelman.shadow' version = mod_version group = mod_group_id base { archivesName = mod_id } // Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. java.toolchain.languageVersion = JavaLanguageVersion.of(17) //jarJar.enable() println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" minecraft { mappings channel: mapping_channel, version: mapping_version copyIdeResources = true runs { configureEach { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES' property 'forge.logging.console.level', 'debug' arg "-mixin.config=derp.mixin.json" mods { "${mod_id}" { source sourceSets.main } } } client { // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. property 'forge.enabledGameTestNamespaces', mod_id } server { property 'forge.enabledGameTestNamespaces', mod_id args '--nogui' } gameTestServer { property 'forge.enabledGameTestNamespaces', mod_id } data { workingDirectory project.file('run-data') args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') } } } sourceSets.main.resources { srcDir 'src/generated/resources' } repositories { flatDir { dirs './libs' } maven { url = "https://jitpack.io" } } configurations { shade implementation.extendsFrom shade } dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" implementation 'org.luaj:luaj-jse-3.0.2' implementation fg.deobf("com.github.Virtuoel:Pehkui:${pehkui_version}") annotationProcessor 'org.spongepowered:mixin:0.8.5:processor' minecraftLibrary 'luaj:luaj-jse:3.0.2' shade 'luaj:luaj-jse:3.0.2' } // Example for how to get properties into the manifest for reading at runtime. tasks.named('jar', Jar).configure { manifest { attributes([ 'Specification-Title' : mod_id, 'Specification-Vendor' : mod_authors, 'Specification-Version' : '1', // We are version 1 of ourselves 'Implementation-Title' : project.name, 'Implementation-Version' : project.jar.archiveVersion, 'Implementation-Vendor' : mod_authors, 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), "TweakClass" : "org.spongepowered.asm.launch.MixinTweaker", "TweakOrder" : 0, "MixinConfigs" : "derp.mixin.json" ]) } rename 'mixin.refmap.json', 'derp.mixin-refmap.json' } shadowJar { archiveClassifier = '' configurations = [project.configurations.shade] finalizedBy 'reobfShadowJar' } assemble.dependsOn shadowJar reobf { re shadowJar {} } publishing { publications { mavenJava(MavenPublication) { artifact jar } } repositories { maven { url "file://${project.projectDir}/mcmodsrepo" } } } my entire project:https://github.com/kevin051606/DERP-Mod/tree/Derp-1.0-1.20
  • Topics

×
×
  • Create New...

Important Information

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