Context Menu
lib.registerContext
Used for registering a context menu.
id:
string
Unique menu identifier, will be used to open the menu.
title:
string
Title display in the menu; has markdown support.
menu?:
string
Menu identifier - if defined there will be a back arrow next to the menu title that will take you to the menu you defined.
canClose:
boolean
If set to false the user won't be able to exit the menu without pressing one of the buttons.
onExit?:
function
Function that will be ran when the user closes their context menu with ESC.
onBack?:
function
Function that will be ran when the user presses the back button to return to a previous menu.
options:
table
(object
orarray
)item:
key
(string
) ortable
(object
)title?:
string
If not using keys then sets the title for the button; has markdown support.
disabled?:
boolean
Grays out the button and makes it unclickable.
menu?:
string
Menu identifier that the button will take you to, when defined an arrow.
onSelect:
function
Function that's ran when the button is clicked.
icon?:
string
FontAwesome icon that will be displayed on the left side, works the same as notification and textui icons.
Also supports image urls, png and webp files but are not recommend to use over font awesome icons.
iconColor?:
string
Colour of the displayed icon.
progress?:
number
Adds a progress bar filled to this percentage
colorScheme?:
string
Sets the color scheme of the progress bar. Current options can be found here:
For example:
blue
orteal
arrow?:
boolean
Shows an arrow on the right side like
menu
does, useful when you are opening a menu from an event. Can be set to false to hide it.
description?:
string
Description that will appear under the button title that is defined as a key; has markdown support.
image?:
string
Url to an image that will be displayed in the button's metadata.
metadata?:
string[]
orobject
orarray
Information that will display on the side upon hovering a button.
label:
string
value:
any
progress?:
number
Display a progress bar in the metadata.
event?:
string
Event that the button is going to trigger.
serverEvent?:
string
Server event that the button is going to trigger.
args?:
any
Arguments that will be sent to the events or onSelect function.
You can register as many context menus in one lib.registerContext
function as you'd like.
The menu can be either in the order you write it in, or sorted alphabetically. To sort the menu alphabetically the buttons (and/or metadata) need to be defined as keys, otherwise not using keys and instead using tables will make the menu be in the order you define it as.
lib.showContext
Opens a registered context menu by it's id.
id:
string
lib.hideContext
Hides any currently visible context menu.
onExit:
boolean
Defines whether the onExit function for the menu should be ran or not.
lib.getOpenContextMenu
Returns the id of the currently open context menu.
If no context menu is open returns nil
.
Usage Examplee
First we register the menu with our specified options then we call the show function in the command.
Then we can also register our second menu called other_menu
And the event that we are going to run from the some_menu
menu, which is going to open another menu.
Lastly we register a test command to show the some_menu
menu.
The data from the args
table in the menu is passed as a first argument to the event you register.
Using this event we also register a new context menu with it's own options.
By defining a menu
param to be the id of the first menu we can get the back arrow button next to the menu title that will take us back.
Last updated