UNPKG

rock-mod

Version:

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

82 lines (81 loc) 3.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CCMPPlayersManager = void 0; const CCMPEntitiesManager_1 = require("../entity/CCMPEntitiesManager"); const CCMPPlayer_1 = require("./CCMPPlayer"); const types_1 = require("../../../net/common/events/types"); const RockMod_1 = require("../../../RockMod"); class CCMPPlayersManager extends CCMPEntitiesManager_1.CCMPEntitiesManager { 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({ playerConnected: (ccmpPlayer) => { const player = new CCMPPlayer_1.CCMPPlayer({ ccmpPlayer }); this.registerBaseObject(player); net.events.emitInternal(types_1.ServerInternalEventName.PlayerConnected, player); }, playerDisconnected: (ccmpPlayer) => { const player = this.getByID(ccmpPlayer.id); net.events.emitInternal(types_1.ServerInternalEventName.PlayerQuit, player, "disconnect", ""); this.unregisterBaseObject(player); net.events.emitInternal(types_1.ServerInternalEventName.PlayerDisconnected, player); }, playerDimensionChange: (ccmpPlayer, oldDim, newDim) => { const player = this.findByID(ccmpPlayer.id); if (!player) return; net.events.emitInternal(types_1.ServerInternalEventName.PlayerDimensionChange, player, oldDim, newDim); }, playerEnterVehicle: (ccmpPlayer, ccmpVehicle, seat) => { const player = this.findByID(ccmpPlayer.id); const vehicle = RockMod_1.RockMod.instance.vehicles.findByID(ccmpVehicle.id); if (!player || !vehicle) return; net.events.emitInternal(types_1.ServerInternalEventName.PlayerEnterVehicle, player, vehicle, seat); }, playerExitVehicle: (ccmpPlayer, ccmpVehicle) => { const player = this.findByID(ccmpPlayer.id); const vehicle = RockMod_1.RockMod.instance.vehicles.findByID(ccmpVehicle.id); if (!player || !vehicle) return; net.events.emitInternal(types_1.ServerInternalEventName.PlayerExitVehicle, player, vehicle); }, }); } } exports.CCMPPlayersManager = CCMPPlayersManager;