@jsprismarine/prismarine
Version:
Dedicated Minecraft Bedrock Edition server written in TypeScript
30 lines (27 loc) • 4.03 kB
JavaScript
import { literal } from '@jsprismarine/brigadier';
import { Command } from '../Command.es.js';
class ListCommand extends Command {
constructor() {
super({
id: "minecraft:list",
description: "Lists players on the server.",
permission: "minecraft.command.list"
});
}
async register(dispatcher) {
dispatcher.register(
literal("list").executes(async (context) => {
const source = context.getSource();
const players = source.getServer().getSessionManager().getAllPlayers();
const playerArray = Array.from(players);
const maxPlayers = source.getServer().getConfig().getMaxPlayers();
const counter = playerArray.length;
const answer = playerArray.map((player) => player.getName()).join(", ");
await source.sendMessage(`There are ${counter}/${maxPlayers} players online:`);
if (answer) await source.sendMessage(answer);
})
);
}
}
export { ListCommand as default };
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTGlzdENvbW1hbmQuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kL3ZhbmlsbGEvTGlzdENvbW1hbmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb21tYW5kRGlzcGF0Y2hlciB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcbmltcG9ydCB7IGxpdGVyYWwgfSBmcm9tICdAanNwcmlzbWFyaW5lL2JyaWdhZGllcic7XG5cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICcuLi9Db21tYW5kJztcbmltcG9ydCB0eXBlIFBsYXllciBmcm9tICcuLi8uLi9QbGF5ZXInO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMaXN0Q29tbWFuZCBleHRlbmRzIENvbW1hbmQge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgaWQ6ICdtaW5lY3JhZnQ6bGlzdCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogJ0xpc3RzIHBsYXllcnMgb24gdGhlIHNlcnZlci4nLFxuICAgICAgICAgICAgcGVybWlzc2lvbjogJ21pbmVjcmFmdC5jb21tYW5kLmxpc3QnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZWdpc3RlcihkaXNwYXRjaGVyOiBDb21tYW5kRGlzcGF0Y2hlcjxhbnk+KSB7XG4gICAgICAgIGRpc3BhdGNoZXIucmVnaXN0ZXIoXG4gICAgICAgICAgICBsaXRlcmFsKCdsaXN0JykuZXhlY3V0ZXMoYXN5bmMgKGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0LmdldFNvdXJjZSgpIGFzIFBsYXllcjtcbiAgICAgICAgICAgICAgICBjb25zdCBwbGF5ZXJzID0gc291cmNlLmdldFNlcnZlcigpLmdldFNlc3Npb25NYW5hZ2VyKCkuZ2V0QWxsUGxheWVycygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBsYXllckFycmF5ID0gQXJyYXkuZnJvbShwbGF5ZXJzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXhQbGF5ZXJzID0gc291cmNlLmdldFNlcnZlcigpLmdldENvbmZpZygpLmdldE1heFBsYXllcnMoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb3VudGVyID0gcGxheWVyQXJyYXkubGVuZ3RoO1xuICAgICAgICAgICAgICAgIGNvbnN0IGFuc3dlciA9IHBsYXllckFycmF5Lm1hcCgocGxheWVyKSA9PiBwbGF5ZXIuZ2V0TmFtZSgpKS5qb2luKCcsICcpO1xuXG4gICAgICAgICAgICAgICAgYXdhaXQgc291cmNlLnNlbmRNZXNzYWdlKGBUaGVyZSBhcmUgJHtjb3VudGVyfS8ke21heFBsYXllcnN9IHBsYXllcnMgb25saW5lOmApO1xuICAgICAgICAgICAgICAgIGlmIChhbnN3ZXIpIGF3YWl0IHNvdXJjZS5zZW5kTWVzc2FnZShhbnN3ZXIpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBTUEsTUFBcUIsb0JBQW9CLE9BQVEsQ0FBQTtBQUFBLEVBQ3RDLFdBQWMsR0FBQTtBQUNqQixJQUFNLEtBQUEsQ0FBQTtBQUFBLE1BQ0YsRUFBSSxFQUFBLGdCQUFBO0FBQUEsTUFDSixXQUFhLEVBQUEsOEJBQUE7QUFBQSxNQUNiLFVBQVksRUFBQTtBQUFBLEtBQ2YsQ0FBQTtBQUFBO0FBQ0wsRUFFQSxNQUFhLFNBQVMsVUFBb0MsRUFBQTtBQUN0RCxJQUFXLFVBQUEsQ0FBQSxRQUFBO0FBQUEsTUFDUCxPQUFRLENBQUEsTUFBTSxDQUFFLENBQUEsUUFBQSxDQUFTLE9BQU8sT0FBWSxLQUFBO0FBQ3hDLFFBQU0sTUFBQSxNQUFBLEdBQVMsUUFBUSxTQUFVLEVBQUE7QUFDakMsUUFBQSxNQUFNLFVBQVUsTUFBTyxDQUFBLFNBQUEsRUFBWSxDQUFBLGlCQUFBLEdBQW9CLGFBQWMsRUFBQTtBQUNyRSxRQUFNLE1BQUEsV0FBQSxHQUFjLEtBQU0sQ0FBQSxJQUFBLENBQUssT0FBTyxDQUFBO0FBQ3RDLFFBQUEsTUFBTSxhQUFhLE1BQU8sQ0FBQSxTQUFBLEVBQVksQ0FBQSxTQUFBLEdBQVksYUFBYyxFQUFBO0FBQ2hFLFFBQUEsTUFBTSxVQUFVLFdBQVksQ0FBQSxNQUFBO0FBQzVCLFFBQU0sTUFBQSxNQUFBLEdBQVMsV0FBWSxDQUFBLEdBQUEsQ0FBSSxDQUFDLE1BQUEsS0FBVyxPQUFPLE9BQVEsRUFBQyxDQUFFLENBQUEsSUFBQSxDQUFLLElBQUksQ0FBQTtBQUV0RSxRQUFBLE1BQU0sT0FBTyxXQUFZLENBQUEsQ0FBQSxVQUFBLEVBQWEsT0FBTyxDQUFBLENBQUEsRUFBSSxVQUFVLENBQWtCLGdCQUFBLENBQUEsQ0FBQTtBQUM3RSxRQUFBLElBQUksTUFBUSxFQUFBLE1BQU0sTUFBTyxDQUFBLFdBQUEsQ0FBWSxNQUFNLENBQUE7QUFBQSxPQUM5QztBQUFBLEtBQ0w7QUFBQTtBQUVSOzs7OyJ9