43 lines
1.5 KiB
JavaScript
43 lines
1.5 KiB
JavaScript
import { ActionFormData, ModalFormData } from '@minecraft/server-ui';
|
|
import { structureCollection } from './StructureCollection';
|
|
|
|
export class MenuFormBuilder {
|
|
static menuTitle = '§l§2StrucTool §8Menu';
|
|
|
|
static buildAllInstanceName() {
|
|
const allInstanceNameForm = new ActionFormData()
|
|
.title(this.menuTitle)
|
|
.body('Select an instance:');
|
|
structureCollection.getInstanceNames().forEach(instanceName => {
|
|
allInstanceNameForm.button(`§2${instanceName}`);
|
|
});
|
|
allInstanceNameForm.button('Create New Instance');
|
|
return allInstanceNameForm;
|
|
}
|
|
|
|
static buildNewInstance() {
|
|
return new ModalFormData()
|
|
.title(this.menuTitle)
|
|
.textField('Enter a name for the new instance:', 'example_instance')
|
|
.submitButton('Submit');
|
|
}
|
|
|
|
static buildAllStructures() {
|
|
const allStructuresForm = new ActionFormData()
|
|
.title(this.menuTitle)
|
|
.body('Select a structure:');
|
|
structureCollection.getWorldStructureIds().forEach(structureId => {
|
|
const structureName = structureId.replace('mystructure:', '');
|
|
allStructuresForm.button(`§2${structureName}`);
|
|
});
|
|
allStructuresForm.button('Other');
|
|
return allStructuresForm;
|
|
}
|
|
|
|
static buildOtherStructure() {
|
|
return new ModalFormData()
|
|
.title(this.menuTitle)
|
|
.textField('Enter the Structure ID:', 'example_structure')
|
|
.submitButton('Submit');
|
|
}
|
|
} |