UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

30 lines (27 loc) 4.03 kB
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