コード例 #1
0
        public LoginSuccessPacket(Client client, Guid uuid, String playerName) : base(client)
        {
            PacketId = 0x02;
            MCSerializer serializer = new MCSerializer();

            serializer.WriteString(uuid.ToString());
            serializer.WriteString(playerName);
            Data = serializer.GetBytes();
        }
コード例 #2
0
        public new async Task SendToClient()
        {
            MCSerializer serializer = new MCSerializer();

            serializer.WriteVarInt((int)action);
            serializer.WriteVarInt(players.Count);
            foreach (Player player in players)
            {
                serializer.WriteBytes(player.UUID.ToByteArray());
                switch (action)
                {
                case PlayerInfoAction.AddPlayer:
                {
                    serializer.WriteString(player.Name);
                    serializer.WriteVarInt(0);
                    serializer.WriteVarInt((int)player.Gamemode);
                    serializer.WriteVarInt(player.Latency);
                    serializer.WriteBool(false);
                    //serializer.WriteString(player.DisplayName.ToString());
                    break;
                }

                case PlayerInfoAction.UpdateGamemode:
                {
                    serializer.WriteVarInt((int)player.Gamemode);
                    break;
                }

                case PlayerInfoAction.UpdateLatency:
                {
                    serializer.WriteVarInt(player.Latency);
                    break;
                }

                case PlayerInfoAction.UpdateDisplayName:
                {
                    if (player.DisplayName.Message != player.Name)
                    {
                        serializer.WriteBool(true);
                        serializer.WriteString(player.DisplayName.ToString());
                    }
                    else
                    {
                        serializer.WriteBool(false);
                    }

                    break;
                }
                }
            }
            Data = serializer.GetBytes();

            await base.SendToClient();
        }
コード例 #3
0
        public JoinGamePacket(Client client, int entityID, byte gamemode, int dimension, long seedHash) : base(client)
        {
            PacketId = 0x26;
            MCSerializer serializer = new MCSerializer();

            serializer.WriteInt(entityID);
            serializer.WriteByte(gamemode);
            serializer.WriteInt(dimension);
            serializer.WriteLong(seedHash);
            serializer.WriteByte(69);
            serializer.WriteString("default");
            serializer.WriteVarInt(16);
            serializer.WriteBool(false);
            serializer.WriteBool(true);
            Data = serializer.GetBytes();
        }