Это простой фреймворк для RAGE MP основанный на typescript и decorators
npm i rager --save
Создаем контроллер
import {MyService} from "./MyService";
import {MpController, MpCommand, CurrentPlayer, Player, MpEvent} from "rager";
@MpController()
export class Controller {
constructor(private service: MyService){}
@MpEvent('playerJoin')
startGame(@CurrentPlayer()player: Player){
player.health = 100;
}
@MpCommand('command1')
callCommand(@CurrentPlayer() player: Player){
this.service.editUserSession(player);
}
}
Создаем сервис по необходимости, который будет инжектиться в контроллер (для этого придется установить зависимость npm install typedi --save
)
import {Service} from "typedi";
import {Player} from 'rager'
@Service()
export class MyService {
editUserSession(player: Player){
player.clientSession.hello = Math.random();
}
}
Билдим
import {build} from 'rager'
import {Controller} from "./Controller";
build([Controller])
Функция должена быть синхронной!!
export const MyDecoratorPlayer = createParamDecorator((player, args) => {
return player;
})