@colyseus/sdk 0.17.20 → 0.17.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/3rd_party/discord.cjs +1 -1
- package/build/3rd_party/discord.mjs +1 -1
- package/build/Auth.cjs +1 -1
- package/build/Auth.mjs +1 -1
- package/build/Client.cjs +1 -1
- package/build/Client.cjs.map +1 -1
- package/build/Client.d.ts +9 -9
- package/build/Client.mjs +1 -1
- package/build/Client.mjs.map +1 -1
- package/build/Connection.cjs +1 -1
- package/build/Connection.mjs +1 -1
- package/build/HTTP.cjs +1 -1
- package/build/HTTP.mjs +1 -1
- package/build/Room.cjs +2 -2
- package/build/Room.cjs.map +1 -1
- package/build/Room.d.ts +2 -2
- package/build/Room.mjs +2 -2
- package/build/Room.mjs.map +1 -1
- package/build/Storage.cjs +1 -1
- package/build/Storage.mjs +1 -1
- package/build/core/nanoevents.cjs +1 -1
- package/build/core/nanoevents.mjs +1 -1
- package/build/core/signal.cjs +1 -1
- package/build/core/signal.mjs +1 -1
- package/build/core/utils.cjs +1 -1
- package/build/core/utils.mjs +1 -1
- package/build/debug.cjs +1 -1
- package/build/debug.mjs +1 -1
- package/build/errors/Errors.cjs +1 -1
- package/build/errors/Errors.mjs +1 -1
- package/build/index.cjs +1 -1
- package/build/index.mjs +1 -1
- package/build/legacy.cjs +1 -1
- package/build/legacy.mjs +1 -1
- package/build/serializer/NoneSerializer.cjs +1 -1
- package/build/serializer/NoneSerializer.mjs +1 -1
- package/build/serializer/SchemaSerializer.cjs +1 -1
- package/build/serializer/SchemaSerializer.mjs +1 -1
- package/build/serializer/Serializer.cjs +1 -1
- package/build/serializer/Serializer.mjs +1 -1
- package/build/transport/H3Transport.cjs +1 -1
- package/build/transport/H3Transport.mjs +1 -1
- package/build/transport/WebSocketTransport.cjs +1 -1
- package/build/transport/WebSocketTransport.mjs +1 -1
- package/dist/colyseus-cocos-creator.js +2 -2
- package/dist/colyseus-cocos-creator.js.map +1 -1
- package/dist/colyseus.js +2 -2
- package/dist/colyseus.js.map +1 -1
- package/dist/debug.js +2 -2
- package/dist/debug.js.map +1 -1
- package/package.json +4 -4
- package/src/Client.ts +21 -21
- package/src/Room.ts +11 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@colyseus/sdk",
|
|
3
|
-
"version": "0.17.
|
|
3
|
+
"version": "0.17.21",
|
|
4
4
|
"description": "Colyseus Multiplayer SDK for JavaScript/TypeScript",
|
|
5
5
|
"author": "Endel Dreyer",
|
|
6
6
|
"license": "MIT",
|
|
@@ -55,8 +55,8 @@
|
|
|
55
55
|
"@colyseus/schema": "^4.0.4",
|
|
56
56
|
"tslib": "^2.1.0",
|
|
57
57
|
"ws": "^8.13.0",
|
|
58
|
-
"@colyseus/
|
|
59
|
-
"@colyseus/
|
|
58
|
+
"@colyseus/shared-types": "^0.17.3",
|
|
59
|
+
"@colyseus/better-call": "^1.2.0"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@rollup/plugin-alias": "^5.1.1",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"typescript": "^5.9.3",
|
|
83
83
|
"vite": "^5.0.11",
|
|
84
84
|
"vitest": "^2.1.1",
|
|
85
|
-
"@colyseus/core": "^0.17.
|
|
85
|
+
"@colyseus/core": "^0.17.21"
|
|
86
86
|
},
|
|
87
87
|
"peerDependencies": {
|
|
88
88
|
"@colyseus/core": "0.17.x"
|
package/src/Client.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CloseCode, Protocol, type SDKTypes, type ServerRoomLike, type ISeatReservation } from '@colyseus/shared-types';
|
|
1
|
+
import { CloseCode, Protocol, type InferState, type SDKTypes, type ServerRoomLike, type ISeatReservation } from '@colyseus/shared-types';
|
|
2
2
|
|
|
3
3
|
import { MatchMakeError, ServerError } from './errors/Errors.ts';
|
|
4
4
|
import { Room } from './Room.ts';
|
|
@@ -156,15 +156,15 @@ export class ColyseusSDK<ServerType extends SDKTypes = any, UserData = any> {
|
|
|
156
156
|
}
|
|
157
157
|
|
|
158
158
|
// Overload: Use room name from ServerType to infer room type
|
|
159
|
-
public async joinOrCreate<R extends keyof ServerType['~rooms']
|
|
159
|
+
public async joinOrCreate<R extends keyof ServerType['~rooms'], State = InferState<ServerType['~rooms'][R]['~room'], never>>(
|
|
160
160
|
roomName: R,
|
|
161
|
-
options?: Parameters<ServerType['~rooms'][R]['~room']['
|
|
162
|
-
rootSchema?: SchemaConstructor<
|
|
163
|
-
): Promise<Room<ServerType['~rooms'][R]['~room']>>
|
|
161
|
+
options?: Parameters<ServerType['~rooms'][R]['~room']['onJoin']>[1],
|
|
162
|
+
rootSchema?: SchemaConstructor<State>
|
|
163
|
+
): Promise<Room<ServerType['~rooms'][R]['~room'], State>>
|
|
164
164
|
// Overload: Pass RoomType directly to extract state
|
|
165
165
|
public async joinOrCreate<RoomType extends ServerRoomLike>(
|
|
166
166
|
roomName: string,
|
|
167
|
-
options?: Parameters<RoomType['onJoin']
|
|
167
|
+
options?: Parameters<NonNullable<RoomType['onJoin']>>[1],
|
|
168
168
|
rootSchema?: SchemaConstructor<RoomType['state']>
|
|
169
169
|
): Promise<Room<RoomType, RoomType['state']>>
|
|
170
170
|
// Overload: Pass State type directly
|
|
@@ -179,15 +179,15 @@ export class ColyseusSDK<ServerType extends SDKTypes = any, UserData = any> {
|
|
|
179
179
|
}
|
|
180
180
|
|
|
181
181
|
// Overload: Use room name from ServerType to infer room type
|
|
182
|
-
public async create<R extends keyof ServerType['~rooms']
|
|
182
|
+
public async create<R extends keyof ServerType['~rooms'], State = InferState<ServerType['~rooms'][R]['~room'], never>>(
|
|
183
183
|
roomName: R,
|
|
184
|
-
options?: Parameters<ServerType['~rooms'][R]['~room']['
|
|
185
|
-
rootSchema?: SchemaConstructor<
|
|
186
|
-
): Promise<Room<ServerType['~rooms'][R]['~room']>>
|
|
184
|
+
options?: Parameters<ServerType['~rooms'][R]['~room']['onJoin']>[1],
|
|
185
|
+
rootSchema?: SchemaConstructor<State>
|
|
186
|
+
): Promise<Room<ServerType['~rooms'][R]['~room'], State>>
|
|
187
187
|
// Overload: Pass RoomType directly to extract state
|
|
188
188
|
public async create<RoomType extends ServerRoomLike>(
|
|
189
189
|
roomName: string,
|
|
190
|
-
options?: Parameters<RoomType['onJoin']
|
|
190
|
+
options?: Parameters<NonNullable<RoomType['onJoin']>>[1],
|
|
191
191
|
rootSchema?: SchemaConstructor<RoomType['state']>
|
|
192
192
|
): Promise<Room<RoomType, RoomType['state']>>
|
|
193
193
|
// Overload: Pass State type directly
|
|
@@ -202,15 +202,15 @@ export class ColyseusSDK<ServerType extends SDKTypes = any, UserData = any> {
|
|
|
202
202
|
}
|
|
203
203
|
|
|
204
204
|
// Overload: Use room name from ServerType to infer room type
|
|
205
|
-
public async join<R extends keyof ServerType['~rooms']
|
|
205
|
+
public async join<R extends keyof ServerType['~rooms'], State = InferState<ServerType['~rooms'][R]['~room'], never>>(
|
|
206
206
|
roomName: R,
|
|
207
|
-
options?: Parameters<ServerType['~rooms'][R]['~room']['
|
|
208
|
-
rootSchema?: SchemaConstructor<
|
|
209
|
-
): Promise<Room<ServerType['~rooms'][R]['~room']>>
|
|
207
|
+
options?: Parameters<ServerType['~rooms'][R]['~room']['onJoin']>[1],
|
|
208
|
+
rootSchema?: SchemaConstructor<State>
|
|
209
|
+
): Promise<Room<ServerType['~rooms'][R]['~room'], State>>
|
|
210
210
|
// Overload: Pass RoomType directly to extract state
|
|
211
211
|
public async join<RoomType extends ServerRoomLike>(
|
|
212
212
|
roomName: string,
|
|
213
|
-
options?: Parameters<RoomType['onJoin']
|
|
213
|
+
options?: Parameters<NonNullable<RoomType['onJoin']>>[1],
|
|
214
214
|
rootSchema?: SchemaConstructor<RoomType['state']>
|
|
215
215
|
): Promise<Room<RoomType, RoomType['state']>>
|
|
216
216
|
// Overload: Pass State type directly
|
|
@@ -225,15 +225,15 @@ export class ColyseusSDK<ServerType extends SDKTypes = any, UserData = any> {
|
|
|
225
225
|
}
|
|
226
226
|
|
|
227
227
|
// Overload: Use room name from ServerType to infer room type
|
|
228
|
-
public async joinById<R extends keyof ServerType['~rooms']
|
|
228
|
+
public async joinById<R extends keyof ServerType['~rooms'], State = InferState<ServerType['~rooms'][R]['~room'], never>>(
|
|
229
229
|
roomName: R,
|
|
230
|
-
options?: Parameters<ServerType['~rooms'][R]['~room']['
|
|
231
|
-
rootSchema?: SchemaConstructor<
|
|
232
|
-
): Promise<Room<ServerType['~rooms'][R]['~room']>>
|
|
230
|
+
options?: Parameters<ServerType['~rooms'][R]['~room']['onJoin']>[1],
|
|
231
|
+
rootSchema?: SchemaConstructor<State>
|
|
232
|
+
): Promise<Room<ServerType['~rooms'][R]['~room'], State>>
|
|
233
233
|
// Overload: Pass RoomType directly to extract state
|
|
234
234
|
public async joinById<RoomType extends ServerRoomLike>(
|
|
235
235
|
roomId: string,
|
|
236
|
-
options?: Parameters<RoomType['onJoin']
|
|
236
|
+
options?: Parameters<NonNullable<RoomType['onJoin']>>[1],
|
|
237
237
|
rootSchema?: SchemaConstructor<RoomType['state']>
|
|
238
238
|
): Promise<Room<RoomType, RoomType['state']>>
|
|
239
239
|
// Overload: Pass State type directly
|
package/src/Room.ts
CHANGED
|
@@ -129,7 +129,7 @@ export class Room<
|
|
|
129
129
|
protected packr: Packr;
|
|
130
130
|
|
|
131
131
|
#lastPingTime: number = 0;
|
|
132
|
-
#pingCallback
|
|
132
|
+
#pingCallback?: (ms: number) => void = undefined;
|
|
133
133
|
|
|
134
134
|
constructor(name: string, rootSchema?: SchemaConstructor<State>) {
|
|
135
135
|
this.name = name;
|
|
@@ -221,7 +221,11 @@ export class Room<
|
|
|
221
221
|
callback: (payload: ExtractRoomClientMessages<NormalizeRoomType<T>>[MessageType]) => void
|
|
222
222
|
): () => void
|
|
223
223
|
public onMessage<Payload = any>(type: "*", callback: (messageType: string | number, payload: Payload) => void): () => void
|
|
224
|
-
|
|
224
|
+
// Fallback overload: only available when no typed client messages are defined
|
|
225
|
+
public onMessage<Payload = any>(
|
|
226
|
+
type: [keyof ExtractRoomClientMessages<NormalizeRoomType<T>>] extends [never] ? (string | number) : never,
|
|
227
|
+
callback: (payload: Payload) => void
|
|
228
|
+
): () => void
|
|
225
229
|
public onMessage(type: '*' | string | number, callback: (...args: any[]) => void) {
|
|
226
230
|
return this.onMessageHandlers.on(this.getMessageHandlerKey(type), callback);
|
|
227
231
|
}
|
|
@@ -242,7 +246,11 @@ export class Room<
|
|
|
242
246
|
messageType: MessageType,
|
|
243
247
|
payload?: ExtractMessageType<ExtractRoomMessages<NormalizeRoomType<T>>[MessageType]>
|
|
244
248
|
): void
|
|
245
|
-
|
|
249
|
+
// Fallback overload: only available when no typed messages are defined
|
|
250
|
+
public send<Payload = any>(
|
|
251
|
+
messageType: [keyof ExtractRoomMessages<NormalizeRoomType<T>>] extends [never] ? (string | number) : never,
|
|
252
|
+
payload?: Payload
|
|
253
|
+
): void
|
|
246
254
|
public send(messageType: string | number, payload?: any): void {
|
|
247
255
|
const it: Iterator = { offset: 1 };
|
|
248
256
|
this.packr.buffer[0] = Protocol.ROOM_DATA;
|