rock-mod
Version:
Rock-Mod is a powerful framework designed for creating and managing mods for Grand Theft Auto (GTA) games.
44 lines (43 loc) • 1.47 kB
JavaScript
import { RageEntitiesManager } from "../entity/RageEntitiesManager";
import { RagePlayer } from "./RagePlayer";
import { ClientInternalEventName } from "@RockMod/client/net/common/events/types";
export class RagePlayersManager extends 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;
}
_init(net) {
net.events.onInternal({
playerJoin: (mpPlayer) => {
mpPlayer.isExists = () => mp.players.exists(mpPlayer);
const player = new RagePlayer({
mpEntity: mpPlayer,
});
this.registerBaseObject(player);
net.events.emitInternal(ClientInternalEventName.PlayerConnected, player);
},
playerQuit: (mpPlayer) => {
const player = this.getByID(mpPlayer.id);
this.unregisterBaseObject(player);
net.events.emitInternal(ClientInternalEventName.PlayerDisconnected, player);
},
});
}
}