Jump to content

Featured Replies

Posted
comment_3768

Hey guys,

 

Holy crap I can't actually believe I am writing another help thread, feel like a noob haha. Although I never dealt with this kind of error so here we go. It basically talks about unhandled packets and stuff. I tried adding a gamble system and it gives me the error when I ask to gamble another player. Here are the errors:

[9/29/16 7:26 PM]: Unhandled packet type: 123 - size: 0
[9/29/16 7:26 PM]: Unhandled packet type: 15 - size: 0
[9/29/16 7:26 PM]: Unhandled packet type: 229 - size: 0
[9/29/16 7:26 PM]: Unhandled packet type: 138 - size: 0
[9/29/16 7:26 PM]: Unhandled packet type: 197 - size: 0
[9/29/16 7:26 PM]: Unhandled packet type: 233 - size: 0

And all I added were those packets: 

		packetId[142] = new GambleResponse();
		packetId[143] = new GambleResponse();

And this is GambleResponse:

package server.model.players.packets;

import server.event.CycleEvent;
import server.event.CycleEventContainer;
import server.event.CycleEventHandler;
import server.model.players.Client;
import server.model.players.PacketType;
import server.model.players.Player;
import server.model.players.PlayerHandler;

public class GambleResponse implements PacketType {

	@Override
	public void processPacket(Client c, int packetType, int packetSize) {
		int clientId = c.getInStream().readSignedWordBigEndian();
		if (clientId < 0)
			return;
		Player o = PlayerHandler.players[clientId];
		if (o == null)
			return;
		if (!c.inGambleZone() || !o.inGambleZone())
			return;
		if (c.goodDistance(o.getX(), o.getY(), c.getX(), o.getY(), 1)
				&& o.goodDistance(c.getX(), c.getY(), o.getX(), o.getY(), 1)) {
			if (packetType == 142)
				c.getGambling().answerRequest((Client) o);
			else if (packetType == 143)
				c.getGambling().openOptions((Client) o);
			return;
		}
		CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {

			@Override
			public void execute(CycleEventContainer container) {
				if (c.goodDistance(o.getX(), o.getY(), c.getX(), o.getY(), 1)
						&& o.goodDistance(c.getX(), c.getY(), o.getX(), o.getY(), 1)) {
					if (packetType == 142)
						c.getGambling().answerRequest((Client) o);
					else if (packetType == 143)
						c.getGambling().openOptions((Client) o);
					container.stop();
				}
			}

			@Override
			public void stop() {
				// TODO Auto-generated method stub

			}
		}, 1);
	}

}

 

comment_3769
5 minutes ago, mathy said:

Hey guys,

 

Holy crap I can't actually believe I am writing another help thread, feel like a noob haha. Although I never dealt with this kind of error so here we go. It basically talks about unhandled packets and stuff. I tried adding a gamble system and it gives me the error when I ask to gamble another player. Here are the errors:


[9/29/16 7:26 PM]: Unhandled packet type: 123 - size: 0
[9/29/16 7:26 PM]: Unhandled packet type: 15 - size: 0
[9/29/16 7:26 PM]: Unhandled packet type: 229 - size: 0
[9/29/16 7:26 PM]: Unhandled packet type: 138 - size: 0
[9/29/16 7:26 PM]: Unhandled packet type: 197 - size: 0
[9/29/16 7:26 PM]: Unhandled packet type: 233 - size: 0

And all I added were those packets: 


		packetId[142] = new GambleResponse();
		packetId[143] = new GambleResponse();

And this is GambleResponse:


package server.model.players.packets;

import server.event.CycleEvent;
import server.event.CycleEventContainer;
import server.event.CycleEventHandler;
import server.model.players.Client;
import server.model.players.PacketType;
import server.model.players.Player;
import server.model.players.PlayerHandler;

public class GambleResponse implements PacketType {

	@Override
	public void processPacket(Client c, int packetType, int packetSize) {
		int clientId = c.getInStream().readSignedWordBigEndian();
		if (clientId < 0)
			return;
		Player o = PlayerHandler.players[clientId];
		if (o == null)
			return;
		if (!c.inGambleZone() || !o.inGambleZone())
			return;
		if (c.goodDistance(o.getX(), o.getY(), c.getX(), o.getY(), 1)
				&& o.goodDistance(c.getX(), c.getY(), o.getX(), o.getY(), 1)) {
			if (packetType == 142)
				c.getGambling().answerRequest((Client) o);
			else if (packetType == 143)
				c.getGambling().openOptions((Client) o);
			return;
		}
		CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {

			@Override
			public void execute(CycleEventContainer container) {
				if (c.goodDistance(o.getX(), o.getY(), c.getX(), o.getY(), 1)
						&& o.goodDistance(c.getX(), c.getY(), o.getX(), o.getY(), 1)) {
					if (packetType == 142)
						c.getGambling().answerRequest((Client) o);
					else if (packetType == 143)
						c.getGambling().openOptions((Client) o);
					container.stop();
				}
			}

			@Override
			public void stop() {
				// TODO Auto-generated method stub

			}
		}, 1);
	}

}

 

Add me on my newer skype

Skype: gear.haze i can maybe help gotta look at the code more.

comment_3857

Make sure that your actually reading the full packet. Otherwise you'll be incorrectly reading the next packet in the queue.

Client -> Server

buffer.writeShort(value);
buffer.writeByte(value2);

 

Server 

int value = buffer.readShort();

byte value2 = buffer.readByte();

  • Author
comment_3875
2 hours ago, Arithium said:

Make sure that your actually reading the full packet. Otherwise you'll be incorrectly reading the next packet in the queue.

Client -> Server

buffer.writeShort(value);
buffer.writeByte(value2);

 

