diff --git a/sqlupdates/2_4_0 to 2_5_0-RC-1.sql b/sqlupdates/2_4_0 to 2_5_0-RC-1.sql index 7cf2ee29..04476df3 100644 --- a/sqlupdates/2_4_0 to 2_5_0-RC-1.sql +++ b/sqlupdates/2_4_0 to 2_5_0-RC-1.sql @@ -107,3 +107,6 @@ INSERT INTO `emulator_texts` (`key`, `value`) VALUES ('subscriptions.hc.payday.m ALTER TABLE `bots` ADD COLUMN `bubble_id` int(3) NULL DEFAULT 31 AFTER `effect`; +-- Permissions to see tent chat +ALTER TABLE `permissions` ADD `acc_see_tentchat` ENUM('0', '1') NOT NULL DEFAULT '0' AFTER `acc_see_whispers`; +INSERT INTO `emulator_texts` (`key`, `value`) VALUES ('hotel.room.tent.prefix', 'Tent'); diff --git a/sqlupdates/2_4_0_TO_2_4_5.sql b/sqlupdates/2_4_0_TO_2_4_5.sql deleted file mode 100644 index 97cedc4f..00000000 --- a/sqlupdates/2_4_0_TO_2_4_5.sql +++ /dev/null @@ -1,3 +0,0 @@ --- Permissions to see tent chat -ALTER TABLE `permissions` ADD `acc_see_tentchat` ENUM('0', '1') NOT NULL DEFAULT '0' AFTER `acc_see_whispers`; -INSERT INTO `emulator_texts` (`key`, `value`) VALUES ('hotel.room.tent.prefix', 'Tent'); diff --git a/src/main/java/com/eu/habbo/networking/gameserver/decoders/GameByteDecryption.java b/src/main/java/com/eu/habbo/networking/gameserver/decoders/GameByteDecryption.java index 6881e17f..b1c91b7c 100644 --- a/src/main/java/com/eu/habbo/networking/gameserver/decoders/GameByteDecryption.java +++ b/src/main/java/com/eu/habbo/networking/gameserver/decoders/GameByteDecryption.java @@ -17,13 +17,13 @@ public class GameByteDecryption extends ByteToMessageDecoder { @Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List out) { // Read all available bytes. - byte[] data = in.readBytes(in.readableBytes()).array(); + ByteBuf data = in.readBytes(in.readableBytes()); // Decrypt. - ctx.channel().attr(GameServerAttributes.CRYPTO_CLIENT).get().parse(data); + ctx.channel().attr(GameServerAttributes.CRYPTO_CLIENT).get().parse(data.array()); // Continue in the pipeline. - out.add(Unpooled.wrappedBuffer(data)); + out.add(data); } } diff --git a/src/main/java/com/eu/habbo/networking/gameserver/encoders/GameByteEncryption.java b/src/main/java/com/eu/habbo/networking/gameserver/encoders/GameByteEncryption.java index 895addd0..0c20b977 100644 --- a/src/main/java/com/eu/habbo/networking/gameserver/encoders/GameByteEncryption.java +++ b/src/main/java/com/eu/habbo/networking/gameserver/encoders/GameByteEncryption.java @@ -6,28 +6,25 @@ import io.netty.buffer.Unpooled; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelOutboundHandlerAdapter; import io.netty.channel.ChannelPromise; +import io.netty.util.ReferenceCountUtil; public class GameByteEncryption extends ChannelOutboundHandlerAdapter { @Override public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception { - // Convert msg to ByteBuf. - ByteBuf out = (ByteBuf) msg; + // convert to Bytebuf + ByteBuf in = (ByteBuf) msg; - // Read all available bytes. - byte[] data; + // read available bytes + ByteBuf data = (in).readBytes(in.readableBytes()); - if (out.hasArray()) { - data = out.array(); - } else { - data = out.readBytes(out.readableBytes()).array(); - } + //release old object + ReferenceCountUtil.release(in); // Encrypt. - ctx.channel().attr(GameServerAttributes.CRYPTO_SERVER).get().parse(data); + ctx.channel().attr(GameServerAttributes.CRYPTO_SERVER).get().parse(data.array()); // Continue in the pipeline. - ctx.write(Unpooled.wrappedBuffer(data)); + ctx.write(data, promise); } - }