diff --git a/common/data/xml/monster_refresh.go b/common/data/xml/monster_refresh.go new file mode 100644 index 000000000..78ca49402 --- /dev/null +++ b/common/data/xml/monster_refresh.go @@ -0,0 +1,20 @@ +package main + +import ( + "github.com/ECUST-XX/xml" +) + +type SuperMaps struct { + XMLName xml.Name `xml:"superMaps"` + Text string `xml:",chardata"` + Maps []Maps `xml:"maps"` +} + +type Maps struct { + Text string `xml:",chardata"` + ID string `xml:"id,attr"` + Name string `xml:"name,attr"` + X string `xml:"x,attr"` + Y string `xml:"y,attr"` + // Galaxy string `xml:"galaxy,attr"` +} diff --git a/common/data/xml/monster_refresh_test.go b/common/data/xml/monster_refresh_test.go new file mode 100644 index 000000000..42e975230 --- /dev/null +++ b/common/data/xml/monster_refresh_test.go @@ -0,0 +1,126 @@ +package main + +import ( + "fmt" + "strings" + "testing" + + "github.com/ECUST-XX/xml" + "github.com/antchfx/xmlquery" +) + +var s = ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +` + +func Test_main(t *testing.T) { + tt := &SuperMaps{} + xml.Unmarshal([]byte(s), tt) + + // tt.Maps = append(tt.Maps, Maps{ + // ID: "1", + // Name: "传送舱", + // // Galaxy: "1", + // X: "358", + // Y: "46", + // }) + // tt.Maps = append(tt.Maps, Maps{ + // ID: "4", + // Name: "船长室", + // // Galaxy: "1", + // X: "358", + // Y: "46", + // }) + tf, _ := xml.MarshalIndentShortForm(tt, " ", " ") + fmt.Println(string(tf)) +} + +func main1() { + s := ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +` + + doc, err := xmlquery.Parse(strings.NewReader(s)) + if err != nil { + panic(err) + } + //channel := xmlquery.FindOne(doc, "//superMaps") + // if n := channel.SelectElement("maps"); n != nil { + // fmt.Printf("title: %s\n", n.InnerText()) + // } + if l := xmlquery.Find(doc, "//maps[@id='9']"); l != nil { + t := l[0].Attr + fmt.Printf("%v", t[1]) + } + // for i, n := range xmlquery.Find(doc, "//maps/@id") { + // fmt.Printf("#%d %s\n", i, n.InnerText()) + // } +} diff --git a/common/go.mod b/common/go.mod index 46a9cf8be..8c152fd97 100644 --- a/common/go.mod +++ b/common/go.mod @@ -17,6 +17,7 @@ require ( require ( github.com/BurntSushi/toml v1.2.0 // indirect + github.com/ECUST-XX/xml v1.20.2 github.com/clbanning/mxj/v2 v2.7.0 // indirect github.com/fatih/color v1.15.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect diff --git a/common/go.sum b/common/go.sum index 4e276831b..1676a1b3f 100644 --- a/common/go.sum +++ b/common/go.sum @@ -1,6 +1,8 @@ github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0= github.com/BurntSushi/toml v1.2.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/ECUST-XX/xml v1.20.2 h1:xqg5JaYfcGtkXtLcAN0H1sbTWwRdIHjmU/ZRPmtj+8k= +github.com/ECUST-XX/xml v1.20.2/go.mod h1:AHwv/5bl6dD2mohWd7efbLVKEF+SllOsrynpQVhWM0o= github.com/antchfx/xmlquery v1.4.4 h1:mxMEkdYP3pjKSftxss4nUHfjBhnMk4imGoR96FRY2dg= github.com/antchfx/xmlquery v1.4.4/go.mod h1:AEPEEPYE9GnA2mj5Ur2L5Q5/2PycJ0N9Fusrx9b12fc= github.com/antchfx/xpath v1.3.3 h1:tmuPQa1Uye0Ym1Zn65vxPgfltWb/Lxu2jeqIGteJSRs= diff --git a/common/socket/ServerEvent.go b/common/socket/ServerEvent.go index dcd640b1b..f771ff258 100644 --- a/common/socket/ServerEvent.go +++ b/common/socket/ServerEvent.go @@ -58,7 +58,7 @@ func (s *Server) handleTcp(conn gnet.Conn) (action gnet.Action) { } //client := conn.RemoteAddr().String() - _ = s.workerPool.Submit(func() { + _ = s.workerPool.Submit(func() { //TODO 这里可能存在顺序执行问题,待修复 s.parser(conn, data) }) diff --git a/logic/main.go b/logic/main.go index b136aed05..686c0cf96 100644 --- a/logic/main.go +++ b/logic/main.go @@ -129,9 +129,10 @@ func processWithReflection(c gnet.Conn, pp handler.TomeeHeader) { func callhandler(cmdlister reflect.Value, data []byte, player *entity.Player, cmd cmd.EnumCommandID) { //TODO 待实现返回参数返回客户端???实现直接返回对象进行序列化 传递chan待返回 - //TODO 已实现,待测试 + //TODO 已实现,待测试结构体序列化 recvchan := make(chan any, 1) //传递自定义chan - go func() { + + go func() { //TODO 待实现ants线程池,以及确认是否存在顺序混乱问题https://github.com/lxzan/gws/issues/3 retv := <-recvchan switch ttt := retv.(type) {