UNPKG

node-insim

Version:

An InSim library for NodeJS with TypeScript support

75 lines (74 loc) 2.3 kB
import { __decorate } from "tslib"; import { byte, getFormat, stringNull } from '../decorators'; import { InSimError } from '../errors'; import { unpack } from '../lfspack'; import { Packet } from './base'; import { PacketType } from './enums'; /** * Admin Command Report - a user typed an admin command - variable size */ export class IS_ACR extends Packet { constructor() { super(...arguments); /** 12, 16, 20... 72 depending on Text */ this.Size = 12; this.Type = PacketType.ISP_ACR; this.ReqI = 0; this.Zero = 0; /** Connection's unique id (0 = host) */ this.UCID = 0; /** Set if user is an admin */ this.Admin = 0; /** 1 - processed / 2 - rejected / 3 - unknown command */ this.Result = 0; this.Sp3 = 0; /** 4, 8, 12... 64 characters - last byte is zero */ this.Text = ''; } unpack(buffer) { const data = unpack(`<${getFormat(this, 'Size')}`, buffer.buffer); if (!data || data.length === 0) { throw new InSimError('IS_ACR - Unpacked no data from buffer'); } const size = data[0] * this.SIZE_MULTIPLIER; const textLength = size - IS_ACR.FIXED_DATA_SIZE; super.unpack(buffer, { Text: `${textLength}s`, }); return this; } } IS_ACR.FIXED_DATA_SIZE = 8; __decorate([ byte() ], IS_ACR.prototype, "Size", void 0); __decorate([ byte() ], IS_ACR.prototype, "Type", void 0); __decorate([ byte() ], IS_ACR.prototype, "ReqI", void 0); __decorate([ byte() ], IS_ACR.prototype, "Zero", void 0); __decorate([ byte() ], IS_ACR.prototype, "UCID", void 0); __decorate([ byte() ], IS_ACR.prototype, "Admin", void 0); __decorate([ byte() ], IS_ACR.prototype, "Result", void 0); __decorate([ byte() ], IS_ACR.prototype, "Sp3", void 0); __decorate([ stringNull(64) ], IS_ACR.prototype, "Text", void 0); export var AdminCommandResult; (function (AdminCommandResult) { AdminCommandResult[AdminCommandResult["PROCESSED"] = 1] = "PROCESSED"; AdminCommandResult[AdminCommandResult["REJECTED"] = 2] = "REJECTED"; AdminCommandResult[AdminCommandResult["UNKNOWN_COMMAND"] = 3] = "UNKNOWN_COMMAND"; })(AdminCommandResult || (AdminCommandResult = {}));