Server 

int value = buffer.readShort();

byte value2 = buffer.readByte();

I've been able to get more info on the error, these are the packet sizes in client.java:

    public static final int PACKET_SIZES[] = {
	    0, 0, 0, 1, -1, 0, 0, 0, 0, 0, //0
	    0, 0, 0, 0, 4, 0, 6, 2, 2, 0,  //10
	    0, 2, 0, 6, 0, 12, 0, 0, 0, 0, //20
	    0, 0, 0, 0, 0, 8, 4, 0, 0, 2,  //30
	    2, 6, 0, 6, 0, -1, 0, 0, 0, 0, //40
	    0, 0, 0, 12, 0, 0, 0, 8, 8, 12, //50
	    8, 8, 0, 0, 0, 0, 0, 0, 0, 0,  //60
	    6, 0, 2, 2, 8, 6, 0, -1, 0, 6, //70
	    0, 0, 0, 0, 0, 1, 4, 6, 0, 0,  //80
	    0, 0, 0, 0, 0, 3, 0, 0, -1, 0, //90
	    0, 13, 0, -1, 0, 0, 0, 0, 0, 0,//100
	    0, 0, 0, 0, 0, 0, 0, 6, 0, 0,  //110
	    1, 0, 6, 0, 0, 0, -1, 0, 2, 6, //120
	    0, 4, 6, 8, 0, 6, 0, 0, 0, 2,  //130
	    0, 0, 0, 0, 0, 6, 0, 0, 0, 0,  //140
	    0, 0, 1, 2, 0, 2, 6, 0, 0, 0,  //150
	    0, 0, 0, 0, -1, -1, 0, 0, 0, 0,//160
	    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  //170
	    0, 8, 0, 3, 0, 2, 0, 0, 8, 1,  //180
	    0, 0, 12, 0, 0, 0, 0, 0, 0, 0, //190
	    2, 0, 0, 0, 0, 0, 0, 0, 4, 0,  //200
	    4, 0, 0, 0, 7, 8, 0, 0, 10, 0, //210
	    0, 0, 0, 0, 0, 0, -1, 0, 6, 0, //220
	    1, 0, 0, 0, 6, 0, 6, 8, 1, 0,  //230
	    0, 4, 0, 0, 0, 0, -1, 0, -1, 4,//240
	    0, 0, 6, 6, 0, 0, 0            //250
}

As you can see, for example, 15 has a size of 4 but in the error it says that its size is 0..

comment_3880
1 hour ago, mathy said:

I've been able to get more info on the error, these are the packet sizes in client.java:


    public static final int PACKET_SIZES[] = {
	    0, 0, 0, 1, -1, 0, 0, 0, 0, 0, //0
	    0, 0, 0, 0, 4, 0, 6, 2, 2, 0,  //10
	    0, 2, 0, 6, 0, 12, 0, 0, 0, 0, //20
	    0, 0, 0, 0, 0, 8, 4, 0, 0, 2,  //30
	    2, 6, 0, 6, 0, -1, 0, 0, 0, 0, //40
	    0, 0, 0, 12, 0, 0, 0, 8, 8, 12, //50
	    8, 8, 0, 0, 0, 0, 0, 0, 0, 0,  //60
	    6, 0, 2, 2, 8, 6, 0, -1, 0, 6, //70
	    0, 0, 0, 0, 0, 1, 4, 6, 0, 0,  //80
	    0, 0, 0, 0, 0, 3, 0, 0, -1, 0, //90
	    0, 13, 0, -1, 0, 0, 0, 0, 0, 0,//100
	    0, 0, 0, 0, 0, 0, 0, 6, 0, 0,  //110
	    1, 0, 6, 0, 0, 0, -1, 0, 2, 6, //120
	    0, 4, 6, 8, 0, 6, 0, 0, 0, 2,  //130
	    0, 0, 0, 0, 0, 6, 0, 0, 0, 0,  //140
	    0, 0, 1, 2, 0, 2, 6, 0, 0, 0,  //150
	    0, 0, 0, 0, -1, -1, 0, 0, 0, 0,//160
	    0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  //170
	    0, 8, 0, 3, 0, 2, 0, 0, 8, 1,  //180
	    0, 0, 12, 0, 0, 0, 0, 0, 0, 0, //190
	    2, 0, 0, 0, 0, 0, 0, 0, 4, 0,  //200
	    4, 0, 0, 0, 7, 8, 0, 0, 10, 0, //210
	    0, 0, 0, 0, 0, 0, -1, 0, 6, 0, //220
	    1, 0, 0, 0, 6, 0, 6, 8, 1, 0,  //230
	    0, 4, 0, 0, 0, 0, -1, 0, -1, 4,//240
	    0, 0, 6, 6, 0, 0, 0            //250
}

As you can see, for example, 15 has a size of 4 but in the error it says that its size is 0..

I see your problem.

 

Line with the // 140, count them from the start. 140, 141, 142, 143, make 142 and 143 with a packet size of 2.

  • Author
comment_3898
3 hours ago, Arithium said:

I see your problem.

 

Line with the // 140, count them from the start. 140, 141, 142, 143, make 142 and 143 with a packet size of 2.

I did, the interface wont come up so I set it to 4, still nothing then to 6, now it shows up but I can't put up any items on the interface so I set it to 8, same thing then 10 and I stopped there lol

  • Author
comment_3909
1 minute ago, Arithium said:

You only need a packet size of 2 since this is all your reading. 

 

 


int clientId = c.getInStream().readSignedWordBigEndian();

Idk how to show you what it does.. Mind adding me on Skype ? sakoofortin

Edited by mathy

  • 5 years later...

Create an account or sign in to comment