[NodeMod Core]
/ .. / Menu
Class: Menu
Defined in: src/core/menu.ts:114
Represents a menu that can be displayed to players with navigable items and submenus.
Example
const menu = new Menu({
title\: 'Player Actions',
items\: [
{
name\: 'Kick Player',
handler\: (client) => {
console.log(`${client.name} selected kick player`);
}
},
{
name\: 'Ban Player',
handler\: (client) => {
console.log(`${client.name} selected ban player`);
}
}
]
});
Constructors
Constructor
new Menu(
options
):Menu
Defined in: src/core/menu.ts:145
Creates a new Menu instance.
Parameters
options
Menu configuration options
Returns
Menu
Properties
title
title:
string
Defined in: src/core/menu.ts:116
Menu title displayed at the top
items
items:
MenuItem
[]
Defined in: src/core/menu.ts:118
Array of menu items
entity?
optional
entity:Entity
Defined in: src/core/menu.ts:120
Specific entity this menu is for (undefined = all players)
time
time:
number
Defined in: src/core/menu.ts:122
Auto-close timeout in seconds (-1 for no timeout)
onTimeout()?
optional
onTimeout: (client
) =>void
Defined in: src/core/menu.ts:124
Callback when menu times out
Parameters
client
Returns
void
onExit()?
optional
onExit: (client
) =>void
Defined in: src/core/menu.ts:126
Callback when menu is exited
Parameters
client
Returns
void
exitText
exitText:
string
Defined in: src/core/menu.ts:128
Text for exit button
backText
backText:
string
Defined in: src/core/menu.ts:130
Text for back button
nextText
nextText:
string
Defined in: src/core/menu.ts:132
Text for next page button
prevText
prevText:
string
Defined in: src/core/menu.ts:134
Text for previous page button
formatters
formatters:
Required
<MenuFormatters
>
Defined in: src/core/menu.ts:136
Formatting functions for menu display
parent?
optional
parent:Menu
Defined in: src/core/menu.ts:138
Parent menu for navigation hierarchy
template
static
template:object
Defined in: src/core/menu.ts:177
Static template methods for creating common menu types.
simple()
simple: (
title
,items
,handlers?
) =>Menu
Creates a simple menu with string items and optional handlers.
Parameters
title
string
Menu title
items
string
[]
Array of item names
handlers?
Optional array of handlers (must match items length)
Returns
Menu
Configured Menu instance
Example
const menu = Menu.template.simple(
'Choose Action',
['Option 1', 'Option 2', 'Option 3'],
[(client) => console.log('Option 1'), (client) => console.log('Option 2')]
);
yesNo()
yesNo: (
title
,onYes
,onNo
) =>Menu
Creates a Yes/No confirmation menu.
Parameters
title
string
Menu title/question
onYes
Handler for Yes selection
onNo
Handler for No selection
Returns
Menu
Configured Menu instance
Example
const menu = Menu.template.yesNo(
'Are you sure?',
(client) => console.log('User confirmed'),
(client) => console.log('User declined')
);
confirm()
confirm: (
message
,onConfirm
,onCancel?
) =>Menu
Creates a confirmation menu with Confirm/Cancel options.
Parameters
message
string
Confirmation message
onConfirm
Handler for Confirm selection
onCancel?
Optional handler for Cancel selection
Returns
Menu
Configured Menu instance
Example
const menu = Menu.template.confirm(
'Delete all data?',
(client) => deleteData(),
(client) => console.log('Cancelled')
);