예제 #1
0
    private void SendLoginSucess(IMinecraftUser user)
    {
        using var p = new MinecraftPacket(ClientLoginPacketType.LoginSuccess);

        p.WriteUUID(user.Id);
        p.WriteString(user.Username);

        user.Send(p);
    }
예제 #2
0
    public void MinecraftPacketWriteUUIDTest(Guid valueToWrite, byte[] expectedContent)
    {
        using var packet = new MinecraftPacket(0);

        packet.WriteUUID(valueToWrite);

        // FIX: little/big Endian
        if (BitConverter.IsLittleEndian)
        {
            byte[] firstLong  = expectedContent.Take(8).Reverse().ToArray();
            byte[] secondLong = expectedContent.Skip(8).Reverse().ToArray();

            expectedContent = firstLong.Concat(secondLong).ToArray();
        }

        Assert.Equal(expectedContent, packet.BaseBuffer);
    }
예제 #3
0
        public void Write(MinecraftPacket stream)
        {
            stream.WriteSVarInt(this.ID);

            stream.WriteUVarInt((uint)this.RecipeItems.Length);
            for (int i = 0; i < this.RecipeItems.Length; ++i)
            {
                stream.WriteItem(this.RecipeItems[i]);
            }

            stream.WriteUVarInt((uint)this.Output.Length);
            for (int i = 0; i < this.Output.Length; ++i)
            {
                stream.WriteItem(this.Output[i]);
            }

            stream.WriteUUID(this.UUID);
        }