Skip to main content

[NodeMod Core]

/ .. / default

Class: default

Defined in: src/core/msg.ts:238

Message system for handling network communication between server and clients. Provides an event-driven interface for intercepting and sending game messages.

Example​

// Listen for a specific message
nodemodCore.msg.on('ShowMenu', (state) => {
console.log('Menu message intercepted\:', state);
});

// Send a message to all clients
nodemodCore.msg.send({
type\: 'TextMsg',
data\: [
{ type\: 'byte', value\: 4 }, // HUD_PRINTCENTER
{ type\: 'string', value\: 'Welcome to the server!' }
]
});

// Send a message to specific player
nodemodCore.msg.send({
type\: 'ShowMenu',
entity\: player,
data\: [
{ type\: 'short', value\: 1023 },
{ type\: 'char', value\: 30 },
{ type\: 'byte', value\: false },
{ type\: 'string', value\: 'Menu text here' }
]
});

Extends​

  • EventEmitter

Constructors​

Constructor​

new default(utilService): NodemodMsg

Defined in: src/core/msg.ts:251

Creates a new NodemodMsg instance.

Parameters​

utilService​

Optional utility service (can be injected later)

default | null

Returns​

NodemodMsg

Overrides​

EventEmitter.constructor

Properties​

util​

private util: default | null

Defined in: src/core/msg.ts:240

Utility service for entity operations

state​

private state: MessageState | null

Defined in: src/core/msg.ts:242

Current message processing state

registeredEventTypes​

private registeredEventTypes: object

Defined in: src/core/msg.ts:244

Map of registered user message types

Index Signature​

[key: string]: string

writers​

private writers: object

Defined in: src/core/msg.ts:320

Index Signature​

[key: string]: (value) => void

Methods​

setUtilService()​

setUtilService(utilService): void

Defined in: src/core/msg.ts:269

Sets the utility service after construction. Used for dependency injection when service isn't available during construction.

Parameters​

utilService​

default

The utility service instance

Returns​

void

initializeEventHandlers()​

private initializeEventHandlers(): void

Defined in: src/core/msg.ts:273

Returns​

void

writeValue()​

private writeValue(value, type): void

Defined in: src/core/msg.ts:331

Parameters​

value​

any

type​

"string" | "byte" | "char" | "short" | "long" | "angle" | "coord" | "entity"

Returns​

void

register()​

register(eventName, size): number

Defined in: src/core/msg.ts:349

Registers a new user message type with the engine.

Parameters​

eventName​

string

Name of the message type

size​

number = -1

Maximum size of the message (-1 for variable size)

Returns​

number

Message type ID, or MsgTypes.bad if registration failed

getUserMsgId()​

getUserMsgId(name, size): number

Defined in: src/core/msg.ts:367

Gets the message ID for a user message, registering it if necessary.

Parameters​

name​

string

Message name

size​

number = -1

Message size (-1 for variable)

Returns​

number

Message ID

send()​

send(options): void

Defined in: src/core/msg.ts:402

Sends a message to clients.

Parameters​

options​

SendOptions

Message sending options

Returns​

void

Example​

// Send text message to all clients
nodemodCore.msg.send({
type\: 'TextMsg',
dest\: MsgDest.all,
data\: [
{ type\: 'byte', value\: 4 }, // HUD_PRINTCENTER
{ type\: 'string', value\: 'Server announcement!' }
]
});

// Send menu to specific player
nodemodCore.msg.send({
type\: 'ShowMenu',
entity\: player,
data\: [
{ type\: 'short', value\: 511 }, // key mask
{ type\: 'char', value\: 30 }, // display time
{ type\: 'byte', value\: false }, // multi-part
{ type\: 'string', value\: '1. Option 1\n2. Option 2' }
]
});