From 590141b9d8e9770bb4e7bf07d1194858d67814f2 Mon Sep 17 00:00:00 2001 From: Leonardo Malaman Date: Fri, 18 Aug 2017 13:00:57 -0300 Subject: [PATCH] Add missing fields, change protocol version, fix small typo --- .../clientbound/play/v_pe/SpawnNamed.java | 13 +++++++++++++ .../middleimpl/serverbound/play/v_pe/Chat.java | 9 ++++----- .../typeremapper/pe/PEAdventureSettings.java | 5 +++-- .../zplatform/impl/PENetServerConstants.java | 6 +++--- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/protocolsupport/protocol/packet/middleimpl/clientbound/play/v_pe/SpawnNamed.java b/src/protocolsupport/protocol/packet/middleimpl/clientbound/play/v_pe/SpawnNamed.java index c237be975..b7024ec20 100644 --- a/src/protocolsupport/protocol/packet/middleimpl/clientbound/play/v_pe/SpawnNamed.java +++ b/src/protocolsupport/protocol/packet/middleimpl/clientbound/play/v_pe/SpawnNamed.java @@ -31,6 +31,19 @@ public RecyclableCollection toData() { MiscSerializer.writeLFloat(serializer, yaw); VarNumberSerializer.writeSVarInt(serializer, 0); //held itemstack (it is actually a slot, but we only send null itemstack here, so we only write 0 id) VarNumberSerializer.writeSVarInt(serializer, 0); //TODO: metadata + + //adventure settings + VarNumberSerializer.writeVarInt(serializer, 0); + VarNumberSerializer.writeVarInt(serializer, 0); + VarNumberSerializer.writeVarInt(serializer, 0); + VarNumberSerializer.writeVarInt(serializer, 0); + VarNumberSerializer.writeVarInt(serializer, 0); + + VarNumberSerializer.writeVarLong(serializer, 0); //? + + //entity links + //TODO: Implement entity links + VarNumberSerializer.writeSVarInt(serializer, 0); return RecyclableSingletonList.create(serializer); } diff --git a/src/protocolsupport/protocol/packet/middleimpl/serverbound/play/v_pe/Chat.java b/src/protocolsupport/protocol/packet/middleimpl/serverbound/play/v_pe/Chat.java index 56a76b377..5ba71a70f 100644 --- a/src/protocolsupport/protocol/packet/middleimpl/serverbound/play/v_pe/Chat.java +++ b/src/protocolsupport/protocol/packet/middleimpl/serverbound/play/v_pe/Chat.java @@ -1,14 +1,13 @@ package protocolsupport.protocol.packet.middleimpl.serverbound.play.v_pe; -import java.text.MessageFormat; - -import org.apache.commons.lang3.Validate; - import io.netty.buffer.ByteBuf; +import org.apache.commons.lang3.Validate; import protocolsupport.api.ProtocolVersion; import protocolsupport.protocol.packet.middle.serverbound.play.MiddleChat; import protocolsupport.protocol.serializer.StringSerializer; +import java.text.MessageFormat; + public class Chat extends MiddleChat { private static final int validChatType = 1; @@ -17,7 +16,7 @@ public class Chat extends MiddleChat { public void readFromClientData(ByteBuf clientdata) { ProtocolVersion version = connection.getVersion(); int type = clientdata.readUnsignedByte(); - Validate.isTrue(type == validChatType, MessageFormat.format("Unxepected serverbound chat type, expected {0}, but received {1}", validChatType, type)); + Validate.isTrue(type == validChatType, MessageFormat.format("Unexcepted serverbound chat type, expected {0}, but received {1}", validChatType, type)); clientdata.readUnsignedByte(); //skip unknown byte (seems to be always 0) StringSerializer.readString(clientdata, version); //skip sender message = StringSerializer.readString(clientdata, version); diff --git a/src/protocolsupport/protocol/typeremapper/pe/PEAdventureSettings.java b/src/protocolsupport/protocol/typeremapper/pe/PEAdventureSettings.java index d00a3ed79..4352c31ae 100644 --- a/src/protocolsupport/protocol/typeremapper/pe/PEAdventureSettings.java +++ b/src/protocolsupport/protocol/typeremapper/pe/PEAdventureSettings.java @@ -1,12 +1,12 @@ package protocolsupport.protocol.typeremapper.pe; -import java.util.Arrays; - import protocolsupport.api.ProtocolVersion; import protocolsupport.protocol.packet.middleimpl.ClientBoundPacketData; import protocolsupport.protocol.serializer.VarNumberSerializer; import protocolsupport.protocol.storage.NetworkDataCache; +import java.util.Arrays; + public class PEAdventureSettings { public static final int ADVENTURE_MODE_ENABLED = 0x1; @@ -54,6 +54,7 @@ public static ClientBoundPacketData createPacket(int entityId, int... flags) { //TODO: Actually work with permissions? VarNumberSerializer.writeVarInt(serializer, PERMISSIONS_ALLOW_ALL); VarNumberSerializer.writeVarInt(serializer, GROUP_NORMAL); + VarNumberSerializer.writeVarInt(serializer, 0); //? (custom flags) VarNumberSerializer.writeSVarLong(serializer, 0); return serializer; } diff --git a/src/protocolsupport/zplatform/impl/PENetServerConstants.java b/src/protocolsupport/zplatform/impl/PENetServerConstants.java index eca44ab71..97b2c670a 100644 --- a/src/protocolsupport/zplatform/impl/PENetServerConstants.java +++ b/src/protocolsupport/zplatform/impl/PENetServerConstants.java @@ -1,12 +1,12 @@ package protocolsupport.zplatform.impl; -import java.net.InetSocketAddress; - import io.netty.channel.Channel; import protocolsupport.api.events.ServerPingResponseEvent; import protocolsupport.protocol.packet.handler.AbstractStatusListener; import raknetserver.pipeline.raknet.RakNetPacketConnectionEstablishHandler.PingHandler; +import java.net.InetSocketAddress; + public class PENetServerConstants { public static final PingHandler PING_HANDLER = new PingHandler() { @@ -16,7 +16,7 @@ public String getServerInfo(Channel channel) { return String.join(";", "MCPE", revent.getMotd().replace(";", ":"), - "130", "1.2.0", + "133", "1.2.0", String.valueOf(revent.getPlayers().size()), String.valueOf(revent.getMaxPlayers()) ); }