@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
30 lines (27 loc) • 4.33 kB
JavaScript
import { literal } from '@jsprismarine/brigadier';
import { Command } from '../Command.es.js';
class HelpCommand extends Command {
constructor() {
super({
id: "minecraft:help",
description: "Get helpful information about commands.",
permission: "minecraft.command.help",
aliases: ["?"]
});
}
async register(dispatcher) {
const execute = async (context) => {
const source = context.getSource();
source.getServer().getCommandManager().getCommands().forEach(async (command) => {
if (!source.getServer().getPermissionManager().can(source).execute(command.permission)) return;
const usage = command.usage(dispatcher);
await source.sendMessage(
`§e/${command.name}§r${usage && ` §b${usage}§r` || ""}: §7${command.description}`
);
});
};
dispatcher.register(literal("help").executes(execute));
}
}
export { HelpCommand as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSGVscENvbW1hbmQuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kL3ZhbmlsbGEvSGVscENvbW1hbmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb21tYW5kRGlzcGF0Y2hlciB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcbmltcG9ydCB7IGxpdGVyYWwgfSBmcm9tICdAanNwcmlzbWFyaW5lL2JyaWdhZGllcic7XG5cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICcuLi9Db21tYW5kJztcbmltcG9ydCB0eXBlIHsgUGxheWVyIH0gZnJvbSAnLi4vLi4vJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSGVscENvbW1hbmQgZXh0ZW5kcyBDb21tYW5kIHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHtcbiAgICAgICAgICAgIGlkOiAnbWluZWNyYWZ0OmhlbHAnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdHZXQgaGVscGZ1bCBpbmZvcm1hdGlvbiBhYm91dCBjb21tYW5kcy4nLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogJ21pbmVjcmFmdC5jb21tYW5kLmhlbHAnLFxuICAgICAgICAgICAgYWxpYXNlczogWyc/J11cbiAgICAgICAgfSBhcyBhbnkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZWdpc3RlcihkaXNwYXRjaGVyOiBDb21tYW5kRGlzcGF0Y2hlcjxhbnk+KSB7XG4gICAgICAgIGNvbnN0IGV4ZWN1dGUgPSBhc3luYyAoY29udGV4dDogYW55KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0LmdldFNvdXJjZSgpIGFzIFBsYXllcjtcblxuICAgICAgICAgICAgc291cmNlXG4gICAgICAgICAgICAgICAgLmdldFNlcnZlcigpXG4gICAgICAgICAgICAgICAgLmdldENvbW1hbmRNYW5hZ2VyKClcbiAgICAgICAgICAgICAgICAuZ2V0Q29tbWFuZHMoKVxuICAgICAgICAgICAgICAgIC5mb3JFYWNoKGFzeW5jIChjb21tYW5kKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc291cmNlLmdldFNlcnZlcigpLmdldFBlcm1pc3Npb25NYW5hZ2VyKCkuY2FuKHNvdXJjZSkuZXhlY3V0ZShjb21tYW5kLnBlcm1pc3Npb24pKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdXNhZ2UgPSBjb21tYW5kLnVzYWdlKGRpc3BhdGNoZXIpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IGRlYWwgd2l0aCBjb21tYW5kcyBzaGFyaW5nIHRoZSBzYW1lIG5hbWUgYnV0IG5vdCBuYW1lc3BhY2UgKGBtaW5lY3JhZnQ6aGVscGAgKyBgc29tZS1wbHVnaW46aGVscGApLlxuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzb3VyY2Uuc2VuZE1lc3NhZ2UoXG4gICAgICAgICAgICAgICAgICAgICAgICBgwqdlLyR7Y29tbWFuZC5uYW1lfcKnciR7KHVzYWdlICYmIGAgwqdiJHt1c2FnZX3Cp3JgKSB8fCAnJ306IMKnNyR7Y29tbWFuZC5kZXNjcmlwdGlvbn1gXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgZGlzcGF0Y2hlci5yZWdpc3RlcihsaXRlcmFsKCdoZWxwJykuZXhlY3V0ZXMoZXhlY3V0ZSBhcyBhbnkpKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsTUFBcUIsb0JBQW9CLE9BQVEsQ0FBQTtBQUFBLEVBQ3RDLFdBQWMsR0FBQTtBQUNqQixJQUFNLEtBQUEsQ0FBQTtBQUFBLE1BQ0YsRUFBSSxFQUFBLGdCQUFBO0FBQUEsTUFDSixXQUFhLEVBQUEseUNBQUE7QUFBQSxNQUNiLFVBQVksRUFBQSx3QkFBQTtBQUFBLE1BQ1osT0FBQSxFQUFTLENBQUMsR0FBRztBQUFBLEtBQ1QsQ0FBQTtBQUFBO0FBQ1osRUFFQSxNQUFhLFNBQVMsVUFBb0MsRUFBQTtBQUN0RCxJQUFNLE1BQUEsT0FBQSxHQUFVLE9BQU8sT0FBaUIsS0FBQTtBQUNwQyxNQUFNLE1BQUEsTUFBQSxHQUFTLFFBQVEsU0FBVSxFQUFBO0FBRWpDLE1BQ0ssTUFBQSxDQUFBLFNBQUEsR0FDQSxpQkFBa0IsRUFBQSxDQUNsQixhQUNBLENBQUEsT0FBQSxDQUFRLE9BQU8sT0FBWSxLQUFBO0FBQ3hCLFFBQUEsSUFBSSxDQUFDLE1BQUEsQ0FBTyxTQUFVLEVBQUEsQ0FBRSxvQkFBcUIsRUFBQSxDQUFFLEdBQUksQ0FBQSxNQUFNLENBQUUsQ0FBQSxPQUFBLENBQVEsT0FBUSxDQUFBLFVBQVUsQ0FBRyxFQUFBO0FBRXhGLFFBQU0sTUFBQSxLQUFBLEdBQVEsT0FBUSxDQUFBLEtBQUEsQ0FBTSxVQUFVLENBQUE7QUFHdEMsUUFBQSxNQUFNLE1BQU8sQ0FBQSxXQUFBO0FBQUEsVUFDVCxDQUFBLEdBQUEsRUFBTSxPQUFRLENBQUEsSUFBSSxDQUFNLEVBQUEsRUFBQSxLQUFBLElBQVMsQ0FBTSxHQUFBLEVBQUEsS0FBSyxDQUFTLEVBQUEsQ0FBQSxJQUFBLEVBQUUsQ0FBTyxJQUFBLEVBQUEsT0FBQSxDQUFRLFdBQVcsQ0FBQTtBQUFBLFNBQ3JGO0FBQUEsT0FDSCxDQUFBO0FBQUEsS0FDVDtBQUVBLElBQUEsVUFBQSxDQUFXLFNBQVMsT0FBUSxDQUFBLE1BQU0sQ0FBRSxDQUFBLFFBQUEsQ0FBUyxPQUFjLENBQUMsQ0FBQTtBQUFBO0FBRXBFOzs7OyJ9