diff --git a/.gitignore b/.gitignore index 68a3eb3..fdb675c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ .devres/ .idea/ .failed_packets/ -.vscode/ \ No newline at end of file +.vscode/proto_generator diff --git a/cmd/strom/print_replay/testdata/10_0c20c77ea68496bd_test.go b/cmd/strom/print_replay/testdata/10_0c20c77ea68496bd_test.go deleted file mode 100644 index 6936b2c..0000000 --- a/cmd/strom/print_replay/testdata/10_0c20c77ea68496bd_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v1_8" -) - -// Error: EOF -func TestFailedPacket0C20C77EA68496BD(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0x89, 0x16, 0x0, 0x0, 0x1, 0x5, 0x1, 0x0, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/10_28fe982cca801f9b_test.go b/cmd/strom/print_replay/testdata/10_28fe982cca801f9b_test.go deleted file mode 100644 index b6ee938..0000000 --- a/cmd/strom/print_replay/testdata/10_28fe982cca801f9b_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v1_8" -) - -// Error: EOF -func TestFailedPacket28FE982CCA801F9B(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xdc, 0x21, 0x0, 0x0, 0x1, 0x5, 0x1, 0x0, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/10_49691467b3398296_test.go b/cmd/strom/print_replay/testdata/10_49691467b3398296_test.go deleted file mode 100644 index 14e2965..0000000 --- a/cmd/strom/print_replay/testdata/10_49691467b3398296_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v1_8" -) - -// Error: EOF -func TestFailedPacket49691467B3398296(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0x95, 0x1a, 0x0, 0x0, 0x1, 0x5, 0x1, 0x0, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/10_5e9a356ecc3aa3fc_test.go b/cmd/strom/print_replay/testdata/10_5e9a356ecc3aa3fc_test.go deleted file mode 100644 index 7eec351..0000000 --- a/cmd/strom/print_replay/testdata/10_5e9a356ecc3aa3fc_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v1_8" -) - -// Error: EOF -func TestFailedPacket5E9A356ECC3AA3FC(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xdd, 0x21, 0x0, 0x0, 0x1, 0x5, 0x1, 0x0, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/10_60b4cb3dc8da7480_test.go b/cmd/strom/print_replay/testdata/10_60b4cb3dc8da7480_test.go deleted file mode 100644 index 01813d3..0000000 --- a/cmd/strom/print_replay/testdata/10_60b4cb3dc8da7480_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v1_8" -) - -// Error: EOF -func TestFailedPacket60B4CB3DC8DA7480(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0x8e, 0x1c, 0x0, 0x0, 0x1, 0x5, 0x1, 0x0, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/10_66f6fc8839acd758_test.go b/cmd/strom/print_replay/testdata/10_66f6fc8839acd758_test.go deleted file mode 100644 index be139ff..0000000 --- a/cmd/strom/print_replay/testdata/10_66f6fc8839acd758_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v1_8" -) - -// Error: EOF -func TestFailedPacket66F6FC8839ACD758(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xcf, 0x1d, 0x0, 0x0, 0x1, 0x5, 0x1, 0x0, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/10_671ad113155624dd_test.go b/cmd/strom/print_replay/testdata/10_671ad113155624dd_test.go deleted file mode 100644 index da28954..0000000 --- a/cmd/strom/print_replay/testdata/10_671ad113155624dd_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v1_8" -) - -// Error: EOF -func TestFailedPacket671AD113155624DD(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xc5, 0x1e, 0x0, 0x0, 0x1, 0x5, 0x1, 0x0, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/10_9489cfff676abe59_test.go b/cmd/strom/print_replay/testdata/10_9489cfff676abe59_test.go deleted file mode 100644 index 72e1653..0000000 --- a/cmd/strom/print_replay/testdata/10_9489cfff676abe59_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v1_8" -) - -// Error: EOF -func TestFailedPacket9489CFFF676ABE59(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xce, 0x17, 0x0, 0x0, 0x1, 0x5, 0x1, 0x0, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/10_a7ad1d229b209443_test.go b/cmd/strom/print_replay/testdata/10_a7ad1d229b209443_test.go deleted file mode 100644 index 128860a..0000000 --- a/cmd/strom/print_replay/testdata/10_a7ad1d229b209443_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v1_8" -) - -// Error: EOF -func TestFailedPacketA7AD1D229B209443(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xdb, 0x21, 0x0, 0x0, 0x1, 0x5, 0x1, 0x0, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/10_d529d00d0dc17f72_test.go b/cmd/strom/print_replay/testdata/10_d529d00d0dc17f72_test.go deleted file mode 100644 index b5f2630..0000000 --- a/cmd/strom/print_replay/testdata/10_d529d00d0dc17f72_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v1_8" -) - -// Error: EOF -func TestFailedPacketD529D00D0DC17F72(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xe3, 0x15, 0x0, 0x0, 0x1, 0x5, 0x1, 0x0, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/10_fea550ab16196b04_test.go b/cmd/strom/print_replay/testdata/10_fea550ab16196b04_test.go deleted file mode 100644 index acd6694..0000000 --- a/cmd/strom/print_replay/testdata/10_fea550ab16196b04_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v1_8" -) - -// Error: EOF -func TestFailedPacketFEA550AB16196B04(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0x88, 0x16, 0x0, 0x0, 0x1, 0x5, 0x1, 0x0, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_1d0089bbe86a1648_test.go b/cmd/strom/print_replay/testdata/8_1d0089bbe86a1648_test.go deleted file mode 100644 index ec6a250..0000000 --- a/cmd/strom/print_replay/testdata/8_1d0089bbe86a1648_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacket1D0089BBE86A1648(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0x81, 0x2, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_1df29446152d96a8_test.go b/cmd/strom/print_replay/testdata/8_1df29446152d96a8_test.go deleted file mode 100644 index 6e3b3b2..0000000 --- a/cmd/strom/print_replay/testdata/8_1df29446152d96a8_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacket1DF29446152D96A8(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xbd, 0x1, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_202a6a9e047be81d_test.go b/cmd/strom/print_replay/testdata/8_202a6a9e047be81d_test.go deleted file mode 100644 index cc2670d..0000000 --- a/cmd/strom/print_replay/testdata/8_202a6a9e047be81d_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacket202A6A9E047BE81D(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xd6, 0x1, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_26190593980a0fb9_test.go b/cmd/strom/print_replay/testdata/8_26190593980a0fb9_test.go deleted file mode 100644 index a007e9b..0000000 --- a/cmd/strom/print_replay/testdata/8_26190593980a0fb9_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacket26190593980A0FB9(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xd3, 0x1, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_565273f305c6aa41_test.go b/cmd/strom/print_replay/testdata/8_565273f305c6aa41_test.go deleted file mode 100644 index ca813b9..0000000 --- a/cmd/strom/print_replay/testdata/8_565273f305c6aa41_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacket565273F305C6AA41(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xff, 0x1, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_5f223b84b8e3b245_test.go b/cmd/strom/print_replay/testdata/8_5f223b84b8e3b245_test.go deleted file mode 100644 index 9afc2c4..0000000 --- a/cmd/strom/print_replay/testdata/8_5f223b84b8e3b245_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacket5F223B84B8E3B245(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xdc, 0x1, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_62ab3b7ca4199cc4_test.go b/cmd/strom/print_replay/testdata/8_62ab3b7ca4199cc4_test.go deleted file mode 100644 index 04bf46b..0000000 --- a/cmd/strom/print_replay/testdata/8_62ab3b7ca4199cc4_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacket62AB3B7CA4199CC4(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xf2, 0x1, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_b2676fd8106c604a_test.go b/cmd/strom/print_replay/testdata/8_b2676fd8106c604a_test.go deleted file mode 100644 index 98be79d..0000000 --- a/cmd/strom/print_replay/testdata/8_b2676fd8106c604a_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacketB2676FD8106C604A(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0x83, 0x2, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_b3e03d743aa3fd86_test.go b/cmd/strom/print_replay/testdata/8_b3e03d743aa3fd86_test.go deleted file mode 100644 index b068d54..0000000 --- a/cmd/strom/print_replay/testdata/8_b3e03d743aa3fd86_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacketB3E03D743AA3FD86(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xee, 0x1, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_bb475636490a4f79_test.go b/cmd/strom/print_replay/testdata/8_bb475636490a4f79_test.go deleted file mode 100644 index e251736..0000000 --- a/cmd/strom/print_replay/testdata/8_bb475636490a4f79_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacketBB475636490A4F79(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0x89, 0x2, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_bb9b39d9752d3412_test.go b/cmd/strom/print_replay/testdata/8_bb9b39d9752d3412_test.go deleted file mode 100644 index 680f07e..0000000 --- a/cmd/strom/print_replay/testdata/8_bb9b39d9752d3412_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacketBB9B39D9752D3412(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0x80, 0x2, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_c737e804ee3d28b0_test.go b/cmd/strom/print_replay/testdata/8_c737e804ee3d28b0_test.go deleted file mode 100644 index 37254e6..0000000 --- a/cmd/strom/print_replay/testdata/8_c737e804ee3d28b0_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacketC737E804EE3D28B0(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xe1, 0x1, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_c7c463d62c4d25de_test.go b/cmd/strom/print_replay/testdata/8_c7c463d62c4d25de_test.go deleted file mode 100644 index a5792c5..0000000 --- a/cmd/strom/print_replay/testdata/8_c7c463d62c4d25de_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacketC7C463D62C4D25DE(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xde, 0x1, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_c9a0c7f85e913f13_test.go b/cmd/strom/print_replay/testdata/8_c9a0c7f85e913f13_test.go deleted file mode 100644 index 487062d..0000000 --- a/cmd/strom/print_replay/testdata/8_c9a0c7f85e913f13_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacketC9A0C7F85E913F13(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0x85, 0x2, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_dc2ac767ff974dad_test.go b/cmd/strom/print_replay/testdata/8_dc2ac767ff974dad_test.go deleted file mode 100644 index 5b521b3..0000000 --- a/cmd/strom/print_replay/testdata/8_dc2ac767ff974dad_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacketDC2AC767FF974DAD(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0x82, 0x2, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_f23a07c39d21c5dc_test.go b/cmd/strom/print_replay/testdata/8_f23a07c39d21c5dc_test.go deleted file mode 100644 index 5ec11b1..0000000 --- a/cmd/strom/print_replay/testdata/8_f23a07c39d21c5dc_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacketF23A07C39D21C5DC(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xd5, 0x1, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/cmd/strom/print_replay/testdata/8_f527d279cbee95bb_test.go b/cmd/strom/print_replay/testdata/8_f527d279cbee95bb_test.go deleted file mode 100644 index 4c1e009..0000000 --- a/cmd/strom/print_replay/testdata/8_f527d279cbee95bb_test.go +++ /dev/null @@ -1,18 +0,0 @@ -package failed_packets_test - -import ( - "bytes" - "testing" - - generated "github.com/admin-else/strom/mc/proto_generated/v26_2" -) - -// Error: to do -func TestFailedPacketF527D279CBEE95BB(t *testing.T) { - p := &generated.PlayToClientPacketEntityEquipment{} - b := bytes.NewReader([]byte{0xfe, 0x1, 0x0, 0x1, 0x9a, 0x7, 0x0, 0x0}) - err := p.Decode(b) - if err == nil { - t.Fatalf("expected decode error but got nil") - } -} diff --git a/mc/nbt/nbt.go b/mc/nbt/nbt.go index 2da7e42..f274122 100644 --- a/mc/nbt/nbt.go +++ b/mc/nbt/nbt.go @@ -68,6 +68,9 @@ func (s *Tag) Decode(r io.Reader) (err error) { if err != nil { return } + if id == End { + return + } var name any name, err = readPayload(String, r) if err != nil { diff --git a/mc/proto_generated/v1_12_2/proto.go b/mc/proto_generated/v1_12_2/proto.go index 0b5e2c2..9d230ef 100644 --- a/mc/proto_generated/v1_12_2/proto.go +++ b/mc/proto_generated/v1_12_2/proto.go @@ -1,6 +1,6 @@ // Code generated by strom. DO NOT EDIT. // source: minecraft-data/pc/1.12.2/protocol.json (sha256:21c57208db654a5e14a34cb696570080df179c5c642e53b16120399eee9232be) -// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2) +// version: v0.6.6-0.20260805170503-1d8f70c7fdae+dirty (go1.26.2) package v1_12_2 import ( diff --git a/mc/proto_generated/v1_14_4/proto.go b/mc/proto_generated/v1_14_4/proto.go index 5e2170f..29347c9 100644 --- a/mc/proto_generated/v1_14_4/proto.go +++ b/mc/proto_generated/v1_14_4/proto.go @@ -1,6 +1,6 @@ // Code generated by strom. DO NOT EDIT. // source: minecraft-data/pc/1.14.4/protocol.json (sha256:b6edff5abaaf234037b5019024d749e27e746250a23253bb4ad77d8f76e93167) -// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2) +// version: v0.6.6-0.20260805170503-1d8f70c7fdae+dirty (go1.26.2) package v1_14_4 import ( diff --git a/mc/proto_generated/v1_16_5/proto.go b/mc/proto_generated/v1_16_5/proto.go index 3a18265..176f9ba 100644 --- a/mc/proto_generated/v1_16_5/proto.go +++ b/mc/proto_generated/v1_16_5/proto.go @@ -1,6 +1,6 @@ // Code generated by strom. DO NOT EDIT. // source: minecraft-data/pc/1.16.2/protocol.json (sha256:d96a3c5a7a7ddf2105e23990c2471b3aeafe4a6975e0c9d7d7943b599af9dfb3) -// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2) +// version: v0.6.6-0.20260805170503-1d8f70c7fdae+dirty (go1.26.2) package v1_16_5 import ( @@ -5564,15 +5564,79 @@ func (ret *PlayToClientPacketEntityEffect) Encode(w io.Writer) (err error) { } type PlayToClientPacketEntityEquipment struct { - Val proto_base.ToDo + EntityId int32 + Equipments []struct { + Slot int8 + Item Slot + } } func (ret *PlayToClientPacketEntityEquipment) Decode(r io.ReadSeeker) (err error) { - err = proto_base.ToDoError + ret.EntityId, err = proto_base.DecodeVarInt(r) + if err != nil { + return + } + ret.Equipments = []struct { + Slot int8 + Item Slot + }{} + for { + var PlayToClientPacketEntityEquipmentEquipmentsHeader uint8 + err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityEquipmentEquipmentsHeader) + if err == io.EOF { + err = nil + break + } + if err != nil { + return + } + _, err = r.Seek(-1, io.SeekCurrent) + if err != nil { + return + } + PlayToClientPacketEntityEquipmentEquipmentsHasMore := PlayToClientPacketEntityEquipmentEquipmentsHeader&128 != 0 + var PlayToClientPacketEntityEquipmentEquipmentsElement struct { + Slot int8 + Item Slot + } + err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityEquipmentEquipmentsElement.Slot) + if err != nil { + return + } + err = PlayToClientPacketEntityEquipmentEquipmentsElement.Item.Decode(r) + if err != nil { + return + } + ret.Equipments = append(ret.Equipments, PlayToClientPacketEntityEquipmentEquipmentsElement) + if !PlayToClientPacketEntityEquipmentEquipmentsHasMore { + break + } + } return } func (ret *PlayToClientPacketEntityEquipment) Encode(w io.Writer) (err error) { - err = proto_base.ToDoError + err = proto_base.EncodeVarInt(w, ret.EntityId) + if err != nil { + return + } + for iPlayToClientPacketEntityEquipmentEquipments, PlayToClientPacketEntityEquipmentEquipmentsElem := range ret.Equipments { + if iPlayToClientPacketEntityEquipmentEquipments != len(ret.Equipments)-1 { + err = binary.Write(w, binary.BigEndian, int8(uint8(PlayToClientPacketEntityEquipmentEquipmentsElem.Slot)|128)) + if err != nil { + return + } + } else { + err = binary.Write(w, binary.BigEndian, PlayToClientPacketEntityEquipmentEquipmentsElem.Slot) + if err != nil { + return + } + } + PlayToClientPacketEntityEquipmentEquipmentsItemEncTmp := PlayToClientPacketEntityEquipmentEquipmentsElem.Item + err = PlayToClientPacketEntityEquipmentEquipmentsItemEncTmp.Encode(w) + if err != nil { + return + } + } return } diff --git a/mc/proto_generated/v1_21_11/proto.go b/mc/proto_generated/v1_21_11/proto.go index c660ff1..5ac74ca 100644 --- a/mc/proto_generated/v1_21_11/proto.go +++ b/mc/proto_generated/v1_21_11/proto.go @@ -1,6 +1,6 @@ // Code generated by strom. DO NOT EDIT. // source: minecraft-data/pc/1.21.11/protocol.json (sha256:97d2726cce3a39cc967a954f27f4ebf029ec3f0f655bb21942aab8745d13cdab) -// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2) +// version: v0.6.6-0.20260805170503-1d8f70c7fdae+dirty (go1.26.2) package v1_21_11 import ( @@ -16549,15 +16549,79 @@ func (ret *PlayToClientPacketEntityEffect) Encode(w io.Writer) (err error) { } type PlayToClientPacketEntityEquipment struct { - Val proto_base.ToDo + EntityId int32 + Equipments []struct { + Slot int8 + Item Slot + } } func (ret *PlayToClientPacketEntityEquipment) Decode(r io.ReadSeeker) (err error) { - err = proto_base.ToDoError + ret.EntityId, err = proto_base.DecodeVarInt(r) + if err != nil { + return + } + ret.Equipments = []struct { + Slot int8 + Item Slot + }{} + for { + var PlayToClientPacketEntityEquipmentEquipmentsHeader uint8 + err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityEquipmentEquipmentsHeader) + if err == io.EOF { + err = nil + break + } + if err != nil { + return + } + _, err = r.Seek(-1, io.SeekCurrent) + if err != nil { + return + } + PlayToClientPacketEntityEquipmentEquipmentsHasMore := PlayToClientPacketEntityEquipmentEquipmentsHeader&128 != 0 + var PlayToClientPacketEntityEquipmentEquipmentsElement struct { + Slot int8 + Item Slot + } + err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityEquipmentEquipmentsElement.Slot) + if err != nil { + return + } + err = PlayToClientPacketEntityEquipmentEquipmentsElement.Item.Decode(r) + if err != nil { + return + } + ret.Equipments = append(ret.Equipments, PlayToClientPacketEntityEquipmentEquipmentsElement) + if !PlayToClientPacketEntityEquipmentEquipmentsHasMore { + break + } + } return } func (ret *PlayToClientPacketEntityEquipment) Encode(w io.Writer) (err error) { - err = proto_base.ToDoError + err = proto_base.EncodeVarInt(w, ret.EntityId) + if err != nil { + return + } + for iPlayToClientPacketEntityEquipmentEquipments, PlayToClientPacketEntityEquipmentEquipmentsElem := range ret.Equipments { + if iPlayToClientPacketEntityEquipmentEquipments != len(ret.Equipments)-1 { + err = binary.Write(w, binary.BigEndian, int8(uint8(PlayToClientPacketEntityEquipmentEquipmentsElem.Slot)|128)) + if err != nil { + return + } + } else { + err = binary.Write(w, binary.BigEndian, PlayToClientPacketEntityEquipmentEquipmentsElem.Slot) + if err != nil { + return + } + } + PlayToClientPacketEntityEquipmentEquipmentsItemEncTmp := PlayToClientPacketEntityEquipmentEquipmentsElem.Item + err = PlayToClientPacketEntityEquipmentEquipmentsItemEncTmp.Encode(w) + if err != nil { + return + } + } return } diff --git a/mc/proto_generated/v1_21_8/proto.go b/mc/proto_generated/v1_21_8/proto.go index 9d5f452..54f5548 100644 --- a/mc/proto_generated/v1_21_8/proto.go +++ b/mc/proto_generated/v1_21_8/proto.go @@ -1,6 +1,6 @@ // Code generated by strom. DO NOT EDIT. // source: minecraft-data/pc/1.21.8/protocol.json (sha256:930fbb4c69fd2ecadddcee3c38d3f02908adc23b54b707cb21112e7ab1e9dba1) -// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2) +// version: v0.6.6-0.20260805170503-1d8f70c7fdae+dirty (go1.26.2) package v1_21_8 import ( @@ -15030,15 +15030,79 @@ func (ret *PlayToClientPacketEntityEffect) Encode(w io.Writer) (err error) { } type PlayToClientPacketEntityEquipment struct { - Val proto_base.ToDo + EntityId int32 + Equipments []struct { + Slot int8 + Item Slot + } } func (ret *PlayToClientPacketEntityEquipment) Decode(r io.ReadSeeker) (err error) { - err = proto_base.ToDoError + ret.EntityId, err = proto_base.DecodeVarInt(r) + if err != nil { + return + } + ret.Equipments = []struct { + Slot int8 + Item Slot + }{} + for { + var PlayToClientPacketEntityEquipmentEquipmentsHeader uint8 + err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityEquipmentEquipmentsHeader) + if err == io.EOF { + err = nil + break + } + if err != nil { + return + } + _, err = r.Seek(-1, io.SeekCurrent) + if err != nil { + return + } + PlayToClientPacketEntityEquipmentEquipmentsHasMore := PlayToClientPacketEntityEquipmentEquipmentsHeader&128 != 0 + var PlayToClientPacketEntityEquipmentEquipmentsElement struct { + Slot int8 + Item Slot + } + err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityEquipmentEquipmentsElement.Slot) + if err != nil { + return + } + err = PlayToClientPacketEntityEquipmentEquipmentsElement.Item.Decode(r) + if err != nil { + return + } + ret.Equipments = append(ret.Equipments, PlayToClientPacketEntityEquipmentEquipmentsElement) + if !PlayToClientPacketEntityEquipmentEquipmentsHasMore { + break + } + } return } func (ret *PlayToClientPacketEntityEquipment) Encode(w io.Writer) (err error) { - err = proto_base.ToDoError + err = proto_base.EncodeVarInt(w, ret.EntityId) + if err != nil { + return + } + for iPlayToClientPacketEntityEquipmentEquipments, PlayToClientPacketEntityEquipmentEquipmentsElem := range ret.Equipments { + if iPlayToClientPacketEntityEquipmentEquipments != len(ret.Equipments)-1 { + err = binary.Write(w, binary.BigEndian, int8(uint8(PlayToClientPacketEntityEquipmentEquipmentsElem.Slot)|128)) + if err != nil { + return + } + } else { + err = binary.Write(w, binary.BigEndian, PlayToClientPacketEntityEquipmentEquipmentsElem.Slot) + if err != nil { + return + } + } + PlayToClientPacketEntityEquipmentEquipmentsItemEncTmp := PlayToClientPacketEntityEquipmentEquipmentsElem.Item + err = PlayToClientPacketEntityEquipmentEquipmentsItemEncTmp.Encode(w) + if err != nil { + return + } + } return } diff --git a/mc/proto_generated/v1_21_9/proto.go b/mc/proto_generated/v1_21_9/proto.go index 001aca6..6bc9208 100644 --- a/mc/proto_generated/v1_21_9/proto.go +++ b/mc/proto_generated/v1_21_9/proto.go @@ -1,6 +1,6 @@ // Code generated by strom. DO NOT EDIT. // source: minecraft-data/pc/1.21.9/protocol.json (sha256:9861cee397931c678c3b1837dcdf82e3fc885442c6bd0e4a60522fbf26653e59) -// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2) +// version: v0.6.6-0.20260805170503-1d8f70c7fdae+dirty (go1.26.2) package v1_21_9 import ( @@ -16372,15 +16372,79 @@ func (ret *PlayToClientPacketEntityEffect) Encode(w io.Writer) (err error) { } type PlayToClientPacketEntityEquipment struct { - Val proto_base.ToDo + EntityId int32 + Equipments []struct { + Slot int8 + Item Slot + } } func (ret *PlayToClientPacketEntityEquipment) Decode(r io.ReadSeeker) (err error) { - err = proto_base.ToDoError + ret.EntityId, err = proto_base.DecodeVarInt(r) + if err != nil { + return + } + ret.Equipments = []struct { + Slot int8 + Item Slot + }{} + for { + var PlayToClientPacketEntityEquipmentEquipmentsHeader uint8 + err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityEquipmentEquipmentsHeader) + if err == io.EOF { + err = nil + break + } + if err != nil { + return + } + _, err = r.Seek(-1, io.SeekCurrent) + if err != nil { + return + } + PlayToClientPacketEntityEquipmentEquipmentsHasMore := PlayToClientPacketEntityEquipmentEquipmentsHeader&128 != 0 + var PlayToClientPacketEntityEquipmentEquipmentsElement struct { + Slot int8 + Item Slot + } + err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityEquipmentEquipmentsElement.Slot) + if err != nil { + return + } + err = PlayToClientPacketEntityEquipmentEquipmentsElement.Item.Decode(r) + if err != nil { + return + } + ret.Equipments = append(ret.Equipments, PlayToClientPacketEntityEquipmentEquipmentsElement) + if !PlayToClientPacketEntityEquipmentEquipmentsHasMore { + break + } + } return } func (ret *PlayToClientPacketEntityEquipment) Encode(w io.Writer) (err error) { - err = proto_base.ToDoError + err = proto_base.EncodeVarInt(w, ret.EntityId) + if err != nil { + return + } + for iPlayToClientPacketEntityEquipmentEquipments, PlayToClientPacketEntityEquipmentEquipmentsElem := range ret.Equipments { + if iPlayToClientPacketEntityEquipmentEquipments != len(ret.Equipments)-1 { + err = binary.Write(w, binary.BigEndian, int8(uint8(PlayToClientPacketEntityEquipmentEquipmentsElem.Slot)|128)) + if err != nil { + return + } + } else { + err = binary.Write(w, binary.BigEndian, PlayToClientPacketEntityEquipmentEquipmentsElem.Slot) + if err != nil { + return + } + } + PlayToClientPacketEntityEquipmentEquipmentsItemEncTmp := PlayToClientPacketEntityEquipmentEquipmentsElem.Item + err = PlayToClientPacketEntityEquipmentEquipmentsItemEncTmp.Encode(w) + if err != nil { + return + } + } return } diff --git a/mc/proto_generated/v1_8/proto.go b/mc/proto_generated/v1_8/proto.go index 3c78d80..d08ab6a 100644 --- a/mc/proto_generated/v1_8/proto.go +++ b/mc/proto_generated/v1_8/proto.go @@ -1,6 +1,6 @@ // Code generated by strom. DO NOT EDIT. // source: minecraft-data/pc/1.8/protocol.json (sha256:79fe774bfc255dd281899c004fbb9c7adc40fb107de9353da1dd0371ea4b53af) -// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2) +// version: v0.6.6-0.20260805170503-1d8f70c7fdae+dirty (go1.26.2) package v1_8 import ( diff --git a/mc/proto_generated/v26_1/proto.go b/mc/proto_generated/v26_1/proto.go index eac5d4c..861d1c4 100644 --- a/mc/proto_generated/v26_1/proto.go +++ b/mc/proto_generated/v26_1/proto.go @@ -1,6 +1,6 @@ // Code generated by strom. DO NOT EDIT. // source: minecraft-data/pc/26.1/protocol.json (sha256:dfb6318886cd3ceab617f75ac05e24f9836a64501d60551071289b904ebfc389) -// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2) +// version: v0.6.6-0.20260805170503-1d8f70c7fdae+dirty (go1.26.2) package v26_1 import ( @@ -16585,15 +16585,79 @@ func (ret *PlayToClientPacketEntityEffect) Encode(w io.Writer) (err error) { } type PlayToClientPacketEntityEquipment struct { - Val proto_base.ToDo + EntityId int32 + Equipments []struct { + Slot int8 + Item Slot + } } func (ret *PlayToClientPacketEntityEquipment) Decode(r io.ReadSeeker) (err error) { - err = proto_base.ToDoError + ret.EntityId, err = proto_base.DecodeVarInt(r) + if err != nil { + return + } + ret.Equipments = []struct { + Slot int8 + Item Slot + }{} + for { + var PlayToClientPacketEntityEquipmentEquipmentsHeader uint8 + err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityEquipmentEquipmentsHeader) + if err == io.EOF { + err = nil + break + } + if err != nil { + return + } + _, err = r.Seek(-1, io.SeekCurrent) + if err != nil { + return + } + PlayToClientPacketEntityEquipmentEquipmentsHasMore := PlayToClientPacketEntityEquipmentEquipmentsHeader&128 != 0 + var PlayToClientPacketEntityEquipmentEquipmentsElement struct { + Slot int8 + Item Slot + } + err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityEquipmentEquipmentsElement.Slot) + if err != nil { + return + } + err = PlayToClientPacketEntityEquipmentEquipmentsElement.Item.Decode(r) + if err != nil { + return + } + ret.Equipments = append(ret.Equipments, PlayToClientPacketEntityEquipmentEquipmentsElement) + if !PlayToClientPacketEntityEquipmentEquipmentsHasMore { + break + } + } return } func (ret *PlayToClientPacketEntityEquipment) Encode(w io.Writer) (err error) { - err = proto_base.ToDoError + err = proto_base.EncodeVarInt(w, ret.EntityId) + if err != nil { + return + } + for iPlayToClientPacketEntityEquipmentEquipments, PlayToClientPacketEntityEquipmentEquipmentsElem := range ret.Equipments { + if iPlayToClientPacketEntityEquipmentEquipments != len(ret.Equipments)-1 { + err = binary.Write(w, binary.BigEndian, int8(uint8(PlayToClientPacketEntityEquipmentEquipmentsElem.Slot)|128)) + if err != nil { + return + } + } else { + err = binary.Write(w, binary.BigEndian, PlayToClientPacketEntityEquipmentEquipmentsElem.Slot) + if err != nil { + return + } + } + PlayToClientPacketEntityEquipmentEquipmentsItemEncTmp := PlayToClientPacketEntityEquipmentEquipmentsElem.Item + err = PlayToClientPacketEntityEquipmentEquipmentsItemEncTmp.Encode(w) + if err != nil { + return + } + } return } diff --git a/mc/proto_generated/v26_2/proto.go b/mc/proto_generated/v26_2/proto.go index 795189d..bfe05a2 100644 --- a/mc/proto_generated/v26_2/proto.go +++ b/mc/proto_generated/v26_2/proto.go @@ -1,6 +1,6 @@ // Code generated by strom. DO NOT EDIT. // source: minecraft-data/pc/26.2/protocol.json (sha256:7ba66411adcc68a668f38211e1b00eeb386a345d5eb16fadd6dc1c7f94bb175f) -// version: v0.6.6-0.20260805154326-fa70ea36c6f5+dirty (go1.26.2) +// version: v0.6.6-0.20260805170503-1d8f70c7fdae+dirty (go1.26.2) package v26_2 import ( @@ -16594,15 +16594,79 @@ func (ret *PlayToClientPacketEntityEffect) Encode(w io.Writer) (err error) { } type PlayToClientPacketEntityEquipment struct { - Val proto_base.ToDo + EntityId int32 + Equipments []struct { + Slot int8 + Item Slot + } } func (ret *PlayToClientPacketEntityEquipment) Decode(r io.ReadSeeker) (err error) { - err = proto_base.ToDoError + ret.EntityId, err = proto_base.DecodeVarInt(r) + if err != nil { + return + } + ret.Equipments = []struct { + Slot int8 + Item Slot + }{} + for { + var PlayToClientPacketEntityEquipmentEquipmentsHeader uint8 + err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityEquipmentEquipmentsHeader) + if err == io.EOF { + err = nil + break + } + if err != nil { + return + } + _, err = r.Seek(-1, io.SeekCurrent) + if err != nil { + return + } + PlayToClientPacketEntityEquipmentEquipmentsHasMore := PlayToClientPacketEntityEquipmentEquipmentsHeader&128 != 0 + var PlayToClientPacketEntityEquipmentEquipmentsElement struct { + Slot int8 + Item Slot + } + err = binary.Read(r, binary.BigEndian, &PlayToClientPacketEntityEquipmentEquipmentsElement.Slot) + if err != nil { + return + } + err = PlayToClientPacketEntityEquipmentEquipmentsElement.Item.Decode(r) + if err != nil { + return + } + ret.Equipments = append(ret.Equipments, PlayToClientPacketEntityEquipmentEquipmentsElement) + if !PlayToClientPacketEntityEquipmentEquipmentsHasMore { + break + } + } return } func (ret *PlayToClientPacketEntityEquipment) Encode(w io.Writer) (err error) { - err = proto_base.ToDoError + err = proto_base.EncodeVarInt(w, ret.EntityId) + if err != nil { + return + } + for iPlayToClientPacketEntityEquipmentEquipments, PlayToClientPacketEntityEquipmentEquipmentsElem := range ret.Equipments { + if iPlayToClientPacketEntityEquipmentEquipments != len(ret.Equipments)-1 { + err = binary.Write(w, binary.BigEndian, int8(uint8(PlayToClientPacketEntityEquipmentEquipmentsElem.Slot)|128)) + if err != nil { + return + } + } else { + err = binary.Write(w, binary.BigEndian, PlayToClientPacketEntityEquipmentEquipmentsElem.Slot) + if err != nil { + return + } + } + PlayToClientPacketEntityEquipmentEquipmentsItemEncTmp := PlayToClientPacketEntityEquipmentEquipmentsElem.Item + err = PlayToClientPacketEntityEquipmentEquipmentsItemEncTmp.Encode(w) + if err != nil { + return + } + } return } diff --git a/mc/proto_generator/native_decoder.go b/mc/proto_generator/native_decoder.go index 75ad4e1..c0f0dff 100644 --- a/mc/proto_generator/native_decoder.go +++ b/mc/proto_generator/native_decoder.go @@ -619,6 +619,56 @@ func EntityMetadataLoopDecoder(g *Generator, varToSet ast.Expr, dataRaw any, nam return } +func TopBitSetTerminatedArrayDecoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { + var data struct { + Type any + } + err = mapstructure.Decode(dataRaw, &data) + if err != nil { + return + } + + normalType, err := g.VisitType(data.Type) + if err != nil { + return + } + arrayType, err := g.VisitNameAndData("array", dataRaw) + if err != nil { + return + } + + tName := name + "Element" + hasMore := name + "HasMore" + headerName := name + "Header" + + peekStmts := Stmts( + VarStmt(headerName, Ident("uint8")), + Assign(Exprs(Ident("err")), Exprs(Call(Selector("binary", "Read"), Ident("r"), Selector("binary", "BigEndian"), AddrOf(Ident(headerName))))), + If(Equals(Ident("err"), Selector("io", "EOF")), + NewBlockEllipsis(Assign121(Ident("err"), Nil()), Break())), + IfErrNil(), + Assign(Exprs(Ident("_"), Ident("err")), Exprs(Call(Selector("r", "Seek"), NumLit(-1), Selector("io", "SeekCurrent")))), + IfErrNil(), + Define121(Ident(hasMore), NotEquals(BinAnd(Ident(headerName), NumLit(0x80)), NumLit(0))), + ) + + rangeStatements := Stmts(VarStmt(tName, normalType)) + s5, err := g.VisitDecoder(Ident(tName), data.Type, tName) + if err != nil { + return + } + rangeStatements = append(rangeStatements, s5...) + rangeStatements = append(rangeStatements, Assign121(varToSet, Call(Ident("append"), varToSet, Ident(tName)))) + rangeStatements = append(rangeStatements, If(Not(Ident(hasMore)), NewBlockEllipsis(Break()))) + + loopStmts := append(peekStmts, rangeStatements...) + s = Stmts( + Assign121(varToSet, CompLit(arrayType, Exprs())), + ForStmt(nil, nil, nil, NewBlock(loopStmts)), + ) + return +} + func (g *Generator) RegisterDecoderNatives() { g.DecoderNatives = map[string]FunctionGeneratorFunc{ "container": ContainerDecoder, @@ -657,7 +707,7 @@ func (g *Generator) RegisterDecoderNatives() { "registryEntryHolder": RegistryEntryHolderDecoder, "registryEntryHolderSet": ToDoDecoder, // RegistryEntryHolderSetDecoder "entityMetadataLoop": EntityMetadataLoopDecoder, - "topBitSetTerminatedArray": ToDoDecoder, + "topBitSetTerminatedArray": TopBitSetTerminatedArrayDecoder, "todo": ToDoDecoder, } } diff --git a/mc/proto_generator/native_encoder.go b/mc/proto_generator/native_encoder.go index 3bdaa4a..48adf38 100644 --- a/mc/proto_generator/native_encoder.go +++ b/mc/proto_generator/native_encoder.go @@ -388,6 +388,108 @@ func EntityMetadataLoopEncoder(g *Generator, vts ast.Expr, dataRaw any, name str return } +func TopBitSetTerminatedArrayEncoder(g *Generator, varToSet ast.Expr, dataRaw any, name string) (s []ast.Stmt, err error) { + var data struct { + Type any + } + err = mapstructure.Decode(dataRaw, &data) + if err != nil { + return + } + + iName := "i" + name + elemName := name + "Elem" + + _, tData, err := ParseType(data.Type) + if err != nil { + return + } + + var containerData protodef.Container + if err = mapstructure.Decode(tData, &containerData); err != nil || len(containerData) == 0 { + s2, err := g.VisitEncoder(SelectorExprAndStr(Ident(elemName), "Val"), data.Type, name+"Inner") + if err != nil { + return nil, err + } + s = Stmts(ForRangeKV(Ident(iName), Ident(elemName), varToSet, NewBlock(s2))) + return s, nil + } + + elemExpr := Ident(elemName) + firstField := containerData[0] + firstCName := util2.CamelCase(firstField.Name) + firstVar := SelectorExprAndStr(elemExpr, firstCName) + notLast := NotEquals(Ident(iName), Sub(Call(Ident("len"), varToSet), NumLit(1))) + + var firstByteExpr ast.Expr + if firstField.Anon { + firstByteExpr = SelectorExprAndStr(firstVar, "Type") // or "Key"... need to handle bitfield + } else { + firstByteExpr = firstVar + } + + firstTypeName, _, _ := ParseType(firstField.Type) + + var firstFieldStmts []ast.Stmt + const msb = 0x80 + switch firstTypeName { + case "i8": + firstFieldStmts = Stmts( + IfElse(notLast, + NewBlock(Stmts( + Assign121(Ident("err"), + Call(Selector("binary", "Write"), Ident("w"), Selector("binary", "BigEndian"), + Call(Ident("int8"), + &ast.BinaryExpr{X: Call(Ident("uint8"), firstByteExpr), Op: token.OR, Y: NumLit(msb)}))), + IfErrNil(), + )), + NewBlock(Stmts( + Assign121(Ident("err"), + Call(Selector("binary", "Write"), Ident("w"), Selector("binary", "BigEndian"), firstByteExpr)), + IfErrNil(), + ))), + ) + case "u8": + firstFieldStmts = Stmts( + IfElse(notLast, + NewBlock(Stmts( + Assign121(Ident("err"), + Call(Selector("binary", "Write"), Ident("w"), Selector("binary", "BigEndian"), + &ast.BinaryExpr{X: firstByteExpr, Op: token.OR, Y: NumLit(msb)})), + IfErrNil(), + )), + NewBlock(Stmts( + Assign121(Ident("err"), + Call(Selector("binary", "Write"), Ident("w"), Selector("binary", "BigEndian"), firstByteExpr)), + IfErrNil(), + ))), + ) + default: + firstFieldStmts, err = g.VisitEncoder(firstByteExpr, firstField.Type, name+firstCName) + if err != nil { + return nil, err + } + } + + var restStmts []ast.Stmt + for _, field := range containerData[1:] { + cName := util2.CamelCase(field.Name) + if field.Anon { + cName = "Anon" + } + fieldVar := SelectorExprAndStr(elemExpr, cName) + fieldStmts, err := g.VisitEncoder(fieldVar, field.Type, name+util2.CamelCase(cName)) + if err != nil { + return nil, err + } + restStmts = append(restStmts, fieldStmts...) + } + + elementStmts := append(firstFieldStmts, restStmts...) + s = Stmts(ForRangeKV(Ident(iName), Ident(elemName), varToSet, NewBlock(elementStmts))) + return +} + func (g *Generator) RegisterEncoderNatives() { g.EncoderNatives = map[string]FunctionGeneratorFunc{ "container": ContainerEncoder, @@ -426,7 +528,7 @@ func (g *Generator) RegisterEncoderNatives() { "registryEntryHolder": RegistryEntryHolderEncoder, "registryEntryHolderSet": ToDoEncoder, "entityMetadataLoop": EntityMetadataLoopEncoder, - "topBitSetTerminatedArray": ToDoEncoder, + "topBitSetTerminatedArray": TopBitSetTerminatedArrayEncoder, "todo": ToDoEncoder, } } diff --git a/mc/proto_generator/native_type.go b/mc/proto_generator/native_type.go index f20fa55..de10857 100644 --- a/mc/proto_generator/native_type.go +++ b/mc/proto_generator/native_type.go @@ -225,7 +225,7 @@ func (g *Generator) RegisterNatives() { "string": MakeIdentVisitor("string"), "restBuffer": MakeSelectorVisitor("proto_base", "RestBuffer"), "bitflags": VisitBitFlagsType, - "topBitSetTerminatedArray": VisitToDoType, + "topBitSetTerminatedArray": VisitArrayTypeVisitorType, "todo": VisitToDoType, "lpVec3": MakeSelectorVisitor("proto_base", "LpVec3d"), }