@rpgjs/server 4.1.2 → 4.2.0
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/CHANGELOG.md +19 -0
- package/browser/rpg.server.js +775 -375
- package/browser/rpg.server.umd.cjs +761 -361
- package/lib/Game/EventManager.js +1 -1
- package/lib/Game/EventManager.js.map +1 -1
- package/lib/Game/Map.d.ts +4 -0
- package/lib/Game/Map.js +11 -1
- package/lib/Game/Map.js.map +1 -1
- package/lib/MatchMaker.js +3 -1
- package/lib/MatchMaker.js.map +1 -1
- package/lib/Player/Player.d.ts +9 -3
- package/lib/Player/Player.js +25 -17
- package/lib/Player/Player.js.map +1 -1
- package/lib/RpgServer.d.ts +29 -0
- package/lib/Scenes/Map.d.ts +2 -3
- package/lib/Scenes/Map.js +7 -3
- package/lib/Scenes/Map.js.map +1 -1
- package/lib/entry-point.js +18 -12
- package/lib/entry-point.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/inject.d.ts +22 -0
- package/lib/inject.js +29 -0
- package/lib/inject.js.map +1 -0
- package/lib/server.d.ts +7 -5
- package/lib/server.js +96 -46
- package/lib/server.js.map +1 -1
- package/package.json +6 -7
- package/src/Game/EventManager.ts +1 -1
- package/src/Game/Map.ts +15 -1
- package/src/MatchMaker.ts +3 -1
- package/src/Player/Player.ts +19 -11
- package/src/RpgServer.ts +30 -1
- package/src/Scenes/Map.ts +6 -2
- package/src/entry-point.ts +19 -12
- package/src/index.ts +1 -0
- package/src/inject.ts +33 -0
- package/src/server.ts +98 -43
package/lib/inject.js
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
let instanceContext = null;
|
|
2
|
+
/**
|
|
3
|
+
* Dependency injection function for RPGJS server side.
|
|
4
|
+
*
|
|
5
|
+
* The server-side `inject` function is designed for retrieving instances of server-related classes in the RPGJS framework.
|
|
6
|
+
* This function is crucial for accessing singleton instances of classes like `RpgServerEngine` on the server. It facilitates
|
|
7
|
+
* a clean and efficient approach to handling dependencies within server modules, contributing to a more organized codebase.
|
|
8
|
+
*
|
|
9
|
+
* @template T The class type that you want to retrieve an instance of, specific to server-side modules.
|
|
10
|
+
* @returns {T} Returns the singleton instance of the specified class, ensuring consistent server-side behavior and state management.
|
|
11
|
+
* @since 4.2.0
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* // Example of injecting the RpgServerEngine
|
|
16
|
+
* import { inject, RpgServerEngine } from '@rpgjs/server'
|
|
17
|
+
* const server = inject(RpgServerEngine)
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export function inject(service, args = []) {
|
|
21
|
+
return instanceContext.inject(service, args);
|
|
22
|
+
}
|
|
23
|
+
export function setInject(context) {
|
|
24
|
+
instanceContext = context;
|
|
25
|
+
}
|
|
26
|
+
export function clearInject() {
|
|
27
|
+
instanceContext = null;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=inject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../src/inject.ts"],"names":[],"mappings":"AAEA,IAAI,eAAe,GAAyB,IAAI,CAAA;AAEhD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,MAAM,CAAI,OAAkC,EAAE,OAAc,EAAE;IAC1E,OAAO,eAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAsB;IAC5C,eAAe,GAAG,OAAO,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,WAAW;IACvB,eAAe,GAAG,IAAI,CAAA;AAC1B,CAAC"}
|
package/lib/server.d.ts
CHANGED
|
@@ -5,9 +5,6 @@ import { Observable } from 'rxjs';
|
|
|
5
5
|
import { Tick } from '@rpgjs/types';
|
|
6
6
|
import { DatabaseTypes } from '@rpgjs/database';
|
|
7
7
|
export declare class RpgServerEngine {
|
|
8
|
-
io: any;
|
|
9
|
-
gameEngine: RpgCommonGame;
|
|
10
|
-
inputOptions: any;
|
|
11
8
|
/**
|
|
12
9
|
* Express App Instance. If you have assigned this variable before starting the game, you can get the instance of Express
|
|
13
10
|
*
|
|
@@ -42,16 +39,19 @@ export declare class RpgServerEngine {
|
|
|
42
39
|
protected totalConnected: number;
|
|
43
40
|
private scheduler;
|
|
44
41
|
private playerProps;
|
|
42
|
+
gameEngine: RpgCommonGame;
|
|
45
43
|
world: WorldClass;
|
|
46
44
|
workers: any;
|
|
47
45
|
envs: any;
|
|
46
|
+
io: any;
|
|
47
|
+
inputOptions: any;
|
|
48
48
|
/**
|
|
49
49
|
* Combat formulas
|
|
50
50
|
*
|
|
51
51
|
* @prop {Socket Io Server} [io]
|
|
52
52
|
* @memberof RpgServerEngine
|
|
53
53
|
*/
|
|
54
|
-
|
|
54
|
+
initialize(io: any, inputOptions: any): void;
|
|
55
55
|
private _init;
|
|
56
56
|
/**
|
|
57
57
|
* Adds data to the server's database (in RAM) for later use
|
|
@@ -104,6 +104,7 @@ export declare class RpgServerEngine {
|
|
|
104
104
|
* @memberof RpgServerEngine
|
|
105
105
|
*/
|
|
106
106
|
start(inputOptions?: any, scheduler?: boolean): Promise<void>;
|
|
107
|
+
private transport;
|
|
107
108
|
get tick(): Observable<Tick>;
|
|
108
109
|
/**
|
|
109
110
|
* Sends all packages to clients. The sending is done automatically but you can decide to send yourself by calling this method (for example, for unit tests)
|
|
@@ -113,7 +114,7 @@ export declare class RpgServerEngine {
|
|
|
113
114
|
* @returns {void}
|
|
114
115
|
* @memberof RpgServerEngine
|
|
115
116
|
*/
|
|
116
|
-
send(): void
|
|
117
|
+
send(): Promise<void>;
|
|
117
118
|
private updatePlayersMove;
|
|
118
119
|
nextTick(timestamp: number): void;
|
|
119
120
|
step(t: number, dt: number): void;
|
|
@@ -129,6 +130,7 @@ export declare class RpgServerEngine {
|
|
|
129
130
|
get module(): import("@rpgjs/common/lib/Plugin").PluginSystem;
|
|
130
131
|
get assetsPath(): string;
|
|
131
132
|
sendToPlayer(currentPlayer: any, eventName: any, data: any): void;
|
|
133
|
+
private getPlayerBySession;
|
|
132
134
|
private onPlayerConnected;
|
|
133
135
|
private onPlayerDisconnected;
|
|
134
136
|
stop(): void;
|
package/lib/server.js
CHANGED
|
@@ -8,20 +8,12 @@ import { SceneMap } from './Scenes/Map.js';
|
|
|
8
8
|
import { RpgPlayer } from './Player/Player.js';
|
|
9
9
|
import { Query } from './Query.js';
|
|
10
10
|
import { DAMAGE_SKILL, DAMAGE_PHYSIC, DAMAGE_CRITICAL, COEFFICIENT_ELEMENTS } from './presets/index.js';
|
|
11
|
-
import { World } from 'simple-room';
|
|
12
|
-
import { Utils, RpgPlugin, Scheduler, HookServer, DefaultInput } from '@rpgjs/common';
|
|
11
|
+
import { World, Transport } from 'simple-room';
|
|
12
|
+
import { Utils, RpgPlugin, Scheduler, HookServer, RpgCommonGame, DefaultInput } from '@rpgjs/common';
|
|
13
13
|
import { Actor, Armor, Class, Item, Skill, State, Weapon } from '@rpgjs/database';
|
|
14
|
+
import { inject } from './inject.js';
|
|
14
15
|
export class RpgServerEngine {
|
|
15
|
-
|
|
16
|
-
* Combat formulas
|
|
17
|
-
*
|
|
18
|
-
* @prop {Socket Io Server} [io]
|
|
19
|
-
* @memberof RpgServerEngine
|
|
20
|
-
*/
|
|
21
|
-
constructor(io, gameEngine, inputOptions) {
|
|
22
|
-
this.io = io;
|
|
23
|
-
this.gameEngine = gameEngine;
|
|
24
|
-
this.inputOptions = inputOptions;
|
|
16
|
+
constructor() {
|
|
25
17
|
/**
|
|
26
18
|
* List of the data
|
|
27
19
|
*
|
|
@@ -48,8 +40,20 @@ export class RpgServerEngine {
|
|
|
48
40
|
this.scenes = new Map();
|
|
49
41
|
this.totalConnected = 0;
|
|
50
42
|
this.scheduler = new Scheduler();
|
|
43
|
+
this.gameEngine = inject(RpgCommonGame);
|
|
51
44
|
this.world = World;
|
|
52
45
|
this.envs = {};
|
|
46
|
+
this.inputOptions = {};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Combat formulas
|
|
50
|
+
*
|
|
51
|
+
* @prop {Socket Io Server} [io]
|
|
52
|
+
* @memberof RpgServerEngine
|
|
53
|
+
*/
|
|
54
|
+
initialize(io, inputOptions) {
|
|
55
|
+
this.io = io;
|
|
56
|
+
this.inputOptions = inputOptions;
|
|
53
57
|
this.envs = inputOptions.envs || {};
|
|
54
58
|
if (this.inputOptions.workers) {
|
|
55
59
|
console.log('workers enabled');
|
|
@@ -91,16 +95,21 @@ export class RpgServerEngine {
|
|
|
91
95
|
};
|
|
92
96
|
if (!this.inputOptions.database)
|
|
93
97
|
this.inputOptions.database = {};
|
|
98
|
+
/**
|
|
99
|
+
* data is array with object or array
|
|
100
|
+
*/
|
|
94
101
|
const datas = await RpgPlugin.emit(HookServer.AddDatabase, this.inputOptions.database) || [];
|
|
95
|
-
for (let
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
102
|
+
for (let element of datas) {
|
|
103
|
+
if (Array.isArray(element)) {
|
|
104
|
+
for (let data of element) {
|
|
105
|
+
this.addInDatabase(data.id, data);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
for (let id in element) {
|
|
110
|
+
this.addInDatabase(element[id].id ?? id, element[id]);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
104
113
|
}
|
|
105
114
|
this.loadScenes();
|
|
106
115
|
}
|
|
@@ -242,9 +251,29 @@ export class RpgServerEngine {
|
|
|
242
251
|
return Query._getShapesOfMap(map);
|
|
243
252
|
}
|
|
244
253
|
});
|
|
245
|
-
this.io.on('connection', this.onPlayerConnected.bind(this))
|
|
254
|
+
//this.io.on('connection', this.onPlayerConnected.bind(this))
|
|
255
|
+
this.transport(this.io);
|
|
246
256
|
await RpgPlugin.emit(HookServer.Start, this);
|
|
247
257
|
}
|
|
258
|
+
transport(io) {
|
|
259
|
+
const timeoutDisconnect = this.globalConfig.timeoutDisconnect ?? 0;
|
|
260
|
+
const auth = this.globalConfig.disableAuth ? () => Utils.generateUID() :
|
|
261
|
+
async (socket) => {
|
|
262
|
+
const val = await RpgPlugin.emit(HookServer.Auth, [this, socket], true);
|
|
263
|
+
if (val.length == 0) {
|
|
264
|
+
return Utils.generateUID();
|
|
265
|
+
}
|
|
266
|
+
return val[val.length - 1];
|
|
267
|
+
};
|
|
268
|
+
const transport = new Transport(io, {
|
|
269
|
+
timeoutDisconnect,
|
|
270
|
+
auth
|
|
271
|
+
});
|
|
272
|
+
this.world.timeoutDisconnect = timeoutDisconnect;
|
|
273
|
+
transport.onConnected(this.onPlayerConnected.bind(this));
|
|
274
|
+
transport.onDisconnected(this.onPlayerDisconnected.bind(this));
|
|
275
|
+
return transport;
|
|
276
|
+
}
|
|
248
277
|
get tick() {
|
|
249
278
|
return this.scheduler.tick;
|
|
250
279
|
}
|
|
@@ -257,7 +286,7 @@ export class RpgServerEngine {
|
|
|
257
286
|
* @memberof RpgServerEngine
|
|
258
287
|
*/
|
|
259
288
|
send() {
|
|
260
|
-
this.world.send();
|
|
289
|
+
return this.world.send();
|
|
261
290
|
}
|
|
262
291
|
async updatePlayersMove(deltaTimeInt) {
|
|
263
292
|
const players = this.world.getUsers();
|
|
@@ -320,7 +349,7 @@ export class RpgServerEngine {
|
|
|
320
349
|
maps: this.inputOptions.maps,
|
|
321
350
|
events: this.inputOptions.events,
|
|
322
351
|
worldMaps: this.inputOptions.worldMaps
|
|
323
|
-
}
|
|
352
|
+
}));
|
|
324
353
|
}
|
|
325
354
|
getScene(name) {
|
|
326
355
|
return this.scenes.get(name);
|
|
@@ -343,11 +372,49 @@ export class RpgServerEngine {
|
|
|
343
372
|
sendToPlayer(currentPlayer, eventName, data) {
|
|
344
373
|
currentPlayer._socket.emit(eventName, data);
|
|
345
374
|
}
|
|
346
|
-
|
|
347
|
-
const
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
375
|
+
getPlayerBySession(session) {
|
|
376
|
+
const users = this.world.getUsers();
|
|
377
|
+
for (let userId in users) {
|
|
378
|
+
const user = users[userId];
|
|
379
|
+
if (user.session === session) {
|
|
380
|
+
return user;
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
return null;
|
|
384
|
+
}
|
|
385
|
+
onPlayerConnected(socket, playerId) {
|
|
386
|
+
const existingUser = this.world.getUser(playerId, false);
|
|
387
|
+
this.world.connectUser(socket, playerId);
|
|
388
|
+
let player;
|
|
389
|
+
if (!existingUser) {
|
|
390
|
+
const { token } = socket.handshake.auth;
|
|
391
|
+
player = new RpgPlayer(playerId);
|
|
392
|
+
player.session = token;
|
|
393
|
+
this.world.setUser(player, socket);
|
|
394
|
+
player._init();
|
|
395
|
+
if (!token) {
|
|
396
|
+
const newToken = Utils.generateUID() + '-' + Utils.generateUID() + '-' + Utils.generateUID();
|
|
397
|
+
player.session = newToken;
|
|
398
|
+
}
|
|
399
|
+
if (!token) {
|
|
400
|
+
player.execMethod('onConnected');
|
|
401
|
+
}
|
|
402
|
+
else {
|
|
403
|
+
RpgPlugin.emit(HookServer.ScalabilityPlayerConnected, player);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
player = existingUser;
|
|
408
|
+
if (player.map) {
|
|
409
|
+
player.emit('preLoadScene', {
|
|
410
|
+
reconnect: true,
|
|
411
|
+
id: player.map
|
|
412
|
+
});
|
|
413
|
+
player.emitSceneMap();
|
|
414
|
+
this.world.joinRoom(player.map, playerId);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
socket.emit('playerJoined', { playerId, session: player.session });
|
|
351
418
|
socket.on('move', (data) => {
|
|
352
419
|
if (!data?.input)
|
|
353
420
|
return;
|
|
@@ -364,23 +431,6 @@ export class RpgServerEngine {
|
|
|
364
431
|
});
|
|
365
432
|
}
|
|
366
433
|
});
|
|
367
|
-
socket.on('disconnect', () => {
|
|
368
|
-
this.onPlayerDisconnected(playerId);
|
|
369
|
-
});
|
|
370
|
-
this.world.setUser(player, socket);
|
|
371
|
-
player.server = this;
|
|
372
|
-
player._init();
|
|
373
|
-
if (!token) {
|
|
374
|
-
const newToken = Utils.generateUID() + '-' + Utils.generateUID() + '-' + Utils.generateUID();
|
|
375
|
-
player.session = newToken;
|
|
376
|
-
}
|
|
377
|
-
socket.emit('playerJoined', { playerId, session: player.session });
|
|
378
|
-
if (!token) {
|
|
379
|
-
player.execMethod('onConnected');
|
|
380
|
-
}
|
|
381
|
-
else {
|
|
382
|
-
RpgPlugin.emit(HookServer.ScalabilityPlayerConnected, player);
|
|
383
|
-
}
|
|
384
434
|
}
|
|
385
435
|
onPlayerDisconnected(playerId) {
|
|
386
436
|
const player = World.getUser(playerId);
|
package/lib/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rpgjs/server",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "./lib/index.js",
|
|
6
6
|
"types": "./lib/index.d.ts",
|
|
@@ -27,24 +27,23 @@
|
|
|
27
27
|
"author": "Samuel Ronce",
|
|
28
28
|
"license": "MIT",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@rpgjs/common": "^4.
|
|
31
|
-
"@rpgjs/database": "^4.
|
|
30
|
+
"@rpgjs/common": "^4.2.0",
|
|
31
|
+
"@rpgjs/database": "^4.2.0",
|
|
32
32
|
"@rpgjs/tiled": "^4.0.5",
|
|
33
33
|
"@rpgjs/types": "^4.0.5",
|
|
34
34
|
"axios": "^1.3.6",
|
|
35
35
|
"cors": "^2.8.5",
|
|
36
36
|
"express": "^4.18.2",
|
|
37
37
|
"lodash.merge": "^4.6.2",
|
|
38
|
-
"pathfinding": "^0.4.18",
|
|
39
38
|
"pretty-error": "^4.0.0",
|
|
40
39
|
"rxjs": "7.8.0",
|
|
41
40
|
"sat": "^0.9.0",
|
|
42
|
-
"simple-room": "^
|
|
41
|
+
"simple-room": "^3.1.1",
|
|
43
42
|
"socket.io": "^4.6.1"
|
|
44
43
|
},
|
|
45
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "afba6593c6d060c46a67be465bef2abd401d4c8d",
|
|
46
45
|
"devDependencies": {
|
|
47
|
-
"@rpgjs/compiler": "^4.
|
|
46
|
+
"@rpgjs/compiler": "^4.2.0",
|
|
48
47
|
"typescript": "^5.0.4"
|
|
49
48
|
},
|
|
50
49
|
"alias": {
|
package/src/Game/EventManager.ts
CHANGED
|
@@ -105,7 +105,7 @@ export class EventManager {
|
|
|
105
105
|
for (let playerId in map.players) {
|
|
106
106
|
if (object.id == playerId) continue
|
|
107
107
|
const otherPlayer = map.players[playerId]
|
|
108
|
-
if (otherPlayer.
|
|
108
|
+
if (otherPlayer.followingId == object.id) {
|
|
109
109
|
otherPlayer.cameraFollow(otherPlayer)
|
|
110
110
|
}
|
|
111
111
|
}
|
package/src/Game/Map.ts
CHANGED
|
@@ -90,6 +90,21 @@ export class RpgMap extends RpgCommonMap {
|
|
|
90
90
|
return Object.keys(this.players).length
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
+
$additionalEmitProperties(player: RpgPlayer) {
|
|
94
|
+
const lastFramePositions: {
|
|
95
|
+
frame: number
|
|
96
|
+
position: unknown
|
|
97
|
+
} | undefined = player['_lastFramePositions']
|
|
98
|
+
let pos
|
|
99
|
+
let lastFrame
|
|
100
|
+
if (lastFramePositions) {
|
|
101
|
+
pos = lastFramePositions.position
|
|
102
|
+
lastFrame = lastFramePositions.frame
|
|
103
|
+
}
|
|
104
|
+
const data = { frame: lastFrame, pos }
|
|
105
|
+
return data
|
|
106
|
+
}
|
|
107
|
+
|
|
93
108
|
async load() {
|
|
94
109
|
if (RpgCommonMap.buffer.has(this.id)) {
|
|
95
110
|
return
|
|
@@ -390,7 +405,6 @@ export class RpgMap extends RpgCommonMap {
|
|
|
390
405
|
const ev = this.game.addEvent<RpgEvent>(event)
|
|
391
406
|
const _shape = shape || this.getEventShape(ev.name)
|
|
392
407
|
ev.map = this.id
|
|
393
|
-
ev.server = this._server
|
|
394
408
|
ev.width = event.width || this.tileWidth
|
|
395
409
|
ev.height = event.height || this.tileHeight
|
|
396
410
|
if (_shape && _shape.properties) ev.properties = _shape.properties
|
package/src/MatchMaker.ts
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
import axios from 'axios'
|
|
3
3
|
import { Utils } from '@rpgjs/common'
|
|
4
4
|
import { RpgPlayer } from './Player/Player'
|
|
5
|
+
import { inject } from './inject'
|
|
6
|
+
import { RpgServerEngine } from './server'
|
|
5
7
|
|
|
6
8
|
interface MatchMakerPayload {
|
|
7
9
|
playerId: string
|
|
@@ -32,7 +34,7 @@ export class RpgMatchMaker {
|
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
async getServer(player: RpgPlayer): Promise<MatchMakerResponse | null> {
|
|
35
|
-
const currentServerId =
|
|
37
|
+
const currentServerId = inject(RpgServerEngine).serverId
|
|
36
38
|
const payload: MatchMakerPayload = {
|
|
37
39
|
playerId: player.id,
|
|
38
40
|
mapName: player.map
|
package/src/Player/Player.ts
CHANGED
|
@@ -37,6 +37,7 @@ import { CameraOptions, PositionXY_OptionalZ, SocketEvents, SocketMethods, Layou
|
|
|
37
37
|
import { ComponentManager } from './ComponentManager'
|
|
38
38
|
import { Subject } from 'rxjs'
|
|
39
39
|
import { EventManager, EventMode } from '../Game/EventManager'
|
|
40
|
+
import { inject } from '../inject'
|
|
40
41
|
|
|
41
42
|
const {
|
|
42
43
|
isPromise,
|
|
@@ -104,7 +105,7 @@ const playerSchemas = {
|
|
|
104
105
|
sp: Number,
|
|
105
106
|
gold: Number,
|
|
106
107
|
level: {
|
|
107
|
-
$effects: ['$this.expForNextlevel']
|
|
108
|
+
$effects: ['$this.expForNextlevel', '$this.param']
|
|
108
109
|
},
|
|
109
110
|
expForNextlevel: {
|
|
110
111
|
$permanent: false
|
|
@@ -200,6 +201,7 @@ export class RpgPlayer extends RpgCommonPlayer {
|
|
|
200
201
|
* ```
|
|
201
202
|
* @title Server Instance
|
|
202
203
|
* @prop {RpgServerEngine} player.server
|
|
204
|
+
* @deprecated Use `inject(RpgServerEngine)` instead. Will be removed in v5
|
|
203
205
|
* @memberof Player
|
|
204
206
|
* */
|
|
205
207
|
public server: RpgServerEngine
|
|
@@ -208,7 +210,7 @@ export class RpgPlayer extends RpgCommonPlayer {
|
|
|
208
210
|
/** @internal */
|
|
209
211
|
public tmpPositions: Position | string | null = null
|
|
210
212
|
public otherPossessedPlayer: RpgPlayer | RpgEvent | null = null
|
|
211
|
-
public
|
|
213
|
+
public followingId: string | null = null
|
|
212
214
|
|
|
213
215
|
// Indicates whether to load data with load(). In this case, hooks are not triggered.
|
|
214
216
|
private _dataLoading: boolean = false
|
|
@@ -218,10 +220,10 @@ export class RpgPlayer extends RpgCommonPlayer {
|
|
|
218
220
|
position: Position
|
|
219
221
|
} | undefined
|
|
220
222
|
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
223
|
+
/**
|
|
224
|
+
* @deprecated Use `inject(RpgCommonGame)` instead. Will be removed in v5
|
|
225
|
+
*/
|
|
226
|
+
public gameEngine: RpgCommonGame = inject(RpgCommonGame)
|
|
225
227
|
|
|
226
228
|
// redefine type (as RpgPlayer)
|
|
227
229
|
get otherPlayersCollision(): RpgPlayer[] {
|
|
@@ -238,8 +240,14 @@ export class RpgPlayer extends RpgCommonPlayer {
|
|
|
238
240
|
// a flag that lets the client know if the event is suppressed. The client can, for example, end animations before completely deleting the object (client side).
|
|
239
241
|
deleted: boolean = false
|
|
240
242
|
|
|
243
|
+
constructor(public playerId: string) {
|
|
244
|
+
super(inject(RpgCommonGame), playerId)
|
|
245
|
+
this.initialize()
|
|
246
|
+
}
|
|
247
|
+
|
|
241
248
|
/** @internal */
|
|
242
249
|
initialize() {
|
|
250
|
+
this.server = inject(RpgServerEngine)
|
|
243
251
|
this.expCurve = {
|
|
244
252
|
basis: 30,
|
|
245
253
|
extra: 20,
|
|
@@ -597,7 +605,7 @@ export class RpgPlayer extends RpgCommonPlayer {
|
|
|
597
605
|
}
|
|
598
606
|
|
|
599
607
|
toJSON() {
|
|
600
|
-
const { permanentObject } = Room.
|
|
608
|
+
const { permanentObject } = Room.compileSchema(this.schema)
|
|
601
609
|
const snapshot = Room.extractObjectOfRoom(this, permanentObject)
|
|
602
610
|
snapshot.variables = [...this.variables]
|
|
603
611
|
return snapshot
|
|
@@ -769,10 +777,10 @@ export class RpgPlayer extends RpgCommonPlayer {
|
|
|
769
777
|
*/
|
|
770
778
|
cameraFollow(otherPlayer: RpgPlayer | RpgEvent, options: CameraOptions = {}) {
|
|
771
779
|
if (otherPlayer.id == this.id) {
|
|
772
|
-
this.
|
|
780
|
+
this.followingId = null
|
|
773
781
|
}
|
|
774
782
|
else {
|
|
775
|
-
this.
|
|
783
|
+
this.followingId = otherPlayer.id
|
|
776
784
|
}
|
|
777
785
|
this.emit(SocketEvents.CallMethod, {
|
|
778
786
|
objectId: this.playerId,
|
|
@@ -1004,8 +1012,8 @@ export class RpgEvent extends RpgPlayer {
|
|
|
1004
1012
|
mode: EventMode
|
|
1005
1013
|
playerRelated: RpgPlayer | null = null
|
|
1006
1014
|
|
|
1007
|
-
constructor(
|
|
1008
|
-
super(
|
|
1015
|
+
constructor(playerId: string) {
|
|
1016
|
+
super(playerId)
|
|
1009
1017
|
}
|
|
1010
1018
|
|
|
1011
1019
|
async execMethod(methodName: string, methodData = []) {
|
package/src/RpgServer.ts
CHANGED
|
@@ -25,6 +25,36 @@ export interface RpgServerEngineHooks {
|
|
|
25
25
|
* @memberof RpgServerEngineHooks
|
|
26
26
|
*/
|
|
27
27
|
onStep?: (server: RpgServerEngine) => any
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Flexible authentication function for RPGJS.
|
|
31
|
+
*
|
|
32
|
+
* This `auth` function is an integral part of the connection process in RPGJS, designed to be agnostic
|
|
33
|
+
* and adaptable to various authentication systems. It is not tied to any specific database or third-party
|
|
34
|
+
* authentication service, allowing developers to implement custom logic suited to their game's requirements.
|
|
35
|
+
* This flexibility is particularly useful in MMORPGs where diverse and robust authentication mechanisms may be needed.
|
|
36
|
+
*
|
|
37
|
+
* The function is called during the player connection phase and should handle the verification of player credentials.
|
|
38
|
+
* The implementation can vary widely based on the chosen authentication method (e.g., JWT tokens, OAuth, custom tokens).
|
|
39
|
+
*
|
|
40
|
+
* @param {RpgServerEngine} server - The instance of the game server.
|
|
41
|
+
* @param {SocketIO.Socket} socket - The socket instance for the connecting player. This can be used to access client-sent data, like tokens or other credentials.
|
|
42
|
+
* @returns {Promise<string> | string} The function should return a promise that resolves to a player's unique identifier (e.g., user ID) if authentication is successful, or a string representing the user's ID. Alternatively, it can throw an error if authentication fails.
|
|
43
|
+
* @throws {string} Throwing an error will prevent the player from connecting, signifying a failed authentication attempt.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```ts
|
|
47
|
+
* // Example of a simple token-based authentication in main/server.ts
|
|
48
|
+
* const server: RpgServerEngineHooks = {
|
|
49
|
+
* auth(server, socket) {
|
|
50
|
+
* const token = socket.handshake.query.token;
|
|
51
|
+
* // Implement your authentication logic here
|
|
52
|
+
* // Return user ID or throw an error if authentication fails
|
|
53
|
+
* }
|
|
54
|
+
* };
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
auth?: (server: RpgServerEngine, socket: any) => Promise<string> | string | never
|
|
28
58
|
}
|
|
29
59
|
|
|
30
60
|
export interface RpgPlayerHooks {
|
|
@@ -239,7 +269,6 @@ export interface RpgServer {
|
|
|
239
269
|
player?: string[],
|
|
240
270
|
engine?: string[]
|
|
241
271
|
}
|
|
242
|
-
|
|
243
272
|
/**
|
|
244
273
|
* Adding sub-modules
|
|
245
274
|
*
|
package/src/Scenes/Map.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { RpgMap } from '../Game/Map'
|
|
|
7
7
|
import { RpgWorldMaps, WorldMap } from '../Game/WorldMaps'
|
|
8
8
|
import { RpgEvent, RpgPlayer } from '../Player/Player'
|
|
9
9
|
import { RpgServerEngine } from '../server'
|
|
10
|
+
import { inject } from '../inject'
|
|
10
11
|
|
|
11
12
|
export interface RpgClassMap<T> {
|
|
12
13
|
id?: string
|
|
@@ -28,8 +29,9 @@ export class SceneMap {
|
|
|
28
29
|
[mapId: string]: RpgClassMap<RpgMap>
|
|
29
30
|
} = {}
|
|
30
31
|
private worldMaps: Map<string, RpgWorldMaps> = new Map()
|
|
32
|
+
private server: RpgServerEngine = inject(RpgServerEngine)
|
|
31
33
|
|
|
32
|
-
constructor(sceneMapObject: SceneMapObject
|
|
34
|
+
constructor(sceneMapObject: SceneMapObject) {
|
|
33
35
|
const { maps, worldMaps, events } = sceneMapObject
|
|
34
36
|
this.maps = maps
|
|
35
37
|
this.mapsById = {}
|
|
@@ -252,7 +254,9 @@ export class SceneMap {
|
|
|
252
254
|
return null
|
|
253
255
|
}
|
|
254
256
|
|
|
255
|
-
player.emit('preLoadScene',
|
|
257
|
+
player.emit('preLoadScene', {
|
|
258
|
+
id: mapId
|
|
259
|
+
})
|
|
256
260
|
|
|
257
261
|
player.prevMap = player.map
|
|
258
262
|
|
package/src/entry-point.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { RpgCommonGame, HookServer, loadModules, ModuleType, GameSide, RpgPlugin } from '@rpgjs/common'
|
|
1
|
+
import { RpgCommonGame, HookServer, loadModules, ModuleType, GameSide, RpgPlugin, InjectContext } from '@rpgjs/common'
|
|
2
2
|
import { RpgServerEngine } from './server'
|
|
3
3
|
import { RpgPlayer } from './Player/Player'
|
|
4
4
|
import { RpgMatchMaker } from './MatchMaker'
|
|
5
|
+
import { inject, setInject } from './inject'
|
|
5
6
|
|
|
6
7
|
interface RpgServerEntryPointOptions {
|
|
7
8
|
/**
|
|
@@ -39,7 +40,10 @@ interface RpgServerEntryPointOptions {
|
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
export default async function (modules: ModuleType[], options: RpgServerEntryPointOptions): Promise<RpgServerEngine> {
|
|
42
|
-
const
|
|
43
|
+
const context = new InjectContext()
|
|
44
|
+
setInject(context)
|
|
45
|
+
|
|
46
|
+
inject(RpgCommonGame, [GameSide.Server])
|
|
43
47
|
|
|
44
48
|
if (!options.globalConfig) options.globalConfig = {}
|
|
45
49
|
|
|
@@ -59,7 +63,8 @@ export default async function (modules: ModuleType[], options: RpgServerEntryPoi
|
|
|
59
63
|
|
|
60
64
|
const relationsEngine = {
|
|
61
65
|
onStart: HookServer.Start,
|
|
62
|
-
onStep: HookServer.Step
|
|
66
|
+
onStep: HookServer.Step,
|
|
67
|
+
auth: HookServer.Auth
|
|
63
68
|
}
|
|
64
69
|
|
|
65
70
|
const { playerProps } = await loadModules(modules, {
|
|
@@ -91,14 +96,16 @@ export default async function (modules: ModuleType[], options: RpgServerEntryPoi
|
|
|
91
96
|
return mod
|
|
92
97
|
})
|
|
93
98
|
|
|
94
|
-
const serverEngine =
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
99
|
+
const serverEngine = inject(RpgServerEngine, [
|
|
100
|
+
options.io, {
|
|
101
|
+
debug: {},
|
|
102
|
+
updateRate: 10,
|
|
103
|
+
stepRate: 60,
|
|
104
|
+
timeoutInterval: 0,
|
|
105
|
+
countConnections: false,
|
|
106
|
+
playerProps,
|
|
107
|
+
...options
|
|
108
|
+
}
|
|
109
|
+
])
|
|
103
110
|
return serverEngine
|
|
104
111
|
}
|