UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

77 lines (72 loc) 13.6 kB
'use strict'; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } }); const brigadier = require('@jsprismarine/brigadier'); const command_Command = require('../Command.cjs.cjs'); class DebugCommand extends command_Command.Command { constructor() { super({ id: "jsprismarine:debug", description: "Debug output.", permission: "jsprismarine.command.debug" }); } async register(dispatcher) { dispatcher.register( brigadier.literal("debug").then( brigadier.argument("action", brigadier.string()).then( brigadier.argument("value", brigadier.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]; const world = await source.getServer().getWorldManager().loadWorld(worldData, value); return `Loaded world ${world.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()}`); }) ); } } exports.default = DebugCommand; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVidWdDb21tYW5kLmNqcy5janMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kL2pzcHJpc21hcmluZS9EZWJ1Z0NvbW1hbmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb21tYW5kRGlzcGF0Y2hlciB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcbmltcG9ydCB7IGFyZ3VtZW50LCBncmVlZHlTdHJpbmcsIGxpdGVyYWwsIHN0cmluZyB9IGZyb20gJ0Bqc3ByaXNtYXJpbmUvYnJpZ2FkaWVyJztcblxuaW1wb3J0IHR5cGUgUGxheWVyIGZyb20gJy4uLy4uL1BsYXllcic7XG5pbXBvcnQgdHlwZSB7IFdvcmxkRGF0YSB9IGZyb20gJy4uLy4uL3dvcmxkL1dvcmxkTWFuYWdlcic7XG5pbXBvcnQgeyBDb21tYW5kIH0gZnJvbSAnLi4vQ29tbWFuZCc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERlYnVnQ29tbWFuZCBleHRlbmRzIENvbW1hbmQge1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoe1xuICAgICAgICAgICAgaWQ6ICdqc3ByaXNtYXJpbmU6ZGVidWcnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246ICdEZWJ1ZyBvdXRwdXQuJyxcbiAgICAgICAgICAgIHBlcm1pc3Npb246ICdqc3ByaXNtYXJpbmUuY29tbWFuZC5kZWJ1ZydcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZ2lzdGVyKGRpc3BhdGNoZXI6IENvbW1hbmREaXNwYXRjaGVyPGFueT4pIHtcbiAgICAgICAgZGlzcGF0Y2hlci5yZWdpc3RlcihcbiAgICAgICAgICAgIGxpdGVyYWwoJ2RlYnVnJylcbiAgICAgICAgICAgICAgICAudGhlbihcbiAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQoJ2FjdGlvbicsIHN0cmluZygpKS50aGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQoJ3ZhbHVlJywgZ3JlZWR5U3RyaW5nKCkpLmV4ZWN1dGVzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc291cmNlID0gY29udGV4dC5nZXRTb3VyY2UoKSBhcyBQbGF5ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gY29udGV4dC5nZXRBcmd1bWVudCgnYWN0aW9uJykgYXMgc3RyaW5nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gY29udGV4dC5nZXRBcmd1bWVudCgndmFsdWUnKSBhcyBzdHJpbmc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGFjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdsb2FkV29ybGQnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JsZERhdGEgPSBzb3VyY2UuZ2V0U2VydmVyKCkuZ2V0Q29uZmlnKCkuZ2V0V29ybGRzKClbdmFsdWVdIGFzIFdvcmxkRGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHdvcmxkID0gYXdhaXQgc291cmNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldFNlcnZlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldFdvcmxkTWFuYWdlcigpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmxvYWRXb3JsZCh3b3JsZERhdGEsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgTG9hZGVkIHdvcmxkICR7d29ybGQuZ2V0TmFtZSgpfWA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2hhbmdlV29ybGQnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JsZCA9IHNvdXJjZS5nZXRTZXJ2ZXIoKS5nZXRXb3JsZE1hbmFnZXIoKS5nZXRXb3JsZEJ5TmFtZSh2YWx1ZSkhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc291cmNlLnNldFdvcmxkKHdvcmxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBgTW92ZWQgJHtzb3VyY2UuZ2V0Rm9ybWF0dGVkVXNlcm5hbWUoKX0gdG8gJHt3b3JsZC5nZXROYW1lKCl9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzZXRDb25maWcnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSB2YWx1ZS5zcGxpdCgnICcpWzBdITtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB2YWx1ZS5yZXBsYWNlKGAke2NvbmZpZ30gYCwgJycpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc291cmNlLmdldFNlcnZlcigpLmdldENvbmZpZygpIGFzIGFueSlbY29uZmlnXSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYFNldCBjb25maWcgJHtjb25maWd9IHRvICR7ZGF0YX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBhY3Rpb24hJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5leGVjdXRlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0LmdldFNvdXJjZSgpIGFzIFBsYXllcjtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCB3b3JsZHMgPSBzb3VyY2UuZ2V0U2VydmVyKCkuZ2V0V29ybGRNYW5hZ2VyKCkuZ2V0V29ybGRzKCk7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNvdXJjZS5zZW5kTWVzc2FnZShgwqdkV29ybGRzIExvYWRlZMKnciAoJHt3b3JsZHMubGVuZ3RofSk6YCk7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgd29ybGQgb2Ygd29ybGRzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBzb3VyY2Uuc2VuZE1lc3NhZ2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYC0gdXVpZDogwqdhJHt3b3JsZC5nZXRVVUlEKCl9wqdyLCBuYW1lOiDCp2Ike3dvcmxkLmdldE5hbWUoKX3Cp3IsIHRpY2tzOiDCp2Ike3dvcmxkLmdldFRpY2tzKCl9wqdyYFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2FtZXJ1bGVzID0gQXJyYXkuZnJvbSh3b3JsZC5nZXRHYW1lcnVsZU1hbmFnZXIoKS5nZXRHYW1lcnVsZXMoKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBzb3VyY2Uuc2VuZE1lc3NhZ2UoYCAgwqdkR2FtZXJ1bGVzwqdyICgke2dhbWVydWxlcy5sZW5ndGh9KTpgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdhbWVydWxlcy5tYXAoYXN5bmMgKFtpZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNvdXJjZS5zZW5kTWVzc2FnZShgICAtIGlkOiDCp2Eke2lkfcKnciwgdmFsdWU6IMKnYiR7dmFsdWV9wqdyYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVudGl0aWVzID0gd29ybGQuZ2V0RW50aXRpZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNvdXJjZS5zZW5kTWVzc2FnZShgICDCp2RFbnRpdGllc8KnciAoJHtlbnRpdGllcy5sZW5ndGh9KTpgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGVudGl0aWVzLm1hcChhc3luYyAoZSkgPT4gc291cmNlLnNlbmRNZXNzYWdlKGAgIC0gJHtlLnRvU3RyaW5nKCl9YCkpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNvdXJjZS5zZW5kTWVzc2FnZShgwqdkQ29uZmlnwqdyOmApO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzb3VyY2Uuc2VuZE1lc3NhZ2UoYCAgLSBvbmxpbmUtbW9kZTogJHtzb3VyY2UuZ2V0U2VydmVyKCkuZ2V0Q29uZmlnKCkuZ2V0T25saW5lTW9kZSgpfWApO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzb3VyY2Uuc2VuZE1lc3NhZ2UoYCAgLSBtYXgtcGxheWVyczogJHtzb3VyY2UuZ2V0U2VydmVyKCkuZ2V0Q29uZmlnKCkuZ2V0TWF4UGxheWVycygpfWApO1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCBzb3VyY2Uuc2VuZE1lc3NhZ2UoYCAgLSBtb3RkOiAke3NvdXJjZS5nZXRTZXJ2ZXIoKS5nZXRDb25maWcoKS5nZXRNb3RkKCl9YCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOlsiQ29tbWFuZCIsImxpdGVyYWwiLCJhcmd1bWVudCIsInN0cmluZyIsImdyZWVkeVN0cmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU9BLE1BQXFCLHFCQUFxQkEsdUJBQVEsQ0FBQTtBQUFBLEVBQ3ZDLFdBQWMsR0FBQTtBQUNqQixJQUFNLEtBQUEsQ0FBQTtBQUFBLE1BQ0YsRUFBSSxFQUFBLG9CQUFBO0FBQUEsTUFDSixXQUFhLEVBQUEsZUFBQTtBQUFBLE1BQ2IsVUFBWSxFQUFBO0FBQUEsS0FDZixDQUFBO0FBQUE7QUFDTCxFQUVBLE1BQWEsU0FBUyxVQUFvQyxFQUFBO0FBQ3RELElBQVcsVUFBQSxDQUFBLFFBQUE7QUFBQSxNQUNQQyxpQkFBQSxDQUFRLE9BQU8sQ0FDVixDQUFBLElBQUE7QUFBQSxRQUNHQyxrQkFBUyxDQUFBLFFBQUEsRUFBVUMsZ0JBQU8sRUFBQyxDQUFFLENBQUEsSUFBQTtBQUFBLFVBQ3pCRCxtQkFBUyxPQUFTLEVBQUFFLHNCQUFBLEVBQWMsQ0FBRSxDQUFBLFFBQUEsQ0FBUyxPQUFPLE9BQVksS0FBQTtBQUMxRCxZQUFNLE1BQUEsTUFBQSxHQUFTLFFBQVEsU0FBVSxFQUFBO0FBQ2pDLFlBQU0sTUFBQSxNQUFBLEdBQVMsT0FBUSxDQUFBLFdBQUEsQ0FBWSxRQUFRLENBQUE7QUFDM0MsWUFBTSxNQUFBLEtBQUEsR0FBUSxPQUFRLENBQUEsV0FBQSxDQUFZLE9BQU8sQ0FBQTtBQUV6QyxZQUFBLFFBQVEsTUFBUTtBQUFBLGNBQ1osS0FBSyxXQUFhLEVBQUE7QUFDZCxnQkFBTSxNQUFBLFNBQUEsR0FBWSxPQUFPLFNBQVUsRUFBQSxDQUFFLFdBQVksQ0FBQSxTQUFBLEdBQVksS0FBSyxDQUFBO0FBQ2xFLGdCQUFNLE1BQUEsS0FBQSxHQUFRLE1B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