@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
37 lines (34 loc) • 5.47 kB
JavaScript
import { literal, argument, string } from '@jsprismarine/brigadier';
import { Command } from '../Command.es.js';
class GameruleCommand 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(", "));
})
);
}
}
export { GameruleCommand as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2FtZXJ1bGVDb21tYW5kLmVzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZC92YW5pbGxhL0dhbWVydWxlQ29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbW1hbmREaXNwYXRjaGVyIH0gZnJvbSAnQGpzcHJpc21hcmluZS9icmlnYWRpZXInO1xuaW1wb3J0IHsgYXJndW1lbnQsIGxpdGVyYWwsIHN0cmluZyB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcblxuaW1wb3J0IHR5cGUgUGxheWVyIGZyb20gJy4uLy4uL1BsYXllcic7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnLi4vQ29tbWFuZCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEdhbWVydWxlQ29tbWFuZCBleHRlbmRzIENvbW1hbmQge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgaWQ6ICdtaW5lY3JhZnQ6Z2FtZXJ1bGUnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdTZXQgZ2FtZXJ1bGUgdmFsdWUuJyxcbiAgICAgICAgICAgIHBlcm1pc3Npb246ICdtaW5lY3JhZnQuY29tbWFuZC5nYW1lcnVsZSdcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyKGRpc3BhdGNoZXI6IENvbW1hbmREaXNwYXRjaGVyPGFueT4pIHtcbiAgICAgICAgZGlzcGF0Y2hlci5yZWdpc3RlcihcbiAgICAgICAgICAgIGxpdGVyYWwoJ2dhbWVydWxlJylcbiAgICAgICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQoJ25hbWUnLCBzdHJpbmcoKSkudGhlbihcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50KCd2YWx1ZScsIHN0cmluZygpKS5leGVjdXRlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IGNvbnRleHQuZ2V0U291cmNlKCkgYXMgUGxheWVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBjb250ZXh0LmdldEFyZ3VtZW50KCduYW1lJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlID0gY29udGV4dC5nZXRBcmd1bWVudCgndmFsdWUnKS50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZScgPyB0cnVlIDogZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UuZ2V0V29ybGQoKS5nZXRHYW1lcnVsZU1hbmFnZXIoKS5zZXRHYW1lcnVsZShuYW1lLCB2YWx1ZSwgdHJ1ZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXMgPSBgU2V0ICR7bmFtZX0gdG8gJHt2YWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNvdXJjZS5zZW5kTWVzc2FnZShyZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5leGVjdXRlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0LmdldFNvdXJjZSgpIGFzIFBsYXllcjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2FtZXJ1bGVzID0gQXJyYXkuZnJvbShzb3VyY2UuZ2V0V29ybGQoKS5nZXRHYW1lcnVsZU1hbmFnZXIoKS5nZXRHYW1lcnVsZXMoKSk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNvdXJjZS5zZW5kTWVzc2FnZShnYW1lcnVsZXMubWFwKChbaWQsIFt2YWx1ZV1dKSA9PiBgwqdhJHtpZH3Cp3I6IMKnYiR7dmFsdWV9wqdyYCkuam9pbignLCAnKSk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsTUFBcUIsd0JBQXdCLE9BQVEsQ0FBQTtBQUFBLEVBQzFDLFdBQWMsR0FBQTtBQUNqQixJQUFNLEtBQUEsQ0FBQTtBQUFBLE1BQ0YsRUFBSSxFQUFBLG9CQUFBO0FBQUEsTUFDSixXQUFhLEVBQUEscUJBQUE7QUFBQSxNQUNiLFVBQVksRUFBQTtBQUFBLEtBQ2YsQ0FBQTtBQUFBO0FBQ0wsRUFFQSxNQUFhLFNBQVMsVUFBb0MsRUFBQTtBQUN0RCxJQUFXLFVBQUEsQ0FBQSxRQUFBO0FBQUEsTUFDUCxPQUFBLENBQVEsVUFBVSxDQUNiLENBQUEsSUFBQTtBQUFBLFFBQ0csUUFBUyxDQUFBLE1BQUEsRUFBUSxNQUFPLEVBQUMsQ0FBRSxDQUFBLElBQUE7QUFBQSxVQUN2QixTQUFTLE9BQVMsRUFBQSxNQUFBLEVBQVEsQ0FBRSxDQUFBLFFBQUEsQ0FBUyxPQUFPLE9BQVksS0FBQTtBQUNwRCxZQUFNLE1BQUEsTUFBQSxHQUFTLFFBQVEsU0FBVSxFQUFBO0FBQ2pDLFlBQU0sTUFBQSxJQUFBLEdBQU8sT0FBUSxDQUFBLFdBQUEsQ0FBWSxNQUFNLENBQUE7QUFDdkMsWUFBSSxJQUFBLEtBQUEsR0FBUSxRQUFRLFdBQVksQ0FBQSxPQUFPLEVBQUUsV0FBWSxFQUFBLEtBQU0sU0FBUyxJQUFPLEdBQUEsS0FBQTtBQUUzRSxZQUFBLE1BQUEsQ0FBTyxVQUFXLENBQUEsa0JBQUEsR0FBcUIsV0FBWSxDQUFBLElBQUEsRUFBTSxPQUFPLElBQUksQ0FBQTtBQUVwRSxZQUFBLE1BQU0sR0FBTSxHQUFBLENBQUEsSUFBQSxFQUFPLElBQUksQ0FBQSxJQUFBLEVBQU8sS0FBSyxDQUFBLENBQUE7QUFDbkMsWUFBTSxNQUFBLE1BQUEsQ0FBTyxZQUFZLEdBQUcsQ0FBQTtBQUM1QixZQUFPLE9BQUEsR0FBQTtBQUFBLFdBQ1Y7QUFBQTtBQUNMLE9BQ0osQ0FDQyxRQUFTLENBQUEsT0FBTyxPQUFZLEtBQUE7QUFDekIsUUFBTSxNQUFBLE1BQUEsR0FBUyxRQUFRLFNBQVUsRUFBQTtBQUNqQyxRQUFNLE1BQUEsU0FBQSxHQUFZLE1BQU0sSUFBSyxDQUFBLE1BQUEsQ0FBTyxVQUFXLENBQUEsa0JBQUEsRUFBcUIsQ0FBQSxZQUFBLEVBQWMsQ0FBQTtBQUNsRixRQUFBLE1BQU0sT0FBTyxXQUFZLENBQUEsU0FBQSxDQUFVLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBTSxLQUFBLENBQUEsRUFBQSxFQUFLLEVBQUUsQ0FBUyxNQUFBLEVBQUEsS0FBSyxJQUFJLENBQUUsQ0FBQSxJQUFBLENBQUssSUFBSSxDQUFDLENBQUE7QUFBQSxPQUNsRztBQUFBLEtBQ1Q7QUFBQTtBQUVSOzs7OyJ9