@@ -45,6 +45,115 @@ func (g *Game) Send{{.PascalName}}Event(data {{.PascalName}}EventData) error {
4545}
4646{{end }}
4747
48+
49+ // OnCGNewPlayerEvent triggers the callback every time the ` cg_new_player` event is received.
50+ func (g *Game) OnCGNewPlayerEvent(callback func(origin Player, data cg.NewPlayerEventData )) cg.CallbackId {
51+ return g.socket.On (cg.NewPlayerEvent , func(origin string, event cg.Event ) {
52+ var data cg.NewPlayerEventData
53+ err := event.UnmarshalData (&data)
54+ if err == nil {
55+ username := g.socket.ResolveUsername (origin)
56+ if origin == " server" {
57+ username = " Server"
58+ }
59+ callback(Player{
60+ Id: origin,
61+ Username: username,
62+ }, data)
63+ }
64+ })
65+ }
66+
67+ // OnCGNewPlayerEventOnce triggers the callback the next time the ` cg_new_player` event is received.
68+ func (g *Game) OnCGNewPlayerEventOnce(callback func(origin Player, data cg.NewPlayerEventData )) cg.CallbackId {
69+ return g.socket.Once (cg.NewPlayerEvent , func(origin string, event cg.Event ) {
70+ var data cg.NewPlayerEventData
71+ err := event.UnmarshalData (&data)
72+ if err == nil {
73+ username := g.socket.ResolveUsername (origin)
74+ if origin == " server" {
75+ username = " Server"
76+ }
77+ callback(Player{
78+ Id: origin,
79+ Username: username,
80+ }, data)
81+ }
82+ })
83+ }
84+
85+ // OnCGLeftEvent triggers the callback every time the ` cg_left` event is received.
86+ func (g *Game) OnCGLeftEvent(callback func(origin Player, data cg.LeftEventData )) cg.CallbackId {
87+ return g.socket.On (cg.LeftEvent , func(origin string, event cg.Event ) {
88+ var data cg.LeftEventData
89+ err := event.UnmarshalData (&data)
90+ if err == nil {
91+ username := g.socket.ResolveUsername (origin)
92+ if origin == " server" {
93+ username = " Server"
94+ }
95+ callback(Player{
96+ Id: origin,
97+ Username: username,
98+ }, data)
99+ }
100+ })
101+ }
102+
103+ // OnCGLeftEventOnce triggers the callback the next time the ` cg_left` event is received.
104+ func (g *Game) OnCGLeftEventOnce(callback func(origin Player, data cg.LeftEventData )) cg.CallbackId {
105+ return g.socket.Once (cg.LeftEvent , func(origin string, event cg.Event ) {
106+ var data cg.LeftEventData
107+ err := event.UnmarshalData (&data)
108+ if err == nil {
109+ username := g.socket.ResolveUsername (origin)
110+ if origin == " server" {
111+ username = " Server"
112+ }
113+ callback(Player{
114+ Id: origin,
115+ Username: username,
116+ }, data)
117+ }
118+ })
119+ }
120+
121+ // OnCGErrorEvent triggers the callback every time the ` cg_error` event is received.
122+ func (g *Game) OnCGErrorEvent(callback func(origin Player, data cg.ErrorEventData )) cg.CallbackId {
123+ return g.socket.On (cg.ErrorEvent , func(origin string, event cg.Event ) {
124+ var data cg.ErrorEventData
125+ err := event.UnmarshalData (&data)
126+ if err == nil {
127+ username := g.socket.ResolveUsername (origin)
128+ if origin == " server" {
129+ username = " Server"
130+ }
131+ callback(Player{
132+ Id: origin,
133+ Username: username,
134+ }, data)
135+ }
136+ })
137+ }
138+
139+ // OnCGErrorEventOnce triggers the callback the next time the ` cg_error` event is received.
140+ func (g *Game) OnCGErrorEventOnce(callback func(origin Player, data cg.ErrorEventData )) cg.CallbackId {
141+ return g.socket.Once (cg.ErrorEvent , func(origin string, event cg.Event ) {
142+ var data cg.ErrorEventData
143+ err := event.UnmarshalData (&data)
144+ if err == nil {
145+ username := g.socket.ResolveUsername (origin)
146+ if origin == " server" {
147+ username = " Server"
148+ }
149+ callback(Player{
150+ Id: origin,
151+ Username: username,
152+ }, data)
153+ }
154+ })
155+ }
156+
48157// RemoveCallback removes the callback with the specified id.
49158func (g *Game) RemoveCallback(id cg.CallbackId ) {
50159 g.socket.RemoveCallback (id)
0 commit comments