UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

31 lines (30 loc) 4.76 kB
import { Command } from "../Command.es.js"; import { argument, literal, string } from "@jsprismarine/brigadier"; //#region src/command/vanilla/GameruleCommand.ts var GameruleCommand = class extends Command { constructor() { super({ id: "minecraft:gamerule", description: "Set gamerule value.", permission: "minecraft.command.gamerule" }); } async register(dispatcher) { dispatcher.register(literal("gamerule").then(argument("name", string()).then(argument("value", string()).executes(async (context) => { const source = context.getSource(); const name = context.getArgument("name"); let value = context.getArgument("value").toLowerCase() === "true" ? true : false; source.getWorld().getGameruleManager().setGamerule(name, value, true); const res = `Set ${name} to ${value}`; await source.sendMessage(res); return res; }))).executes(async (context) => { const source = context.getSource(); const gamerules = Array.from(source.getWorld().getGameruleManager().getGamerules()); await source.sendMessage(gamerules.map(([id, [value]]) => `§a${id}§r: §b${value}§r`).join(", ")); })); } }; //#endregion export { GameruleCommand as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2FtZXJ1bGVDb21tYW5kLmVzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kL3ZhbmlsbGEvR2FtZXJ1bGVDb21tYW5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29tbWFuZERpc3BhdGNoZXIgfSBmcm9tICdAanNwcmlzbWFyaW5lL2JyaWdhZGllcic7XG5pbXBvcnQgeyBhcmd1bWVudCwgbGl0ZXJhbCwgc3RyaW5nIH0gZnJvbSAnQGpzcHJpc21hcmluZS9icmlnYWRpZXInO1xuXG5pbXBvcnQgdHlwZSBQbGF5ZXIgZnJvbSAnLi4vLi4vUGxheWVyJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICcuLi9Db21tYW5kJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgR2FtZXJ1bGVDb21tYW5kIGV4dGVuZHMgQ29tbWFuZCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBpZDogJ21pbmVjcmFmdDpnYW1lcnVsZScsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1NldCBnYW1lcnVsZSB2YWx1ZS4nLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogJ21pbmVjcmFmdC5jb21tYW5kLmdhbWVydWxlJ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVnaXN0ZXIoZGlzcGF0Y2hlcjogQ29tbWFuZERpc3BhdGNoZXI8YW55Pikge1xuICAgICAgICBkaXNwYXRjaGVyLnJlZ2lzdGVyKFxuICAgICAgICAgICAgbGl0ZXJhbCgnZ2FtZXJ1bGUnKVxuICAgICAgICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgICAgICAgICBhcmd1bWVudCgnbmFtZScsIHN0cmluZygpKS50aGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQoJ3ZhbHVlJywgc3RyaW5nKCkpLmV4ZWN1dGVzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gY29udGV4dC5nZXRTb3VyY2UoKSBhcyBQbGF5ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmFtZSA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ25hbWUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBjb250ZXh0LmdldEFyZ3VtZW50KCd2YWx1ZScpLnRvTG93ZXJDYXNlKCkgPT09ICd0cnVlJyA/IHRydWUgOiBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS5nZXRXb3JsZCgpLmdldEdhbWVydWxlTWFuYWdlcigpLnNldEdhbWVydWxlKG5hbWUsIHZhbHVlLCB0cnVlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlcyA9IGBTZXQgJHtuYW1lfSB0byAke3ZhbHVlfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc291cmNlLnNlbmRNZXNzYWdlKHJlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmV4ZWN1dGVzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRleHQuZ2V0U291cmNlKCkgYXMgUGxheWVyO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBnYW1lcnVsZXMgPSBBcnJheS5mcm9tKHNvdXJjZS5nZXRXb3JsZCgpLmdldEdhbWVydWxlTWFuYWdlcigpLmdldEdhbWVydWxlcygpKTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgc291cmNlLnNlbmRNZXNzYWdlKGdhbWVydWxlcy5tYXAoKFtpZCwgW3ZhbHVlXV0pID0+IGDCp2Eke2lkfcKncjogwqdiJHt2YWx1ZX3Cp3JgKS5qb2luKCcsICcpKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsSUFBcUIsa0JBQXJCLGNBQTZDLFFBQVE7Q0FDakQsY0FBcUI7RUFDakIsTUFBTTtHQUNGLElBQUk7R0FDSixhQUFhO0dBQ2IsWUFBWTtFQUNoQixDQUFDO0NBQ0w7Q0FFQSxNQUFhLFNBQVMsWUFBb0M7RUFDdEQsV0FBVyxTQUNQLFFBQVEsVUFBVSxFQUNiLEtBQ0csU0FBUyxRQUFRLE9BQU8sQ0FBQyxFQUFFLEtBQ3ZCLFNBQVMsU0FBUyxPQUFPLENBQUMsRUFBRSxTQUFTLE9BQU8sWUFBWTtHQUNwRCxNQUFNLFNBQVMsUUFBUSxVQUFVO0dBQ2pDLE1BQU0sT0FBTyxRQUFRLFlBQVksTUFBTTtHQUN2QyxJQUFJLFFBQVEsUUFBUSxZQUFZLE9BQU8sRUFBRSxZQUFZLE1BQU0sU0FBUyxPQUFPO0dBRTNFLE9BQU8sU0FBUyxFQUFFLG1CQUFtQixFQUFFLFlBQVksTUFBTSxPQUFPLElBQUk7R0FFcEUsTUFBTSxNQUFNLE9BQU8sS0FBSyxNQUFNO0dBQzlCLE1BQU0sT0FBTyxZQUFZLEdBQUc7R0FDNUIsT0FBTztFQUNYLENBQUMsQ0FDTCxDQUNKLEVBQ0MsU0FBUyxPQUFPLFlBQVk7R0FDekIsTUFBTSxTQUFTLFFBQVEsVUFBVTtHQUNqQyxNQUFNLFlBQVksTUFBTSxLQUFLLE9BQU8sU0FBUyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsQ0FBQztHQUNsRixNQUFNLE9BQU8sWUFBWSxVQUFVLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxLQUFLLEdBQUcsUUFBUSxNQUFNLEdBQUcsRUFBRSxLQUFLLElBQUksQ0FBQztFQUNuRyxDQUFDLENBQ1Q7Q0FDSjtBQUNKIn0=