From 5a4200cc8e45181250e39ff6dc7f0f762c1efa68 Mon Sep 17 00:00:00 2001 From: yuzumika Date: Thu, 4 Jan 2024 10:55:07 -0800 Subject: [PATCH] implement ByteBufInPacket.readUnsignedByte --- src/main/java/net/packet/ByteBufInPacket.java | 2 ++ src/main/java/net/packet/InPacket.java | 1 + .../net/server/channel/handlers/NPCMoreTalkHandler.java | 7 +------ 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/packet/ByteBufInPacket.java b/src/main/java/net/packet/ByteBufInPacket.java index 19dfdfffc0..e79326f7c6 100644 --- a/src/main/java/net/packet/ByteBufInPacket.java +++ b/src/main/java/net/packet/ByteBufInPacket.java @@ -22,6 +22,8 @@ public class ByteBufInPacket implements InPacket { public byte readByte() { return byteBuf.readByte(); } + @Override + public short readUnsignedByte() { return byteBuf.readUnsignedByte(); } @Override public short readShort() { diff --git a/src/main/java/net/packet/InPacket.java b/src/main/java/net/packet/InPacket.java index 37e5280899..e21e15a44a 100644 --- a/src/main/java/net/packet/InPacket.java +++ b/src/main/java/net/packet/InPacket.java @@ -4,6 +4,7 @@ import java.awt.*; public interface InPacket extends Packet { byte readByte(); + short readUnsignedByte(); short readShort(); int readInt(); long readLong(); diff --git a/src/main/java/net/server/channel/handlers/NPCMoreTalkHandler.java b/src/main/java/net/server/channel/handlers/NPCMoreTalkHandler.java index fa7c0a09e7..e39b1676e4 100644 --- a/src/main/java/net/server/channel/handlers/NPCMoreTalkHandler.java +++ b/src/main/java/net/server/channel/handlers/NPCMoreTalkHandler.java @@ -59,12 +59,7 @@ public final class NPCMoreTalkHandler extends AbstractPacketHandler { if (p.available() >= 4) { selection = p.readInt(); } else if (p.available() > 0) { - selection = p.readByte(); - // If there are more than 127 choices, don't underflow to -128. - // This is useful if you want to have more than 127 hairs/faces at a stylist NPC. - if (selection < 0) { - selection += 256; - } + selection = p.readUnsignedByte(); } if (c.getQM() != null) { if (c.getQM().isStart()) {