@@ -45,6 +45,115 @@ func (g *Game) Send{{.PascalName}}Event(data {{.PascalName}}EventData) error {
45
45
}
46
46
{{end}}
47
47
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
+
48
157
// RemoveCallback removes the callback with the specified id.
49
158
func (g *Game) RemoveCallback(id cg.CallbackId) {
50
159
g.socket.RemoveCallback(id)
0 commit comments