コード例 #1
0
ファイル: NBTStructure.cs プロジェクト: Jonyleeson/MCBot
        public static INamedBinaryTag ParseNBT(byte[] nbt)
        {
            INamedBinaryTag r = null;

            BinaryReader reader = new BinaryReader(new MemoryStream(nbt));

            // Read initial named tag

            NBT_Type type = (NBT_Type)reader.ReadByte();
            string name = reader.ReadNetworkString();

            // Should be compound, but best be sure

            switch (type)
            {
                case NBT_Type.Compound:
                    r = new NBT_Compound(reader, name);
                    break;
                case NBT_Type.Byte:
                    r = new NBT_Byte(reader, name);
                    break;
                case NBT_Type.ByteArray:
                    r = new NBT_ByteArray(reader, name);
                    break;
                case NBT_Type.Double:
                    r = new NBT_Double(reader, name);
                    break;
                case NBT_Type.End:
                    r = new NBT_End(name);
                    break;
                case NBT_Type.Float:
                    r = new NBT_Float(reader, name);
                    break;
                case NBT_Type.Int:
                    r = new NBT_Int(reader, name);
                    break;
                case NBT_Type.List:
                    r = new NBT_List(reader, name);
                    break;
                case NBT_Type.Long:
                    r = new NBT_Long(reader, name);
                    break;
                case NBT_Type.Short:
                    r = new NBT_Short(reader, name);
                    break;
                case NBT_Type.String:
                    r = new NBT_String(reader, name);
                    break;
            }

            return r;
        }
コード例 #2
0
ファイル: NBT_Compound.cs プロジェクト: Jonyleeson/MCBot
        public NBT_Compound(BinaryReader reader, string name)
        {
            Name = name;
            m_Items = new List<INamedBinaryTag>();

            for (NBT_Type type = (NBT_Type)reader.ReadByte(); type != NBT_Type.End; type = (NBT_Type)reader.ReadByte())
            {
                string subname = reader.ReadNetworkString();

                switch (type)
                {
                    case NBT_Type.Compound:
                        m_Items.Add(new NBT_Compound(reader, subname));
                        break;
                    case NBT_Type.Byte:
                        m_Items.Add(new NBT_Byte(reader, subname));
                        break;
                    case NBT_Type.ByteArray:
                        m_Items.Add(new NBT_ByteArray(reader, subname));
                        break;
                    case NBT_Type.Double:
                        m_Items.Add(new NBT_Double(reader, subname));
                        break;
                    case NBT_Type.Float:
                        m_Items.Add(new NBT_Float(reader, subname));
                        break;
                    case NBT_Type.Int:
                        m_Items.Add(new NBT_Int(reader, subname));
                        break;
                    case NBT_Type.List:
                        m_Items.Add(new NBT_List(reader, subname));
                        break;
                    case NBT_Type.Long:
                        m_Items.Add(new NBT_Long(reader, subname));
                        break;
                    case NBT_Type.Short:
                        m_Items.Add(new NBT_Short(reader, subname));
                        break;
                    case NBT_Type.String:
                        m_Items.Add(new NBT_String(reader, subname));
                        break;
                }
            }
        }
コード例 #3
0
ファイル: MCRawClient.cs プロジェクト: Jonyleeson/MCBot
 private void ParseNamedEntitySpawn(BinaryReader reader)
 {
     HandleNamedEntitySpawn(reader.ReadNetworkInt32(), reader.ReadNetworkString(), reader.ReadNetworkInt32(), reader.ReadNetworkInt32(), reader.ReadNetworkInt32(), reader.ReadByte(), reader.ReadByte(), reader.ReadNetworkInt16());
 }
コード例 #4
0
ファイル: MCRawClient.cs プロジェクト: Jonyleeson/MCBot
 private void ParseLogin(BinaryReader reader)
 {
     HandleLogin(reader.ReadNetworkInt32(), reader.ReadNetworkString(), reader.ReadNetworkString());
 }
コード例 #5
0
ファイル: MCRawClient.cs プロジェクト: Jonyleeson/MCBot
 private void ParseHandshake(BinaryReader reader)
 {
     HandleHandshake(reader.ReadNetworkString());
 }
コード例 #6
0
ファイル: MCRawClient.cs プロジェクト: Jonyleeson/MCBot
 private void ParseDisconnect(BinaryReader reader)
 {
     HandleDisconnect(reader.ReadNetworkString());
 }
コード例 #7
0
ファイル: MCRawClient.cs プロジェクト: Jonyleeson/MCBot
 private void ParseChat(BinaryReader reader)
 {
     HandleChat(reader.ReadNetworkString());
 }
コード例 #8
0
ファイル: NBT_String.cs プロジェクト: Jonyleeson/MCBot
 public NBT_String(BinaryReader reader, string name)
 {
     Name = name;
     Value = reader.ReadNetworkString();
 }