UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

60 lines (59 loc) 11.2 kB
import { Command } from "../Command.es.js"; import { argument, greedyString, literal, string } from "@jsprismarine/brigadier"; //#region src/command/jsprismarine/DebugCommand.ts var DebugCommand = class extends Command { constructor() { super({ id: "jsprismarine:debug", description: "Debug output.", permission: "jsprismarine.command.debug" }); } async register(dispatcher) { dispatcher.register(literal("debug").then(argument("action", string()).then(argument("value", greedyString()).executes(async (context) => { const source = context.getSource(); const action = context.getArgument("action"); const value = context.getArgument("value"); switch (action) { case "loadWorld": { const worldData = source.getServer().getConfig().getWorlds()[value]; return `Loaded world ${(await source.getServer().getWorldManager().loadWorld(worldData, value)).getName()}`; } case "changeWorld": { const world = source.getServer().getWorldManager().getWorldByName(value); await source.setWorld(world); return `Moved ${source.getFormattedUsername()} to ${world.getName()}`; } case "setConfig": { const config = value.split(" ")[0]; const data = value.replace(`${config} `, ""); source.getServer().getConfig()[config] = data; return `Set config ${config} to ${data}`; } default: throw new Error("Invalid action!"); } }))).executes(async (context) => { const source = context.getSource(); const worlds = source.getServer().getWorldManager().getWorlds(); await source.sendMessage(`§dWorlds Loaded§r (${worlds.length}):`); for (const world of worlds) { await source.sendMessage(`- uuid: §a${world.getUUID()}§r, name: §b${world.getName()}§r, ticks: §b${world.getTicks()}§r`); const gamerules = Array.from(world.getGameruleManager().getGamerules()); await source.sendMessage(` §dGamerules§r (${gamerules.length}):`); await Promise.all(gamerules.map(async ([id, value]) => { await source.sendMessage(` - id: §a${id}§r, value: §b${value}§r`); })); const entities = world.getEntities(); await source.sendMessage(` §dEntities§r (${entities.length}):`); await Promise.all(entities.map(async (e) => source.sendMessage(` - ${e.toString()}`))); } await source.sendMessage(`§dConfig§r:`); await source.sendMessage(` - online-mode: ${source.getServer().getConfig().getOnlineMode()}`); await source.sendMessage(` - max-players: ${source.getServer().getConfig().getMaxPlayers()}`); await source.sendMessage(` - motd: ${source.getServer().getConfig().getMotd()}`); })); } }; //#endregion export { DebugCommand as default }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVidWdDb21tYW5kLmVzLmpzIiwibmFtZXMiOltdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kL2pzcHJpc21hcmluZS9EZWJ1Z0NvbW1hbmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb21tYW5kRGlzcGF0Y2hlciB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcbmltcG9ydCB7IGFyZ3VtZW50LCBncmVlZHlTdHJpbmcsIGxpdGVyYWwsIHN0cmluZyB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcblxuaW1wb3J0IHR5cGUgUGxheWVyIGZyb20gJy4uLy4uL1BsYXllcic7XG5pbXBvcnQgdHlwZSB7IFdvcmxkRGF0YSB9IGZyb20gJy4uLy4uL3dvcmxkL1dvcmxkTWFuYWdlcic7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnLi4vQ29tbWFuZCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERlYnVnQ29tbWFuZCBleHRlbmRzIENvbW1hbmQge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgaWQ6ICdqc3ByaXNtYXJpbmU6ZGVidWcnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdEZWJ1ZyBvdXRwdXQuJyxcbiAgICAgICAgICAgIHBlcm1pc3Npb246ICdqc3ByaXNtYXJpbmUuY29tbWFuZC5kZWJ1ZydcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyKGRpc3BhdGNoZXI6IENvbW1hbmREaXNwYXRjaGVyPGFueT4pIHtcbiAgICAgICAgZGlzcGF0Y2hlci5yZWdpc3RlcihcbiAgICAgICAgICAgIGxpdGVyYWwoJ2RlYnVnJylcbiAgICAgICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQoJ2FjdGlvbicsIHN0cmluZygpKS50aGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQoJ3ZhbHVlJywgZ3JlZWR5U3RyaW5nKCkpLmV4ZWN1dGVzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gY29udGV4dC5nZXRTb3VyY2UoKSBhcyBQbGF5ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gY29udGV4dC5nZXRBcmd1bWVudCgnYWN0aW9uJykgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gY29udGV4dC5nZXRBcmd1bWVudCgndmFsdWUnKSBhcyBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdsb2FkV29ybGQnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JsZERhdGEgPSBzb3VyY2UuZ2V0U2VydmVyKCkuZ2V0Q29uZmlnKCkuZ2V0V29ybGRzKClbdmFsdWVdIGFzIFdvcmxkRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdvcmxkID0gYXdhaXQgc291cmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldFNlcnZlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldFdvcmxkTWFuYWdlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmxvYWRXb3JsZCh3b3JsZERhdGEsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgTG9hZGVkIHdvcmxkICR7d29ybGQuZ2V0TmFtZSgpfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2hhbmdlV29ybGQnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JsZCA9IHNvdXJjZS5nZXRTZXJ2ZXIoKS5nZXRXb3JsZE1hbmFnZXIoKS5nZXRXb3JsZEJ5TmFtZSh2YWx1ZSkhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc291cmNlLnNldFdvcmxkKHdvcmxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgTW92ZWQgJHtzb3VyY2UuZ2V0Rm9ybWF0dGVkVXNlcm5hbWUoKX0gdG8gJHt3b3JsZC5nZXROYW1lKCl9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzZXRDb25maWcnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSB2YWx1ZS5zcGxpdCgnICcpWzBdITtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB2YWx1ZS5yZXBsYWNlKGAke2NvbmZpZ30gYCwgJycpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc291cmNlLmdldFNlcnZlcigpLmdldENvbmZpZygpIGFzIGFueSlbY29uZmlnXSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYFNldCBjb25maWcgJHtjb25maWd9IHRvICR7ZGF0YX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBhY3Rpb24hJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5leGVjdXRlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0LmdldFNvdXJjZSgpIGFzIFBsYXllcjtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JsZHMgPSBzb3VyY2UuZ2V0U2VydmVyKCkuZ2V0V29ybGRNYW5hZ2VyKCkuZ2V0V29ybGRzKCk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNvdXJjZS5zZW5kTWVzc2FnZShgwqdkV29ybGRzIExvYWRlZMKnciAoJHt3b3JsZHMubGVuZ3RofSk6YCk7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgd29ybGQgb2Ygd29ybGRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBzb3VyY2Uuc2VuZE1lc3NhZ2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYC0gdXVpZDogwqdhJHt3b3JsZC5nZXRVVUlEKCl9wqdyLCBuYW1lOiDCp2Ike3dvcmxkLmdldE5hbWUoKX3Cp3IsIHRpY2tzOiDCp2Ike3dvcmxkLmdldFRpY2tzKCl9wqdyYFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2FtZXJ1bGVzID0gQXJyYXkuZnJvbSh3b3JsZC5nZXRHYW1lcnVsZU1hbmFnZXIoKS5nZXRHYW1lcnVsZXMoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBzb3VyY2Uuc2VuZE1lc3NhZ2UoYCAgwqdkR2FtZXJ1bGVzwqdyICgke2dhbWVydWxlcy5sZW5ndGh9KTpgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhbWVydWxlcy5tYXAoYXN5bmMgKFtpZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNvdXJjZS5zZW5kTWVzc2FnZShgICAtIGlkOiDCp2Eke2lkfcKnciwgdmFsdWU6IMKnYiR7dmFsdWV9wqdyYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVudGl0aWVzID0gd29ybGQuZ2V0RW50aXRpZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNvdXJjZS5zZW5kTWVzc2FnZShgICDCp2RFbnRpdGllc8KnciAoJHtlbnRpdGllcy5sZW5ndGh9KTpgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGVudGl0aWVzLm1hcChhc3luYyAoZSkgPT4gc291cmNlLnNlbmRNZXNzYWdlKGAgIC0gJHtlLnRvU3RyaW5nKCl9YCkpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNvdXJjZS5zZW5kTWVzc2FnZShgwqdkQ29uZmlnwqdyOmApO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzb3VyY2Uuc2VuZE1lc3NhZ2UoYCAgLSBvbmxpbmUtbW9kZTogJHtzb3VyY2UuZ2V0U2VydmVyKCkuZ2V0Q29uZmlnKCkuZ2V0T25saW5lTW9kZSgpfWApO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzb3VyY2Uuc2VuZE1lc3NhZ2UoYCAgLSBtYXgtcGxheWVyczogJHtzb3VyY2UuZ2V0U2VydmVyKCkuZ2V0Q29uZmlnKCkuZ2V0TWF4UGxheWVycygpfWApO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzb3VyY2Uuc2VuZE1lc3NhZ2UoYCAgLSBtb3RkOiAke3NvdXJjZS5nZXRTZXJ2ZXIoKS5nZXRDb25maWcoKS5nZXRNb3RkKCl9YCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7OztBQU9BLElBQXFCLGVBQXJCLGNBQTBDLFFBQVE7Q0FDOUMsY0FBcUI7RUFDakIsTUFBTTtHQUNGLElBQUk7R0FDSixhQUFhO0dBQ2IsWUFBWTtFQUNoQixDQUFDO0NBQ0w7Q0FFQSxNQUFhLFNBQVMsWUFBb0M7RUFDdEQsV0FBVyxTQUNQLFFBQVEsT0FBTyxFQUNWLEtBQ0csU0FBUyxVQUFVLE9BQU8sQ0FBQyxFQUFFLEtBQ3pCLFNBQVMsU0FBUyxhQUFhLENBQUMsRUFBRSxTQUFTLE9BQU8sWUFBWTtHQUMxRCxNQUFNLFNBQVMsUUFBUSxVQUFVO0dBQ2pDLE1BQU0sU0FBUyxRQUFRLFlBQVksUUFBUTtHQUMzQyxNQUFNLFFBQVEsUUFBUSxZQUFZLE9BQU87R0FFekMsUUFBUSxRQUFSO0lBQ0ksS0FBSyxhQUFhO0tBQ2QsTUFBTSxZQUFZLE9BQU8sVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUU7S0FLN0QsT0FBTyxpQkFBZ0IsTUFKSCxPQUNmLFVBQVUsRUFDVixnQkFBZ0IsRUFDaEIsVUFBVSxXQUFXLEtBQUssR0FDRixRQUFRO0lBQ3pDO0lBQ0EsS0FBSyxlQUFlO0tBQ2hCLE1BQU0sUUFBUSxPQUFPLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEtBQUs7S0FDdkUsTUFBTSxPQUFPLFNBQVMsS0FBSztLQUMzQixPQUFPLFNBQVMsT0FBTyxxQkFBcUIsRUFBRSxNQUFNLE1BQU0sUUFBUTtJQUN0RTtJQUNBLEtBQUssYUFBYTtLQUNkLE1BQU0sU0FBUyxNQUFNLE1BQU0sR0FBRyxFQUFFO0tBQ2hDLE1BQU0sT0FBTyxNQUFNLFFBQVEsR0FBRyxPQUFPLElBQUksRUFBRTtLQUUzQyxPQUFRLFVBQVUsRUFBRSxVQUFVLEVBQVUsVUFBVTtLQUNsRCxPQUFPLGNBQWMsT0FBTyxNQUFNO0lBQ3RDO0lBQ0EsU0FDSSxNQUFNLElBQUksTUFBTSxpQkFBaUI7R0FFekM7RUFDSixDQUFDLENBQ0wsQ0FDSixFQUNDLFNBQVMsT0FBTyxZQUFZO0dBQ3pCLE1BQU0sU0FBUyxRQUFRLFVBQVU7R0FFakMsTUFBTSxTQUFTLE9BQU8sVUFBVSxFQUFFLGdCQUFnQixFQUFFLFVBQVU7R0FDOUQsTUFBTSxPQUFPLFlBQVksc0JBQXNCLE9BQU8sT0FBTyxHQUFHO0dBQ2hFLEtBQUssTUFBTSxTQUFTLFFBQVE7SUFDeEIsTUFBTSxPQUFPLFlBQ1QsYUFBYSxNQUFNLFFBQVEsRUFBRSxjQUFjLE1BQU0sUUFBUSxFQUFFLGVBQWUsTUFBTSxTQUFTLEVBQUUsR0FDL0Y7SUFFQSxNQUFNLFlBQVksTUFBTSxLQUFLLE1BQU0sbUJBQW1CLEVBQUUsYUFBYSxDQUFDO0lBQ3RFLE1BQU0sT0FBTyxZQUFZLG9CQUFvQixVQUFVLE9BQU8sR0FBRztJQUNqRSxNQUFNLFFBQVEsSUFDVixVQUFVLElBQUksT0FBTyxDQUFDLElBQUksV0FBVztLQUNqQyxNQUFNLE9BQU8sWUFBWSxhQUFhLEdBQUcsZUFBZSxNQUFNLEdBQUc7SUFDckUsQ0FBQyxDQUNMO0lBRUEsTUFBTSxXQUFXLE1BQU0sWUFBWTtJQUNuQyxNQUFNLE9BQU8sWUFBWSxtQkFBbUIsU0FBUyxPQUFPLEdBQUc7SUFDL0QsTUFBTSxRQUFRLElBQUksU0FBUyxJQUFJLE9BQU8sTUFBTSxPQUFPLFlBQVksT0FBTyxFQUFFLFNBQVMsR0FBRyxDQUFDLENBQUM7R0FDMUY7R0FFQSxNQUFNLE9BQU8sWUFBWSxhQUFhO0dBQ3RDLE1BQU0sT0FBTyxZQUFZLG9CQUFvQixPQUFPLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxHQUFHO0dBQzdGLE1BQU0sT0FBTyxZQUFZLG9CQUFvQixPQUFPLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxHQUFHO0dBQzdGLE1BQU0sT0FBTyxZQUFZLGFBQWEsT0FBTyxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsR0FBRztFQUNwRixDQUFDLENBQ1Q7Q0FDSjtBQUNKIn0=