strom: add 1.8 protocol support, raw-to-tmcpr, disable raw-capture
- Add minecraft-data for version 1.8 (protocol 47) - Generate proto_generated/v1_8 from 1.8 protocol.json - Fix generator compatibility: missing CompareTo natives (i16, i32, u16, u32, i64, string, nbt, optionalNbt), parameterized type placeholder handling () - Add raw-to-tmcpr subcommand: converts raw tcpflow captures to TMCPR with zlib decompression and state-aware compression threshold tracking - Extend print-replay: 1.8 state transitions (success->Play, login_start->Play, handshake/status initial states, set_protocol NextState detection) - Comment out broken raw-capture subcommand (use tcpflow instead) - Fix nbt.Anon Encode/Decode on value receivers
This commit is contained in:
@@ -429,7 +429,7 @@ func GenerateVersions(versions []string) (err error) {
|
||||
}
|
||||
|
||||
func main() {
|
||||
err := GenerateVersions([]string{"1.21.8", "1.21.9", "1.21.11", "26.1", "26.2"})
|
||||
err := GenerateVersions([]string{"1.8", "1.21.8", "1.21.9", "1.21.11", "26.1", "26.2"})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
@@ -12,6 +12,10 @@ import (
|
||||
)
|
||||
|
||||
func (g *Generator) ParseCompareTo(compareTo string) (e ast.Expr, cet CaseExprType, err error) {
|
||||
if strings.HasPrefix(compareTo, "$") {
|
||||
err = fmt.Errorf("parameterized type placeholder: %s", compareTo)
|
||||
return
|
||||
}
|
||||
parts := strings.Split(compareTo, "/")
|
||||
downPrefixCount := 0
|
||||
for _, part := range parts {
|
||||
@@ -124,6 +128,12 @@ func (g *Generator) RegisterCompareToNatives() {
|
||||
"bitfield": BitfieldCompareTo,
|
||||
"u8": ReturnInputCompareTo,
|
||||
"i8": ReturnInputCompareTo,
|
||||
"i16": ReturnInputCompareTo,
|
||||
"i32": ReturnInputCompareTo,
|
||||
"i64": ReturnInputCompareTo,
|
||||
"u16": ReturnInputCompareTo,
|
||||
"u32": ReturnInputCompareTo,
|
||||
"string": ReturnInputCompareTo,
|
||||
"bitflags": BitflagsCompareTo,
|
||||
"switch": ReturnInputCompareTo,
|
||||
"varlong": ReturnInputCompareTo,
|
||||
|
||||
@@ -634,6 +634,8 @@ func (g *Generator) RegisterDecoderNatives() {
|
||||
"varlong": VarLongDecoder,
|
||||
"anonymousNbt": DefaultDecoder,
|
||||
"anonOptionalNbt": DefaultDecoder, // I have no idea what the difference is between these two
|
||||
"optionalNbt": DefaultDecoder,
|
||||
"nbt": DefaultDecoder,
|
||||
"lpVec3": DefaultDecoder,
|
||||
"UUID": UUIDDecoder,
|
||||
"restBuffer": DefaultDecoder,
|
||||
|
||||
@@ -402,6 +402,8 @@ func (g *Generator) RegisterEncoderNatives() {
|
||||
"varlong": VarLongEncoder,
|
||||
"anonymousNbt": DefaultEncoder,
|
||||
"anonOptionalNbt": DefaultEncoder, // I have no idea what the difference is between these two
|
||||
"optionalNbt": DefaultEncoder,
|
||||
"nbt": DefaultEncoder,
|
||||
"UUID": UUIDEncoder,
|
||||
"restBuffer": DefaultEncoder,
|
||||
"lpVec3": DefaultEncoder,
|
||||
|
||||
@@ -200,6 +200,8 @@ func (g *Generator) RegisterNatives() {
|
||||
"native": VisitDontGenerateType,
|
||||
"anonymousNbt": MakeSelectorVisitor("nbt", "Anon"),
|
||||
"anonOptionalNbt": MakeSelectorVisitor("nbt", "Anon"), // I have no idea what the difference is between these two
|
||||
"optionalNbt": MakeSelectorVisitor("nbt", "Anon"),
|
||||
"nbt": MakeSelectorVisitor("nbt", "Anon"),
|
||||
"void": VoidType,
|
||||
"bool": MakeIdentVisitor("bool"),
|
||||
"u8": MakeIdentVisitor("uint8"),
|
||||
|
||||
Reference in New Issue
Block a user