UNPKG

rock-mod

Version:

Rock-Mod is a powerful framework designed for creating and managing mods for Grand Theft Auto (GTA) games.

63 lines (62 loc) 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RagePlayersManager = void 0; const RageEntitiesManager_1 = require("../entity/RageEntitiesManager"); const RagePlayer_1 = require("./RagePlayer"); const types_1 = require("../../../net/common/events/types"); class RagePlayersManager extends RageEntitiesManager_1.RageEntitiesManager { constructor(net) { super({ baseObjectsType: "player", }); this._init(net); } getByName(name) { const player = this.findByName(name); if (!player) { throw new Error(`Player with name ${name} not found`); } return player; } findByName(name) { for (const player of this.iterator.all()) { if (player.name === name) { return player; } } return null; } getBySocialClub(socialClub) { const player = this.findBySocialClub(socialClub); if (!player) { throw new Error(`Player with socialClub ${socialClub} not found`); } return player; } findBySocialClub(socialClub) { for (const player of this.iterator.all()) { if (player.socialClub === socialClub) { return player; } } return null; } _init(net) { net.events.onInternal({ playerJoin: (mpPlayer) => { mpPlayer.isExists = () => mp.players.exists(mpPlayer); const player = new RagePlayer_1.RagePlayer({ mpEntity: mpPlayer, }); this.registerBaseObject(player); net.events.emitInternal(types_1.ServerInternalEventName.PlayerConnected, player); }, playerQuit: (mpPlayer) => { const player = this.getByID(mpPlayer.id); this.unregisterBaseObject(player); net.events.emitInternal(types_1.ServerInternalEventName.PlayerDisconnected, player); }, }); } } exports.RagePlayersManager = RagePlayersManager;