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)

null | default

Returns

NodemodMsg

Overrides

EventEmitter.constructor

Properties

util

private util: null | default

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

Utility service for entity operations

state

private state: null | MessageState

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' }
]
});