@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
44 lines (41 loc) • 4.41 kB
JavaScript
import { ArgumentCommandNode } from '@jsprismarine/brigadier';
class Command {
/**
* 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 ArgumentCommandNode)) return null;
return child.getUsageText();
}).filter(Boolean).join(" ").trim();
}
}
export { Command };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZC5lcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmQvQ29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmd1bWVudENvbW1hbmROb2RlLCB0eXBlIENvbW1hbmREaXNwYXRjaGVyIH0gZnJvbSAnQGpzcHJpc21hcmluZS9icmlnYWRpZXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRQcm9wcyB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgICBwZXJtaXNzaW9uPzogc3RyaW5nO1xuICAgIGFsaWFzZXM/OiBzdHJpbmdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIENvbW1hbmQge1xuICAgIC8qKlxuICAgICAqIFRoZSBjb21tYW5kJ3MgaWQgaW4gYSBgW25hbWVzcGFjZV06W2lkXWAgZm9ybWF0LlxuICAgICAqL1xuICAgIHB1YmxpYyBpZDogc3RyaW5nO1xuXG4gICAgcHVibGljIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmlkLnNwbGl0KCc6JykuYXQoLTEpITtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY29tbWFuZCdzIGRlc2NyaXB0aW9uLlxuICAgICAqL1xuICAgIHB1YmxpYyBkZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNvbW1hbmQncyBwZXJtaXNzaW9uLlxuICAgICAqL1xuICAgIHB1YmxpYyBwZXJtaXNzaW9uPzogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNvbW1hbmQncyBhbGlhc2VzLlxuICAgICAqL1xuICAgIHB1YmxpYyBhbGlhc2VzPzogc3RyaW5nW107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoeyBpZCA9ICcnLCBkZXNjcmlwdGlvbiA9ICcnLCBwZXJtaXNzaW9uID0gJycsIGFsaWFzZXMgPSBbXSB9OiBDb21tYW5kUHJvcHMpIHtcbiAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICB0aGlzLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb247XG4gICAgICAgIHRoaXMucGVybWlzc2lvbiA9IHBlcm1pc3Npb247XG4gICAgICAgIHRoaXMuYWxpYXNlcyA9IGFsaWFzZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXIgdGhlIGNvbW1hbmQuXG4gICAgICovXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyKF9kaXNwYXRjaGVyOiBDb21tYW5kRGlzcGF0Y2hlcjxhbnk+KTogUHJvbWlzZTx2b2lkPiB7fVxuXG4gICAgcHVibGljIHVzYWdlKGRpc3BhdGNoZXI6IENvbW1hbmREaXNwYXRjaGVyPGFueT4pOiBzdHJpbmcge1xuICAgICAgICAvLyBUT0RPOiBJbXByb3ZlIHRoaXMsIGl0J3Mgbm90IHJlYWxseSBhY2N1cmF0ZSByaWdodCBub3cuXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKGRpc3BhdGNoZXIuZmluZE5vZGUoW3RoaXMubmFtZV0pPy5nZXRDaGlsZHJlbigpIHx8IFtdKVxuICAgICAgICAgICAgLm1hcCgoY2hpbGQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIShjaGlsZCBpbnN0YW5jZW9mIEFyZ3VtZW50Q29tbWFuZE5vZGUpKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGQuZ2V0VXNhZ2VUZXh0KCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgICAgLmpvaW4oJyAnKVxuICAgICAgICAgICAgLnRyaW0oKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTTyxNQUFNLE9BQVEsQ0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVYsRUFBQTtBQUFBLEVBRVAsSUFBVyxJQUFlLEdBQUE7QUFDdEIsSUFBQSxPQUFPLEtBQUssRUFBRyxDQUFBLEtBQUEsQ0FBTSxHQUFHLENBQUEsQ0FBRSxHQUFHLENBQUUsQ0FBQSxDQUFBO0FBQUE7QUFDbkM7QUFBQTtBQUFBO0FBQUEsRUFLTyxXQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxVQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFLQSxPQUFBO0FBQUEsRUFFQSxXQUFBLENBQVksRUFBRSxFQUFBLEdBQUssRUFBSSxFQUFBLFdBQUEsR0FBYyxFQUFJLEVBQUEsVUFBQSxHQUFhLEVBQUksRUFBQSxPQUFBLEdBQVUsRUFBQyxFQUFtQixFQUFBO0FBQzNGLElBQUEsSUFBQSxDQUFLLEVBQUssR0FBQSxFQUFBO0FBQ1YsSUFBQSxJQUFBLENBQUssV0FBYyxHQUFBLFdBQUE7QUFDbkIsSUFBQSxJQUFBLENBQUssVUFBYSxHQUFBLFVBQUE7QUFDbEIsSUFBQSxJQUFBLENBQUssT0FBVSxHQUFBLE9BQUE7QUFBQTtBQUNuQjtBQUFBO0FBQUE7QUFBQSxFQUtBLE1BQWEsU0FBUyxXQUFvRCxFQUFBO0FBQUE7QUFBQyxFQUVwRSxNQUFNLFVBQTRDLEVBQUE7QUFFckQsSUFBQSxPQUFPLE1BQU0sSUFBSyxDQUFBLFVBQUEsQ0FBVyxRQUFTLENBQUEsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFHLEVBQUEsV0FBQSxNQUFpQixFQUFFLENBQ2xFLENBQUEsR0FBQSxDQUFJLENBQUMsS0FBVSxLQUFBO0FBQ1osTUFBSSxJQUFBLEVBQUUsS0FBaUIsWUFBQSxtQkFBQSxDQUFBLEVBQTZCLE9BQUEsSUFBQTtBQUNwRCxNQUFBLE9BQU8sTUFBTSxZQUFhLEVBQUE7QUFBQSxLQUM3QixFQUNBLE1BQU8sQ0FBQSxPQUFPLEVBQ2QsSUFBSyxDQUFBLEdBQUcsRUFDUixJQUFLLEVBQUE7QUFBQTtBQUVsQjs7OzsifQ==