Jump to content

Recommended Posts

Posted

good days

i have been strugling whith anoing behaveour making a gun until i realize all the mess was caused by this issue

 

i been using a key binds to send a package form the client to the server to change nbt values in the held item but the mesage never reache server but end in the client side

 

to test it i set some systemOuts in the mi package Handler class to see what its getting

        			System.out.println( 
        					"\n\nMundo ="+playerIn.getEntityWorld().isRemote+
        					"\nID="+ID+
        					" \nVALOR="+VALOR+
        					" \nENTITYID="+ENTITYID 
        					);

 

 

and this is what i get in the console when use the keybinds


Mundo =true
ID=1 
VALOR=0 
ENTITYID=195
[07:45:45] [server thread/INFO] [sTDOUT]: [mercenarymod.eventos.CambiarParametrosEnEntidades:en:23]: !!!!!!!!!! CambiarParametrosEnEntidades(true en=Player843)
[07:45:45] [server thread/INFO] [sTDOUT]: [mercenarymod.eventos.mensajeMercenarioalServidor$Handler0$1:run:125]: 

Mundo =true
ID=1 
VALOR=3 
ENTITYID=195
[07:45:46] [server thread/INFO] [sTDOUT]: [mercenarymod.eventos.CambiarParametrosEnEntidades:en:23]: !!!!!!!!!! CambiarParametrosEnEntidades(true en=Player843)
[07:45:46] [server thread/INFO] [sTDOUT]: [mercenarymod.eventos.mensajeMercenarioalServidor$Handler0$1:run:125]: 

Mundo =true
ID=1 
VALOR=1 
ENTITYID=195
[07:45:46] [server thread/INFO] [sTDOUT]: [mercenarymod.eventos.CambiarParametrosEnEntidades:en:23]: !!!!!!!!!! CambiarParametrosEnEntidades(true en=Player843)
[07:45:46] [server thread/INFO] [sTDOUT]: [mercenarymod.eventos.mensajeMercenarioalServidor$Handler0$1:run:125]: 

Mundo =true
ID=1 
VALOR=2 
ENTITYID=195
[07:45:47] [server thread/INFO] [sTDOUT]: [mercenarymod.eventos.CambiarParametrosEnEntidades:en:23]: !!!!!!!!!! CambiarParametrosEnEntidades(true en=Player843)
[07:45:47] [server thread/INFO] [sTDOUT]: [mercenarymod.eventos.mensajeMercenarioalServidor$Handler0$1:run:125]: 

Mundo =true
ID=1 
VALOR=4 
ENTITYID=195

"Mundo =true" the data is ending in the client side not in the server

 

 

i register the package class in mi main class perinit this way

 

	// send packages
	network = NetworkRegistry.INSTANCE.newSimpleChannel("canalM00");
	network.registerMessage(mensajeMercenarioalServidor.Handler0.class, mensajeMercenarioalServidor.class, 0, Side.SERVER);
	network.registerMessage(mensajeMercenarioalMundo.Handler0.class, mensajeMercenarioalMundo.class, 1, Side.CLIENT);

 

 

eclipśe says no error whit this part of the code,

 

################################

could be that forge change the way packages works, or may a bug ?

 

 

 

this is the keyhandler in client side

KeyInputHandler.java

https://gist.github.com/anonymous/ec284ef42cc9afe76d91e833bb5fa285

 

this is the package class

mensajeMercenarioalServidor.java

https://gist.github.com/anonymous/d15cf44acbc608c1eb53e8162ee12c59

 

 

 

 

 

 

 

 

 

 

 

 

 

Posted

The problem is you are still using the client player in your message handler, despite being on the server side:

EntityPlayer playerIn = Minecraft.getMinecraft().thePlayer;

You should be getting the player via a call to your proxy:

EntityPlayer player = Main.proxy.getPlayerEntity(ctx);

// CommonProxy / ServerProxy implementation:
public EntityPlayer getPlayerEntity(MessageContext ctx) {
return ctx.getServerHandler().playerEntity;
}

// ClientProxy implementation:
@Override
public EntityPlayer getPlayerEntity(MessageContext ctx) {
return (ctx.side.isClient() ? Minecraft.getMinecraft().thePlayer : super.getPlayerEntity(ctx));
}

Posted

ya is rigth

 

i change the

EntityPlayer playerIn = Minecraft.getMinecraft().thePlayer;

per

EntityPlayer playerIn = ctx.getServerHandler().playerEntity;

and now says

 

Mundo =false
ID=1 
VALOR=0 
ENTITYID=182
[09:38:00] [Client thread/INFO]: [CHAT] Mundo=false
[09:38:00] [Client thread/INFO]: [CHAT] Es Un Cargador
[09:38:00] [Client thread/INFO]: [CHAT] Es Un Cargador
[09:38:00] [Client thread/INFO]: [CHAT] Boton = 0
[09:38:00] [Client thread/INFO]: [CHAT] accion = 1
[09:38:00] [Client thread/INFO]: [CHAT] tipomunicion = 2
[09:38:00] [server thread/INFO] [sTDOUT]: [mercenarymod.eventos.CambiarParametrosEnEntidades:en:23]: !!!!!!!!!! CambiarParametrosEnEntidades(false en=Player702)

 

 

this ( ctx | Minecraft.getMinecraft ) thing is little hard to remeber i feel i been falling whith same stone like 3 times

 

and what a happy coincidense  the piece of the client side i wass loking long ago to make some mercenary entityes to be controled whith a item from the player client side

 

bueno

thanks

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



×
×
  • Create New...

Important Information

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