@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
46 lines (45 loc) • 4.07 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
require("../_virtual/_rolldown/runtime.cjs.cjs");
let _jsprismarine_brigadier = require("@jsprismarine/brigadier");
//#region src/command/Command.ts
var Command = class {
/**
* The command's id in a `[namespace]:[id]` format.
*/
id;
get name() {
return this.id.split(":").at(-1);
}
/**
* The command's description.
*/
description;
/**
* The command's permission.
*/
permission;
/**
* The command's aliases.
*/
aliases;
constructor({ id = "", description = "", permission = "", aliases = [] }) {
this.id = id;
this.description = description;
this.permission = permission;
this.aliases = aliases;
}
/**
* Register the command.
*/
async register(_dispatcher) {}
usage(dispatcher) {
return Array.from(dispatcher.findNode([this.name])?.getChildren() || []).map((child) => {
if (!(child instanceof _jsprismarine_brigadier.ArgumentCommandNode)) return null;
return child.getUsageText();
}).filter(Boolean).join(" ").trim();
}
};
//#endregion
exports.Command = Command;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZC5janMuY2pzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kL0NvbW1hbmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXJndW1lbnRDb21tYW5kTm9kZSwgdHlwZSBDb21tYW5kRGlzcGF0Y2hlciB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kUHJvcHMge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgcGVybWlzc2lvbj86IHN0cmluZztcbiAgICBhbGlhc2VzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBDb21tYW5kIHtcbiAgICAvKipcbiAgICAgKiBUaGUgY29tbWFuZCdzIGlkIGluIGEgYFtuYW1lc3BhY2VdOltpZF1gIGZvcm1hdC5cbiAgICAgKi9cbiAgICBwdWJsaWMgaWQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5pZC5zcGxpdCgnOicpLmF0KC0xKSE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIGNvbW1hbmQncyBkZXNjcmlwdGlvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgZGVzY3JpcHRpb246IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBjb21tYW5kJ3MgcGVybWlzc2lvbi5cbiAgICAgKi9cbiAgICBwdWJsaWMgcGVybWlzc2lvbj86IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBjb21tYW5kJ3MgYWxpYXNlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWxpYXNlcz86IHN0cmluZ1tdO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHsgaWQgPSAnJywgZGVzY3JpcHRpb24gPSAnJywgcGVybWlzc2lvbiA9ICcnLCBhbGlhc2VzID0gW10gfTogQ29tbWFuZFByb3BzKSB7XG4gICAgICAgIHRoaXMuaWQgPSBpZDtcbiAgICAgICAgdGhpcy5kZXNjcmlwdGlvbiA9IGRlc2NyaXB0aW9uO1xuICAgICAgICB0aGlzLnBlcm1pc3Npb24gPSBwZXJtaXNzaW9uO1xuICAgICAgICB0aGlzLmFsaWFzZXMgPSBhbGlhc2VzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVyIHRoZSBjb21tYW5kLlxuICAgICAqL1xuICAgIHB1YmxpYyBhc3luYyByZWdpc3RlcihfZGlzcGF0Y2hlcjogQ29tbWFuZERpc3BhdGNoZXI8YW55Pik6IFByb21pc2U8dm9pZD4ge31cblxuICAgIHB1YmxpYyB1c2FnZShkaXNwYXRjaGVyOiBDb21tYW5kRGlzcGF0Y2hlcjxhbnk+KTogc3RyaW5nIHtcbiAgICAgICAgLy8gVE9ETzogSW1wcm92ZSB0aGlzLCBpdCdzIG5vdCByZWFsbHkgYWNjdXJhdGUgcmlnaHQgbm93LlxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShkaXNwYXRjaGVyLmZpbmROb2RlKFt0aGlzLm5hbWVdKT8uZ2V0Q2hpbGRyZW4oKSB8fCBbXSlcbiAgICAgICAgICAgIC5tYXAoKGNoaWxkKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCEoY2hpbGQgaW5zdGFuY2VvZiBBcmd1bWVudENvbW1hbmROb2RlKSkgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkLmdldFVzYWdlVGV4dCgpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAgIC50cmltKCk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7OztBQVNBLElBQWEsVUFBYixNQUFxQjs7OztDQUlqQjtDQUVBLElBQVcsT0FBZTtFQUN0QixPQUFPLEtBQUssR0FBRyxNQUFNLEdBQUcsRUFBRSxHQUFHLEVBQUU7Q0FDbkM7Ozs7Q0FLQTs7OztDQUtBOzs7O0NBS0E7Q0FFQSxZQUFtQixFQUFFLEtBQUssSUFBSSxjQUFjLElBQUksYUFBYSxJQUFJLFVBQVUsQ0FBQyxLQUFtQjtFQUMzRixLQUFLLEtBQUs7RUFDVixLQUFLLGNBQWM7RUFDbkIsS0FBSyxhQUFhO0VBQ2xCLEtBQUssVUFBVTtDQUNuQjs7OztDQUtBLE1BQWEsU0FBUyxhQUFvRCxDQUFDO0NBRTNFLE1BQWEsWUFBNEM7RUFFckQsT0FBTyxNQUFNLEtBQUssV0FBVyxTQUFTLENBQUMsS0FBSyxJQUFJLENBQUMsR0FBRyxZQUFZLEtBQUssQ0FBQyxDQUFDLEVBQ2xFLEtBQUssVUFBVTtHQUNaLElBQUksRUFBRSxpQkFBaUIsd0JBQUEsc0JBQXNCLE9BQU87R0FDcEQsT0FBTyxNQUFNLGFBQWE7RUFDOUIsQ0FBQyxFQUNBLE9BQU8sT0FBTyxFQUNkLEtBQUssR0FBRyxFQUNSLEtBQUs7Q0FDZDtBQUNKIn0=