Arcturus-Community/src/main/java/com/eu/habbo/messages/ClientMessage.java
2020-05-29 22:25:23 -04:00

85 lines
1.8 KiB
Java

package com.eu.habbo.messages;
import com.eu.habbo.util.PacketUtils;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
public class ClientMessage {
private final int header;
private final ByteBuf buffer;
public ClientMessage(int messageId, ByteBuf buffer) {
this.header = messageId;
this.buffer = ((buffer == null) || (buffer.readableBytes() == 0) ? Unpooled.EMPTY_BUFFER : buffer);
}
public ByteBuf getBuffer() {
return this.buffer;
}
public int getMessageId() {
return this.header;
}
/**
*
* @return
* @throws CloneNotSupportedException
*/
@Override
public ClientMessage clone() throws CloneNotSupportedException {
return new ClientMessage(this.header, this.buffer.duplicate());
}
public int readShort() {
try {
return this.buffer.readShort();
} catch (Exception e) {
}
return 0;
}
public Integer readInt() {
try {
return this.buffer.readInt();
} catch (Exception e) {
}
return 0;
}
public boolean readBoolean() {
try {
return this.buffer.readByte() == 1;
} catch (Exception e) {
}
return false;
}
public String readString() {
try {
int length = this.readShort();
byte[] data = new byte[length];
this.buffer.readBytes(data);
return new String(data);
} catch (Exception e) {
return "";
}
}
public String getMessageBody() {
return PacketUtils.formatPacket(this.buffer);
}
public int bytesAvailable() {
return this.buffer.readableBytes();
}
public boolean release() {
return this.buffer.release();
}
}