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) {