diff --git a/src/main/java/net/packet/ByteBufInPacket.java b/src/main/java/net/packet/ByteBufInPacket.java index d1b9f4f87e..0977172354 100644 --- a/src/main/java/net/packet/ByteBufInPacket.java +++ b/src/main/java/net/packet/ByteBufInPacket.java @@ -47,12 +47,9 @@ public class ByteBufInPacket implements InPacket { @Override public String readString() { short length = readShort(); - char[] characters = new char[length]; - for(int i = 0; i < length; i++) { - characters[i] = (char) readByte(); - } - - return String.valueOf(characters); + byte[] stringBytes = new byte[length]; + byteBuf.readBytes(stringBytes); + return new String(stringBytes, STRING_CHARSET); } @Override diff --git a/src/main/java/net/packet/OutPacket.java b/src/main/java/net/packet/OutPacket.java index 615f932db0..57e953a6f7 100644 --- a/src/main/java/net/packet/OutPacket.java +++ b/src/main/java/net/packet/OutPacket.java @@ -1,12 +1,8 @@ package net.packet; import java.awt.*; -import java.nio.charset.Charset; -import java.nio.charset.StandardCharsets; public interface OutPacket extends Packet { - Charset STRING_CHARSET = StandardCharsets.US_ASCII; - void writeByte(byte value); void writeByte(int value); void writeBytes(byte[] value); diff --git a/src/main/java/net/packet/Packet.java b/src/main/java/net/packet/Packet.java index 8e1b7cfb99..79f257cd38 100644 --- a/src/main/java/net/packet/Packet.java +++ b/src/main/java/net/packet/Packet.java @@ -1,5 +1,10 @@ package net.packet; +import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; + public interface Packet { + Charset STRING_CHARSET = StandardCharsets.US_ASCII; + byte[] getBytes(); } diff --git a/src/test/java/net/packet/ByteBufInPacketTest.java b/src/test/java/net/packet/ByteBufInPacketTest.java index 1ed28e1d56..80a611abd8 100644 --- a/src/test/java/net/packet/ByteBufInPacketTest.java +++ b/src/test/java/net/packet/ByteBufInPacketTest.java @@ -6,7 +6,6 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import java.awt.*; -import java.nio.charset.StandardCharsets; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -82,7 +81,7 @@ class ByteBufInPacketTest { void readString() { final String writtenString = "You have gained experience (+3200)"; byteBuf.writeShortLE(writtenString.length()); - byte[] writtenStringBytes = writtenString.getBytes(StandardCharsets.US_ASCII); + byte[] writtenStringBytes = writtenString.getBytes(Packet.STRING_CHARSET); byteBuf.writeBytes(writtenStringBytes); String readString = inPacket.readString();