Jump to content

Recommended Posts

Posted

I have a very basic understanding of Java but really enjoy tinkering. Sorry if this question is stupid :) I believe that this problem is simply due to my basic understanding of Java. I am not really looking for a solution here, more just a pointer to get me unstuck. 

I have a client only mod (Music Player). I want to send an int from the server to the music player mod but I am not sure the best way to do this.

Reason:
I want to be able to start battle music when a player is within a configurable range of a 'boss entity' and then stop the battle music when the entity is dead or if the player is no longer in range.

I have the entity range detection working and also the packets working through a helper mod. I am not sure how to send the int from the helper mod client side to the client only mod?

Thought 1: In my helper mod, if I depend on the Music Player mod, wouldn't creating a 'new Class()' cause a duplicative instance of the music player rather than communicating with the instance that is actually running on the client?

Thought 2: Is it possible for a packet to be sent from one mod and received on the client by another mod?

Thought 3: I could modify the music player mod to also run on the server and then move the packets to the music player mod. If I did that though, wouldn't I have the same 'new class()' problem?

 

Posted
1 hour ago, dtorgo said:

I have a client only mod (Music Player). I want to send an int from the server to the music player mod but I am not sure the best way to do this.

not possible you can't send a custom packet from the server to the client when it's a client only mod

Posted (edited)
13 minutes ago, Luis_ST said:

not possible you can't send a custom packet from the server to the client when it's a client only mod

I understand that. My helper mod can send/receive the packets though and my helper mod is both client/server.

My question is is it possible to send an 'int' from my helper mod client side to the client only mod?

My thought was that if my helper mod depends on the client only mod, then maybe I could call a method directly and pass in the int? Where I am confused is that wouldn't that mean that I would be instantiating a copy of the client only mod class?

Edited by dtorgo
Posted

Not sure why you didn't just make the music mod have a server half to do the networking, but whatever.

Look at using IMC messages or a static field reference on your music player that holds the music player's mod instance.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted
49 minutes ago, Draco18s said:

Not sure why you didn't just make the music mod have a server half to do the networking, but whatever.

Look at using IMC messages or a static field reference on your music player that holds the music player's mod instance.

Thank you both. I think the approach of making the music mod server/client is probably the best approach. A few days ago I removed the @clientonly definition on the main class and it completely crashed the server, i did not look into it to much after that. :)

I will take a stab at making the music mod server/client enabled.

If that does not work, I will look at IMC messages. Thank you!

Posted
20 minutes ago, dtorgo said:

A few days ago I removed the @clientonly definition on the main class and it completely crashed the server, i did not look into it to much after that.

do never use @OnlyIn it's only for vanilla you can use this,
also side mods are not create via @OnlyIn take a look at this

Posted (edited)

See also DistExecutor

Edited by Draco18s

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Posted
7 hours ago, Draco18s said:

Not sure why you didn't just make the music mod have a server half to do the networking, but whatever.

Look at using IMC messages or a static field reference on your music player that holds the music player's mod instance.

I changed the Music Player mod to not crash on the server and added packets to it. It is working perfectly now. Thanks again for the help.

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

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

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