@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
36 lines (33 loc) • 4.1 kB
JavaScript
import { literal, argument, greedyString } from '@jsprismarine/brigadier';
import { Chat } from '../../chat/Chat.es.js';
import ChatEvent from '../../events/chat/ChatEvent.es.js';
import { Command } from '../Command.es.js';
class MeCommand extends Command {
constructor() {
super({
id: "minecraft:me",
description: "Displays custom message in chat.",
permission: "minecraft.command.me"
});
}
async register(dispatcher) {
dispatcher.register(
literal("me").then(
argument("message", greedyString()).executes(async (context) => {
const source = context.getSource();
const message = context.getArgument("message");
const messageToSend = `*${source.getName()}: ${message}`;
const event = new ChatEvent(
new Chat({
sender: source,
message: messageToSend
})
);
await source.getServer().emit("chat", event);
})
)
);
}
}
export { MeCommand as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVDb21tYW5kLmVzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbWFuZC92YW5pbGxhL01lQ29tbWFuZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbW1hbmREaXNwYXRjaGVyIH0gZnJvbSAnQGpzcHJpc21hcmluZS9icmlnYWRpZXInO1xuaW1wb3J0IHsgYXJndW1lbnQsIGdyZWVkeVN0cmluZywgbGl0ZXJhbCB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcblxuaW1wb3J0IHsgQ2hhdCB9IGZyb20gJy4uLy4uL2NoYXQvQ2hhdCc7XG5pbXBvcnQgQ2hhdEV2ZW50IGZyb20gJy4uLy4uL2V2ZW50cy9jaGF0L0NoYXRFdmVudCc7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnLi4vQ29tbWFuZCc7XG5pbXBvcnQgdHlwZSBQbGF5ZXIgZnJvbSAnLi4vLi4vUGxheWVyJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTWVDb21tYW5kIGV4dGVuZHMgQ29tbWFuZCB7XG4gICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcih7XG4gICAgICAgICAgICBpZDogJ21pbmVjcmFmdDptZScsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0Rpc3BsYXlzIGN1c3RvbSBtZXNzYWdlIGluIGNoYXQuJyxcbiAgICAgICAgICAgIHBlcm1pc3Npb246ICdtaW5lY3JhZnQuY29tbWFuZC5tZSdcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyKGRpc3BhdGNoZXI6IENvbW1hbmREaXNwYXRjaGVyPGFueT4pIHtcbiAgICAgICAgZGlzcGF0Y2hlci5yZWdpc3RlcihcbiAgICAgICAgICAgIGxpdGVyYWwoJ21lJykudGhlbihcbiAgICAgICAgICAgICAgICBhcmd1bWVudCgnbWVzc2FnZScsIGdyZWVkeVN0cmluZygpKS5leGVjdXRlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0LmdldFNvdXJjZSgpIGFzIFBsYXllcjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVzc2FnZSA9IGNvbnRleHQuZ2V0QXJndW1lbnQoJ21lc3NhZ2UnKSBhcyBzdHJpbmc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2VUb1NlbmQgPSBgKiR7c291cmNlLmdldE5hbWUoKX06ICR7bWVzc2FnZX1gO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gbmV3IENoYXRFdmVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBDaGF0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kZXI6IHNvdXJjZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlVG9TZW5kXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzb3VyY2UuZ2V0U2VydmVyKCkuZW1pdCgnY2hhdCcsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQVFBLE1BQXFCLGtCQUFrQixPQUFRLENBQUE7QUFBQSxFQUNwQyxXQUFjLEdBQUE7QUFDakIsSUFBTSxLQUFBLENBQUE7QUFBQSxNQUNGLEVBQUksRUFBQSxjQUFBO0FBQUEsTUFDSixXQUFhLEVBQUEsa0NBQUE7QUFBQSxNQUNiLFVBQVksRUFBQTtBQUFBLEtBQ2YsQ0FBQTtBQUFBO0FBQ0wsRUFFQSxNQUFhLFNBQVMsVUFBb0MsRUFBQTtBQUN0RCxJQUFXLFVBQUEsQ0FBQSxRQUFBO0FBQUEsTUFDUCxPQUFBLENBQVEsSUFBSSxDQUFFLENBQUEsSUFBQTtBQUFBLFFBQ1YsU0FBUyxTQUFXLEVBQUEsWUFBQSxFQUFjLENBQUUsQ0FBQSxRQUFBLENBQVMsT0FBTyxPQUFZLEtBQUE7QUFDNUQsVUFBTSxNQUFBLE1BQUEsR0FBUyxRQUFRLFNBQVUsRUFBQTtBQUNqQyxVQUFNLE1BQUEsT0FBQSxHQUFVLE9BQVEsQ0FBQSxXQUFBLENBQVksU0FBUyxDQUFBO0FBQzdDLFVBQUEsTUFBTSxnQkFBZ0IsQ0FBSSxDQUFBLEVBQUEsTUFBQSxDQUFPLE9BQVEsRUFBQyxLQUFLLE9BQU8sQ0FBQSxDQUFBO0FBRXRELFVBQUEsTUFBTSxRQUFRLElBQUksU0FBQTtBQUFBLFlBQ2QsSUFBSSxJQUFLLENBQUE7QUFBQSxjQUNMLE1BQVEsRUFBQSxNQUFBO0FBQUEsY0FDUixPQUFTLEVBQUE7QUFBQSxhQUNaO0FBQUEsV0FDTDtBQUNBLFVBQUEsTUFBTSxNQUFPLENBQUEsU0FBQSxFQUFZLENBQUEsSUFBQSxDQUFLLFFBQVEsS0FBSyxDQUFBO0FBQUEsU0FDOUM7QUFBQTtBQUNMLEtBQ0o7QUFBQTtBQUVSOzs7OyJ9