From 29859d0596aa373c1410552150a4510e52769951 Mon Sep 17 00:00:00 2001 From: Frost-ZX <30585462+Frost-ZX@users.noreply.github.com> Date: Sun, 4 Sep 2022 22:28:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B0=9D=E8=AF=95=E6=B3=A8=E5=86=8C?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kubejs/startup_scripts/wheat_plus.js | 62 ++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/kubejs/startup_scripts/wheat_plus.js b/kubejs/startup_scripts/wheat_plus.js index 21975ac..c43c917 100644 --- a/kubejs/startup_scripts/wheat_plus.js +++ b/kubejs/startup_scripts/wheat_plus.js @@ -364,3 +364,65 @@ onEvent('block.registry', (event) => { // console.info(`${LOG_PREFIX} 注册物品 - 开始`); // console.info(`${LOG_PREFIX} 注册物品 - 完成`); // }); + +// 注册命令 example +// https://github.com/KubeJS-Mods/KubeJS/blob/1.18/main/common/src/main/java/dev/latvian/mods/kubejs/command/CommandRegistryEventJS.java +onEvent('command.registry', (event) => { + + console.info(`${LOG_PREFIX} 注册命令 - example - 开始`); + + const { commands: Commands, arguments: Arguments } = event; + + event.register( + Commands.literal('wp-example').then( + Commands.literal('add').then( + Commands.argument('name', Arguments.STRING.create(event)) + .executes((ctx) => { + + const arName = Arguments.STRING.getResult(ctx, 'name'); + const msg = `Example ${arName} added.`; + + ctx.source.sendSuccess(msg, true); + + return 1; + + }) + ) + ).then( + Commands.literal('edit').then( + Commands.argument('name', Arguments.STRING.create(event)).then( + Commands.argument('property', Arguments.STRING.create(event)) + .suggests((ctx, builder) => { + return ctx.source.suggest(['test-1', 'test-2'], builder); + }).executes((ctx) => { + + const arName = Arguments.STRING.getResult(ctx, 'name'); + const arProperty = Arguments.STRING.getResult(ctx, 'property'); + const msg = `Example property ${arProperty} for ${arName} has been edited.` + + ctx.source.sendSuccess(msg, true); + + return 1; + + }) + ) + ) + ).then( + Commands.literal('remove').then( + Commands.argument('name', Arguments.STRING.create(event)) + .executes((ctx) => { + + const arName = Arguments.STRING.getResult(ctx, 'name'); + + ctx.source.sendSuccess(`Example ${arName} removed.`, true); + + return 1; + + }) + ) + ) + ); + + console.info(`${LOG_PREFIX} 注册命令 - example - 完成`); + +});