Jump to content

Recommended Posts

Posted

I can't get the GUI to open on the blocks. I am not sure how to do this. I read the FML porting tutorial.

 

I have this in both server and client and I registered it via

MinecraftForge.setGuiHandler(this, this);

@Override
public Object getGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
	System.out.println("WORKING "+ID);
	return null;
}

 

On the blockActivated function I simply called ModLoader.openGUI(...) in both client and server side.

 

It never prints that line. Not sure why...

 

You can check out the full code here: https://github.com/calclavia/Universal-Electricity/tree/master/Universal_Electricity

 

Changes are in UCBlockMachine, mod_UniversalElectricity

Posted

Use Player.openGui() like you should. ModLoader's openGUI is only clientside ever.

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

Both sides you use Player.openGUI

Try reading the IGuiHandler.

 

Thanks! It works now! Is it possible to have more than one GUI handler in a mod? It doesn't really feel neat if I have all my GUIs handled at one location. But if there is no option, that is fine. That is just for coding aesthetics.

 

One more question though. My tile entity saves NBT data and stuff. How do I make sure those datas are synced with the client? Or are they synced automatically themselves when I do an NBT save?

Posted

Both sides you use Player.openGUI

Try reading the IGuiHandler.

 

OK. I accidentally lied. The GUI still doesn't open up on multiplayer. I am not sure what I am doing wrong. I have both server and client using IGuiHandler. I have ONLY the client doing action with the IGUIHandler because the server can not have a GUI class inside of it.

 

Here are the sources. Scroll to the very bottom for the GUI handle function.

 

CLIENT GUI HANDLER: https://github.com/calclavia/Universal-Electricity/blob/master/minecraft/net/minecraft/src/universalelectricity/components/UniversalComponents.java

 

SERVER GUI HANDLER: https://github.com/calclavia/Universal-Electricity/blob/master/minecraft_server/net/minecraft/src/mod_UniversalElectricity.java

Posted

I have another problem now though. The data of the tile entity seems to not be syncing with the server. I did some print line tests and the server had all the variables set correctly, but on the client side the variables are not correct. How would I make sure those variables in the tile entities are synced?

 

EDIT: I tried using packets to send the data. But things start to get really messy. Is there any structured way I can send data packets?

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

    • 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" } } }  
    • All versions of Minecraft Forge suddenly black screen even without mods (tried reinstalling original Minecraft, Java, updating drivers doesn't work)
    • When i join minecraft all ok, when i join world all working fine, but when i open indentity menu, i get this The game crashed whilst unexpected error Error: java.lang.NullPointerException: Cannot invoke "top.ribs.scguns.common.Gun$Projectile.getDamage()" because "this.projectile" is null crash report here https://paste.ee/p/0vKaf
  • Topics

×
×
  • Create New...

Important Information

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