@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
48 lines (43 loc) • 4.53 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
const brigadier = require('@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 brigadier.ArgumentCommandNode)) return null;
return child.getUsageText();
}).filter(Boolean).join(" ").trim();
}
}
exports.Command = Command;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZC5janMuY2pzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZC9Db21tYW5kLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZ3VtZW50Q29tbWFuZE5vZGUsIHR5cGUgQ29tbWFuZERpc3BhdGNoZXIgfSBmcm9tICdAanNwcmlzbWFyaW5lL2JyaWdhZGllcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZFByb3BzIHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIHBlcm1pc3Npb24/OiBzdHJpbmc7XG4gICAgYWxpYXNlcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY2xhc3MgQ29tbWFuZCB7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbW1hbmQncyBpZCBpbiBhIGBbbmFtZXNwYWNlXTpbaWRdYCBmb3JtYXQuXG4gICAgICovXG4gICAgcHVibGljIGlkOiBzdHJpbmc7XG5cbiAgICBwdWJsaWMgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaWQuc3BsaXQoJzonKS5hdCgtMSkhO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBjb21tYW5kJ3MgZGVzY3JpcHRpb24uXG4gICAgICovXG4gICAgcHVibGljIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY29tbWFuZCdzIHBlcm1pc3Npb24uXG4gICAgICovXG4gICAgcHVibGljIHBlcm1pc3Npb24/OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY29tbWFuZCdzIGFsaWFzZXMuXG4gICAgICovXG4gICAgcHVibGljIGFsaWFzZXM/OiBzdHJpbmdbXTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcih7IGlkID0gJycsIGRlc2NyaXB0aW9uID0gJycsIHBlcm1pc3Npb24gPSAnJywgYWxpYXNlcyA9IFtdIH06IENvbW1hbmRQcm9wcykge1xuICAgICAgICB0aGlzLmlkID0gaWQ7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjtcbiAgICAgICAgdGhpcy5wZXJtaXNzaW9uID0gcGVybWlzc2lvbjtcbiAgICAgICAgdGhpcy5hbGlhc2VzID0gYWxpYXNlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciB0aGUgY29tbWFuZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgYXN5bmMgcmVnaXN0ZXIoX2Rpc3BhdGNoZXI6IENvbW1hbmREaXNwYXRjaGVyPGFueT4pOiBQcm9taXNlPHZvaWQ+IHt9XG5cbiAgICBwdWJsaWMgdXNhZ2UoZGlzcGF0Y2hlcjogQ29tbWFuZERpc3BhdGNoZXI8YW55Pik6IHN0cmluZyB7XG4gICAgICAgIC8vIFRPRE86IEltcHJvdmUgdGhpcywgaXQncyBub3QgcmVhbGx5IGFjY3VyYXRlIHJpZ2h0IG5vdy5cbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oZGlzcGF0Y2hlci5maW5kTm9kZShbdGhpcy5uYW1lXSk/LmdldENoaWxkcmVuKCkgfHwgW10pXG4gICAgICAgICAgICAubWFwKChjaGlsZCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghKGNoaWxkIGluc3RhbmNlb2YgQXJndW1lbnRDb21tYW5kTm9kZSkpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZC5nZXRVc2FnZVRleHQoKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAuam9pbignICcpXG4gICAgICAgICAgICAudHJpbSgpO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJBcmd1bWVudENvbW1hbmROb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFTTyxNQUFNLE9BQVEsQ0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBSVYsRUFBQTtBQUFBLEVBRVAsSUFBVyxJQUFlLEdBQUE7QUFDdEIsSUFBQSxPQUFPLEtBQUssRUFBRyxDQUFBLEtBQUEsQ0FBTSxHQUFHLENBQUEsQ0FBRSxHQUFHLEVBQUUsQ0FBQTtBQUFBO0FBQ25DO0FBQUE7QUFBQTtBQUFBLEVBS08sV0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsVUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBS0EsT0FBQTtBQUFBLEVBRUEsV0FBQSxDQUFZLEVBQUUsRUFBQSxHQUFLLEVBQUksRUFBQSxXQUFBLEdBQWMsRUFBSSxFQUFBLFVBQUEsR0FBYSxFQUFJLEVBQUEsT0FBQSxHQUFVLEVBQUMsRUFBbUIsRUFBQTtBQUMzRixJQUFBLElBQUEsQ0FBSyxFQUFLLEdBQUEsRUFBQTtBQUNWLElBQUEsSUFBQSxDQUFLLFdBQWMsR0FBQSxXQUFBO0FBQ25CLElBQUEsSUFBQSxDQUFLLFVBQWEsR0FBQSxVQUFBO0FBQ2xCLElBQUEsSUFBQSxDQUFLLE9BQVUsR0FBQSxPQUFBO0FBQUE7QUFDbkI7QUFBQTtBQUFBO0FBQUEsRUFLQSxNQUFhLFNBQVMsV0FBb0QsRUFBQTtBQUFBO0FBQUMsRUFFcEUsTUFBTSxVQUE0QyxFQUFBO0FBRXJELElBQUEsT0FBTyxNQUFNLElBQUssQ0FBQSxVQUFBLENBQVcsUUFBUyxDQUFBLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBRyxFQUFBLFdBQUEsTUFBaUIsRUFBRSxDQUNsRSxDQUFBLEdBQUEsQ0FBSSxDQUFDLEtBQVUsS0FBQTtBQUNaLE1BQUksSUFBQSxFQUFFLEtBQWlCLFlBQUFBLDZCQUFBLENBQUEsRUFBNkIsT0FBQSxJQUFBO0FBQ3BELE1BQUEsT0FBTyxNQUFNLFlBQWEsRUFBQTtBQUFBLEtBQzdCLEVBQ0EsTUFBTyxDQUFBLE9BQU8sRUFDZCxJQUFLLENBQUEsR0FBRyxFQUNSLElBQUssRUFBQTtBQUFBO0FBRWxCOzs7OyJ9