UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

54 lines (49 loc) 7.4 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const brigadier = require('@jsprismarine/brigadier'); const command_Command = require('../Command.cjs.cjs'); class TimeCommand extends command_Command.Command { constructor() { super({ id: "minecraft:time", description: "Get, set and add to the current time.", permission: "minecraft.command.time" }); } async register(dispatcher) { dispatcher.register( brigadier.literal("time").then( brigadier.argument("action", brigadier.string()).then( brigadier.argument("value", brigadier.integer()).executes(async (context) => { const source = context.getSource(); const world = source.getWorld(); const value = context.getArgument("value"); if (value < 0) throw new Error("value can not be less than 0"); switch (context.getArgument("action").toLowerCase()) { case "set": world.setTicks(value); break; case "add": world.setTicks(world.getTicks() + value); break; case "sub": world.setTicks(world.getTicks() - value); break; default: throw new Error(`Invalid argument "${context.getArgument("action")}"`); } await world.sendTime(); await source.sendMessage(`Set time to: ${world.getTicks()}`); return `Set time to: ${world.getTicks()}`; }) ) ).executes(async (context) => { const source = context.getSource(); const world = source.getWorld(); await source.sendMessage(`The current time is ${world.getTicks()}`); }) ); } } exports.default = TimeCommand; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGltZUNvbW1hbmQuY2pzLmNqcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmQvdmFuaWxsYS9UaW1lQ29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbW1hbmREaXNwYXRjaGVyIH0gZnJvbSAnQGpzcHJpc21hcmluZS9icmlnYWRpZXInO1xuaW1wb3J0IHsgYXJndW1lbnQsIGludGVnZXIsIGxpdGVyYWwsIHN0cmluZyB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcblxuaW1wb3J0IHR5cGUgUGxheWVyIGZyb20gJy4uLy4uL1BsYXllcic7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnLi4vQ29tbWFuZCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFRpbWVDb21tYW5kIGV4dGVuZHMgQ29tbWFuZCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBpZDogJ21pbmVjcmFmdDp0aW1lJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnR2V0LCBzZXQgYW5kIGFkZCB0byB0aGUgY3VycmVudCB0aW1lLicsXG4gICAgICAgICAgICBwZXJtaXNzaW9uOiAnbWluZWNyYWZ0LmNvbW1hbmQudGltZSdcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyKGRpc3BhdGNoZXI6IENvbW1hbmREaXNwYXRjaGVyPGFueT4pIHtcbiAgICAgICAgZGlzcGF0Y2hlci5yZWdpc3RlcihcbiAgICAgICAgICAgIGxpdGVyYWwoJ3RpbWUnKVxuICAgICAgICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgICAgICAgICBhcmd1bWVudCgnYWN0aW9uJywgc3RyaW5nKCkpLnRoZW4oXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudCgndmFsdWUnLCBpbnRlZ2VyKCkpLmV4ZWN1dGVzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gY29udGV4dC5nZXRTb3VyY2UoKSBhcyBQbGF5ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgd29ybGQgPSBzb3VyY2UuZ2V0V29ybGQoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gY29udGV4dC5nZXRBcmd1bWVudCgndmFsdWUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPCAwKSB0aHJvdyBuZXcgRXJyb3IoJ3ZhbHVlIGNhbiBub3QgYmUgbGVzcyB0aGFuIDAnKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY29udGV4dC5nZXRBcmd1bWVudCgnYWN0aW9uJykudG9Mb3dlckNhc2UoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzZXQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ybGQuc2V0VGlja3ModmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2FkZCc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JsZC5zZXRUaWNrcyh3b3JsZC5nZXRUaWNrcygpICsgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N1Yic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JsZC5zZXRUaWNrcyh3b3JsZC5nZXRUaWNrcygpIC0gdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgYXJndW1lbnQgXCIke2NvbnRleHQuZ2V0QXJndW1lbnQoJ2FjdGlvbicpfVwiYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgd29ybGQuc2VuZFRpbWUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBzb3VyY2Uuc2VuZE1lc3NhZ2UoYFNldCB0aW1lIHRvOiAke3dvcmxkLmdldFRpY2tzKCl9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGBTZXQgdGltZSB0bzogJHt3b3JsZC5nZXRUaWNrcygpfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5leGVjdXRlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0LmdldFNvdXJjZSgpIGFzIFBsYXllcjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd29ybGQgPSBzb3VyY2UuZ2V0V29ybGQoKTtcblxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzb3VyY2Uuc2VuZE1lc3NhZ2UoYFRoZSBjdXJyZW50IHRpbWUgaXMgJHt3b3JsZC5nZXRUaWNrcygpfWApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIkNvbW1hbmQiLCJsaXRlcmFsIiwiYXJndW1lbnQiLCJzdHJpbmciLCJpbnRlZ2VyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBTUEsTUFBcUIsb0JBQW9CQSx1QkFBUSxDQUFBO0FBQUEsRUFDdEMsV0FBYyxHQUFBO0FBQ2pCLElBQU0sS0FBQSxDQUFBO0FBQUEsTUFDRixFQUFJLEVBQUEsZ0JBQUE7QUFBQSxNQUNKLFdBQWEsRUFBQSx1Q0FBQTtBQUFBLE1BQ2IsVUFBWSxFQUFBO0FBQUEsS0FDZixDQUFBO0FBQUE7QUFDTCxFQUVBLE1BQWEsU0FBUyxVQUFvQyxFQUFBO0FBQ3RELElBQVcsVUFBQSxDQUFBLFFBQUE7QUFBQSxNQUNQQyxpQkFBQSxDQUFRLE1BQU0sQ0FDVCxDQUFBLElBQUE7QUFBQSxRQUNHQyxrQkFBUyxDQUFBLFFBQUEsRUFBVUMsZ0JBQU8sRUFBQyxDQUFFLENBQUEsSUFBQTtBQUFBLFVBQ3pCRCxtQkFBUyxPQUFTLEVBQUFFLGlCQUFBLEVBQVMsQ0FBRSxDQUFBLFFBQUEsQ0FBUyxPQUFPLE9BQVksS0FBQTtBQUNyRCxZQUFNLE1BQUEsTUFBQSxHQUFTLFFBQVEsU0FBVSxFQUFBO0FBQ2pDLFlBQU0sTUFBQSxLQUFBLEdBQVEsT0FBTyxRQUFTLEVBQUE7QUFFOUIsWUFBTSxNQUFBLEtBQUEsR0FBUSxPQUFRLENBQUEsV0FBQSxDQUFZLE9BQU8sQ0FBQTtBQUN6QyxZQUFBLElBQUksS0FBUSxHQUFBLENBQUEsRUFBUyxNQUFBLElBQUksTUFBTSw4QkFBOEIsQ0FBQTtBQUU3RCxZQUFBLFFBQVEsT0FBUSxDQUFBLFdBQUEsQ0FBWSxRQUFRLENBQUEsQ0FBRSxhQUFlO0FBQUEsY0FDakQsS0FBSyxLQUFBO0FBQ0QsZ0JBQUEsS0FBQSxDQUFNLFNBQVMsS0FBSyxDQUFBO0FBQ3BCLGdCQUFBO0FBQUEsY0FDSixLQUFLLEtBQUE7QUFDRCxnQkFBQSxLQUFBLENBQU0sUUFBUyxDQUFBLEtBQUEsQ0FBTSxRQUFTLEVBQUEsR0FBSSxLQUFLLENBQUE7QUFDdkMsZ0JBQUE7QUFBQSxjQUNKLEtBQUssS0FBQTtBQUNELGdCQUFBLEtBQUEsQ0FBTSxRQUFTLENBQUEsS0FBQSxDQUFNLFFBQVMsRUFBQSxHQUFJLEtBQUssQ0FBQTtBQUN2QyxnQkFBQTtBQUFBLGNBQ0o7QUFDSSxnQkFBQSxNQUFNLElBQUksS0FBTSxDQUFBLENBQUEsa0JBQUEsRUFBcUIsUUFBUSxXQUFZLENBQUEsUUFBUSxDQUFDLENBQUcsQ0FBQSxDQUFBLENBQUE7QUFBQTtBQUc3RSxZQUFBLE1BQU0sTUFBTSxRQUFTLEVBQUE7QUFDckIsWUFBQSxNQUFNLE9BQU8sV0FBWSxDQUFBLENBQUEsYUFBQSxFQUFnQixLQUFNLENBQUEsUUFBQSxFQUFVLENBQUUsQ0FBQSxDQUFBO0FBQzNELFlBQU8sT0FBQSxDQUFBLGFBQUEsRUFBZ0IsS0FBTSxDQUFBLFFBQUEsRUFBVSxDQUFBLENBQUE7QUFBQSxXQUMxQztBQUFBO0FBQ0wsT0FDSixDQUNDLFFBQVMsQ0FBQSxPQUFPLE9BQVksS0FBQTtBQUN6QixRQUFNLE1BQUEsTUFBQSxHQUFTLFFBQVEsU0FBVSxFQUFBO0FBQ2pDLFFBQU0sTUFBQSxLQUFBLEdBQVEsT0FBTyxRQUFTLEVBQUE7QUFFOUIsUUFBQSxNQUFNLE9BQU8sV0FBWSxDQUFBLENBQUEsb0JBQUEsRUFBdUIsS0FBTSxDQUFBLFFBQUEsRUFBVSxDQUFFLENBQUEsQ0FBQTtBQUFBLE9BQ3JFO0FBQUEsS0FDVDtBQUFBO0FBRVI7Ozs7In0=