Skip to content

Commit 0670e65

Browse files
committed
feat!: Bumping to stable 2.0.0 @minecraft/server-ui
1 parent 806b508 commit 0670e65

File tree

3 files changed

+94
-48
lines changed

3 files changed

+94
-48
lines changed

package-lock.json

Lines changed: 33 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
"types": "./dist/MinecraftEventDrivenForm.d.ts",
77
"private": false,
88
"devDependencies": {
9-
"@mine-scripters/minecraft-script-dialogue": "^1.2.0",
10-
"@minecraft/server": "^1.7.0",
11-
"@minecraft/server-ui": "^1.3.0",
9+
"@mine-scripters/minecraft-script-dialogue": "^2.0.0",
10+
"@minecraft/server": "^2.0.0",
11+
"@minecraft/server-ui": "^2.0.0",
1212
"@rollup/plugin-node-resolve": "^16.0.1",
1313
"@rollup/plugin-typescript": "^12.1.2",
1414
"@typescript-eslint/eslint-plugin": "^8.26.1",
@@ -23,7 +23,7 @@
2323
"typescript": "^5.8.2"
2424
},
2525
"dependencies": {
26-
"@mine-scripters/minecraft-event-driven-form-base": "2.1.2"
26+
"@mine-scripters/minecraft-event-driven-form-base": "2.2.0"
2727
},
2828
"scripts": {
2929
"build": "rollup -c && dts-bundle-generator --external-inlines '@mine-scripters/minecraft-event-driven-form-base' -o dist/MinecraftEventDrivenForm.d.ts src/index.ts",
@@ -36,9 +36,9 @@
3636
"lint:fix": "eslint --fix src"
3737
},
3838
"peerDependencies": {
39-
"@mine-scripters/minecraft-script-dialogue": "^1.2.0",
40-
"@minecraft/server": "^1.7.0 || ^1.8.0 || ^1.9.0 || ^1.10.0 || ^1.11.0 || ^1.12.0 || ^1.13.0 || ^1.14.0 || ^1.15.0 || ^1.16.0 || ^1.17.0 ",
41-
"@minecraft/server-ui": "^1.3.0"
39+
"@mine-scripters/minecraft-script-dialogue": "^2.0.0",
40+
"@minecraft/server": "^2.0.0",
41+
"@minecraft/server-ui": "^2.0.0"
4242
},
4343
"files": [
4444
"package.json",

src/FormLoop.ts

Lines changed: 54 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import {
66
FormEventProducer,
77
FormHub,
88
InputForm,
9+
MultiButtonElementButton,
910
MultiButtonForm,
1011
NormalizedTextContent,
1112
triggerEvent,
@@ -78,6 +79,14 @@ const configureFormMultiButton = (form: MultiButtonForm, args: FormArguments): M
7879
const element = form.elements[i];
7980
if (element.type === 'button') {
8081
dialogue = dialogue.addButton(i.toString(), toRawMessage(args.normalize(element.text)), element.icon);
82+
} else if (element.type === 'divider') {
83+
dialogue = dialogue.addDivider();
84+
} else if (element.type === 'header') {
85+
dialogue = dialogue.addHeader(toRawMessage(args.normalize(element.text)));
86+
} else if (element.type === 'label') {
87+
dialogue = dialogue.addLabel(toRawMessage(args.normalize(element.text)));
88+
} else {
89+
assertNever(element);
8190
}
8291
}
8392

@@ -119,16 +128,19 @@ const configureFormInput = (form: InputForm, args: FormArguments): InputScriptDi
119128
for (let i = 0; i < form.elements.length; ++i) {
120129
const element = form.elements[i];
121130
if (element.type === 'slider') {
122-
dialogue = dialogue.addElement(
123-
inputSlider(
124-
element.name ?? i.toString(),
125-
toRawMessage(args.normalize(element.text)),
126-
element.min,
127-
element.max,
128-
element.step,
129-
element.defaultValue
130-
)
131+
let input = inputSlider(
132+
element.name ?? i.toString(),
133+
toRawMessage(args.normalize(element.text)),
134+
element.min,
135+
element.max,
136+
element.step,
137+
element.defaultValue
131138
);
139+
if (element.tooltip) {
140+
input = input.withTooltip(toRawMessage(args.normalize(element.tooltip)));
141+
}
142+
143+
dialogue = dialogue.addElement(input);
132144
} else if (element.type === 'dropdown') {
133145
let dropdown = inputDropdown(element.name ?? i.toString(), toRawMessage(args.normalize(element.text)));
134146
if (element.defaultValue) {
@@ -141,20 +153,39 @@ const configureFormInput = (form: InputForm, args: FormArguments): InputScriptDi
141153
dropdown = dropdown.addOption(toRawMessage(args.normalize(option.text)), option.value);
142154
}
143155

156+
if (element.tooltip) {
157+
dropdown = dropdown.withTooltip(toRawMessage(args.normalize(element.tooltip)));
158+
}
159+
144160
dialogue = dialogue.addElement(dropdown);
145161
} else if (element.type === 'text') {
146-
dialogue = dialogue.addElement(
147-
inputText(
148-
element.name ?? i.toString(),
149-
toRawMessage(args.normalize(element.text)),
150-
toRawMessage(args.normalize(element.placeholder)),
151-
element.defaultValue
152-
)
162+
let input = inputText(
163+
element.name ?? i.toString(),
164+
toRawMessage(args.normalize(element.text)),
165+
toRawMessage(args.normalize(element.placeholder)),
166+
element.defaultValue
153167
);
168+
if (element.tooltip) {
169+
input = input.withTooltip(toRawMessage(args.normalize(element.tooltip)));
170+
}
171+
dialogue = dialogue.addElement(input);
154172
} else if (element.type === 'toggle') {
155-
dialogue = dialogue.addElement(
156-
inputToggle(element.name ?? i.toString(), toRawMessage(args.normalize(element.text)), element.defaultValue)
173+
let input = inputToggle(
174+
element.name ?? i.toString(),
175+
toRawMessage(args.normalize(element.text)),
176+
element.defaultValue
157177
);
178+
if (element.tooltip) {
179+
input = input.withTooltip(toRawMessage(args.normalize(element.tooltip)));
180+
}
181+
182+
dialogue = dialogue.addElement(input);
183+
} else if (element.type === 'label') {
184+
dialogue = dialogue.addLabel(toRawMessage(args.normalize(element.text)));
185+
} else if (element.type === 'divider') {
186+
dialogue = dialogue.addDivider();
187+
} else if (element.type === 'header') {
188+
dialogue = dialogue.addHeader(toRawMessage(args.normalize(element.text)));
158189
} else {
159190
assertNever(element);
160191
}
@@ -184,7 +215,11 @@ const renderForm = async (player: Player, formHub: FormHub, form: Form, args: Fo
184215
if (form.type === 'multi-button') {
185216
const multiButtonForm = form as MultiButtonForm;
186217
const selected = parseInt(response.selected);
187-
return new FormEventProducer(formHub, multiButtonForm.elements[selected].action, args);
218+
return new FormEventProducer(
219+
formHub,
220+
(multiButtonForm.elements[selected] as MultiButtonElementButton).action,
221+
args
222+
);
188223
} else if (form.type === 'dual-button') {
189224
const dualButtonForm = form as DualButtonForm;
190225
if (response.selected === 'top') {

0 commit comments

Comments
 (0)