diff --git a/packs/BP/scripts/commands/PrevLayerCommand.js b/packs/BP/scripts/commands/PrevLayerCommand.js new file mode 100644 index 0000000..1f9d395 --- /dev/null +++ b/packs/BP/scripts/commands/PrevLayerCommand.js @@ -0,0 +1,36 @@ +import { CustomCommandParamType, CustomCommandStatus, system } from '@minecraft/server'; +import { Command } from '../classes/Commands/Command'; +import { findInstance } from '../classes/Commands/lib/findInstance'; +import { commandError } from '../classes/Commands/lib/commandError'; + +export class PrevLayerCommand extends Command { + constructor() { + super({ + name: 'prevlayer', + description: 'construct.commands.prevlayer', + mandatoryParameters: [ + { name: 'instanceName', type: CustomCommandParamType.String } + ], + callback: (source, instanceName) => this.run(source, instanceName) + }); + } + + run(source, instanceName) { + try { + const instance = findInstance(source, instanceName); + if (!instance) return { status: CustomCommandStatus.Failure }; + system.run(() => { + instance.decreaseLayer(); + source.sendMessage({ + rawtext: [{ translate: 'construct.commands.prevlayer.success', + with: [instanceName, String(instance.getLayer())] }] + }); + }); + return { status: CustomCommandStatus.Success }; + } catch (err) { + return commandError(source, err); + } + } +} + +export const prevLayerCommand = new PrevLayerCommand(); diff --git a/packs/BP/scripts/main.js b/packs/BP/scripts/main.js index a7d1a42..9c10cdb 100644 --- a/packs/BP/scripts/main.js +++ b/packs/BP/scripts/main.js @@ -20,6 +20,7 @@ import './commands/MoveCommand'; import './commands/ActiveCommand'; import './commands/LayerCommand'; import './commands/NextLayerCommand'; +import './commands/PrevLayerCommand'; // Other import './classes/BlockInfo'; diff --git a/packs/RP/texts/en_US.lang b/packs/RP/texts/en_US.lang index 51b3c38..5cf2600 100644 --- a/packs/RP/texts/en_US.lang +++ b/packs/RP/texts/en_US.lang @@ -154,3 +154,7 @@ construct.commands.layer.outOfBounds=§cLayer %1 is out of bounds for instance " ## construct:nextlayer construct.commands.nextlayer=Step layer up by one (wraps max to 0). construct.commands.nextlayer.success=§aInstance "%1" advanced to layer %2. + +## construct:prevlayer +construct.commands.prevlayer=Step layer down by one (wraps 0 to max). +construct.commands.prevlayer.success=§aInstance "%1" stepped back to layer %2. diff --git a/packs/RP/texts/zh_CN.lang b/packs/RP/texts/zh_CN.lang index 098ec04..2947e21 100644 --- a/packs/RP/texts/zh_CN.lang +++ b/packs/RP/texts/zh_CN.lang @@ -154,3 +154,7 @@ construct.commands.layer.outOfBounds=§cLayer %1 is out of bounds for instance " ## construct:nextlayer construct.commands.nextlayer=Step layer up by one (wraps max to 0). construct.commands.nextlayer.success=§aInstance "%1" advanced to layer %2. + +## construct:prevlayer +construct.commands.prevlayer=Step layer down by one (wraps 0 to max). +construct.commands.prevlayer.success=§aInstance "%1" stepped back to layer %2.