Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.12.2] How would I send variable over network (using Simpleimpl) from command->server->remote client?


Nick82285
 Share

Recommended Posts

The synopsis is that I have a command that sends out data to the server in the form of a CharSequence (I used system.out to verify that this variable is only sent/initialized if I send it to the server first by the way of SimpleNetworkWrapper#sendToServer). I then need to be able to relay that variable to a remote client that's separate from the player who executed the command. Is there a simple way to implement this effectively?

 

Here's my netcode, please don't judge

https://pastebin.com/CrpEvtkY

 

I bet you that you can't guess what my code actually does (Joke)

 

 

Edit 1: Updated code based on Animefan8888/diesieben07. If you want to test it, I believe everything you need is in the paste (If not P.M me). My goal is to create a command that's executed by a command block/player to tell a connected client to create an overlay on the client specified in the command.
https://pastebin.com/irwqLW5q

 

Edit 2: I used the VLCJ (3.12.1), slf4j-api (1.7.25) and the installation directory for VLC media player in C:\Program Files\VideoLAN\VLC

Edited by Nick82285
put all classes into pastebin, fixed code
Link to comment
Share on other sites

55 minutes ago, Nick82285 said:

to a remote client that's separate from the player

I'm sorry what does this mean? Like it's not a player connected to the server?

 

56 minutes ago, Nick82285 said:

The synopsis is that I have a command that sends out data to the server in the form of a CharSequence

I have a problem with your question in particular. Commands are executed on the server. So the sequence goes more like this

Client sends chat message with command->Server receives message and executes command... here is where I'm confused. Now you need to send the string back to the client? Send the packet to the player who issued the command.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

  • NetworkRegistry.INSTANCE.newSimpleChannel(MODID); - this should be done in preInit or init, not in a static initializer.
  • Why is SendMessage.directoryToSend static? And why do you then still access it as if it was an instance field? Your IDE should be warning you about this. Also, basic Java knowledge should let you know that this does not work.
  • Your code is a giant security problem. You are allowing the server to send arbitrary paths to the client, do not do this. Moreover, "\" is the directory separator only on Windows.
Link to comment
Share on other sites

16 minutes ago, diesieben07 said:

this should be done in preInit or init, not in a static initializer

Fair (I fixed it), Just following the example in the ForgeDocs for 1.12

21 minutes ago, diesieben07 said:

Your IDE should be warning you about this.

Fair as well (fixed as well), but doesn't :/ and I don't know why. It's Eclipse 2019 06. That and I'm not the best programmer.

 

31 minutes ago, diesieben07 said:

Your code is a giant security problem. You are allowing the server to send arbitrary paths to the client

I don't quite see that. This will only be used by command blocks and the commands won't be changed unless there is a rogue admin (potentially preventing a redirect to access system files). The client then checks if the local directory/local video file exists before executing on it.

 

Should I hard code in these directories or sync a json file (with a third party program, however this adds another security concern) to update these directories? It's kind of difficult if I need a fast working environment to do either.

 

Is there any way to get it to work?

Link to comment
Share on other sites

2 minutes ago, Nick82285 said:

Should I hard code in these directories or sync a json file (with a third party program, however this adds another security concern) to update these directories? It's kind of difficult if I need a fast working environment to do either.

Not necessarily, but you should limit the path to a set of allowed folders.

 

Link to comment
Share on other sites

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
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.

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • net.minecraft.ResourceLocationException: Non [a-z0-9/._-] character in path of location: minecraft:textures/models/armor/leather_layer_1.png     at net.minecraft.resources.ResourceLocation.<init>(ResourceLocation.java:37) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading}     at net.minecraft.resources.ResourceLocation.<init>(ResourceLocation.java:42) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading}     at net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer.getArmorResource(HumanoidArmorLayer.java:146) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer.m_117118_(HumanoidArmorLayer.java:57) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer.m_6494_(HumanoidArmorLayer.java:36) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.entity.layers.HumanoidArmorLayer.m_6494_(HumanoidArmorLayer.java:23) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.entity.LivingEntityRenderer.m_7392_(LivingEntityRenderer.java:126) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.entity.MobRenderer.m_7392_(SourceFile:45) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading}     at net.minecraft.client.renderer.entity.MobRenderer.m_7392_(SourceFile:18) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading}     at net.minecraft.client.renderer.entity.EntityRenderDispatcher.m_114384_(EntityRenderDispatcher.java:129) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.LevelRenderer.m_109517_(LevelRenderer.java:1280) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.LevelRenderer.m_109599_(LevelRenderer.java:1076) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.GameRenderer.m_109089_(GameRenderer.java:1050) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.renderer.GameRenderer.m_109093_(GameRenderer.java:830) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91383_(Minecraft.java:1039) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.Minecraft.m_91374_(Minecraft.java:659) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}     at net.minecraft.client.main.Main.main(Main.java:186) ~[client-1.17.1-20210706.113038-srg.jar%2353!:?] {re:classloading,pl:runtimedistcleaner:A}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?] {}     at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[?:?] {}     at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] {}     at java.lang.reflect.Method.invoke(Method.java:567) ~[?:?] {}     at net.minecraftforge.fml.loading.targets.CommonClientLaunchHandler.lambda$launchService$0(CommonClientLaunchHandler.java:45) ~[fmlloader-1.17.1-37.0.126.jar%2322!:?] {}     at cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:37) [modlauncher-9.0.7.jar%235!:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-9.0.7.jar%235!:?] {}     at cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-9.0.7.jar%235!:?] {}     at cpw.mods.modlauncher.Launcher.run(Launcher.java:106) [modlauncher-9.0.7.jar%235!:?] {}     at cpw.mods.modlauncher.Launcher.main(Launcher.java:77) [modlauncher-9.0.7.jar%235!:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-9.0.7.jar%235!:?] {}     at cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-9.0.7.jar%235!:?] {}     at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:90) [bootstraplauncher-0.1.17.jar:?] {}     (this the crash report. I am not sure if this is the debug log. If not, how to find it?.)
    • both files looks okay can you post a git repo of your mod, so I can debug this
    • It means the method is non static
    • i try and enter safe mode and nothing happens, not sure how to get a log from that
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.