UNPKG

papermc-cli

Version:

A CLI to help in creating PaperMC Minecraft servers.

184 lines 6.84 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.startScriptPrompt = exports.serverPropertiesPrompt = exports.jarPrompt = void 0; const inquirer_1 = __importDefault(require("inquirer")); const paper_1 = require("./paper"); const bb = new inquirer_1.default.ui.BottomBar(); const jarPrompt = () => __awaiter(void 0, void 0, void 0, function* () { return yield inquirer_1.default.prompt([ { type: 'list', name: 'version', message: 'Which Minecraft version?', default: 0, loop: false, choices: () => __awaiter(void 0, void 0, void 0, function* () { bb.updateBottomBar('Fetching Paper Versions...'); const data = yield (0, paper_1.getVersions)(); let vers = data.versions.reverse().map(v => ({ name: v, value: v })); vers[0].name += ' (latest)'; bb.updateBottomBar(''); return vers; }), }, { type: 'list', name: 'build', message: 'Which paper build?', default: 0, loop: false, choices: (answers) => __awaiter(void 0, void 0, void 0, function* () { bb.updateBottomBar('Fetching Paper Builds...'); const data = yield (0, paper_1.getBuilds)(answers.version); let vers = data.builds.reverse().map(v => ({ name: v + '', value: v })); vers[0].name += ' (latest)'; bb.updateBottomBar(''); return vers; }), // validate: (input: string) => { // if (isNaN(+input) || +input < 1024 || +input > 65535 || Math.floor(+input) !== +input) { // return 'Please enter an integer between 1024 and 65535!'; // } // return true; // }, }, ]); }); exports.jarPrompt = jarPrompt; const serverPropertiesPrompt = () => __awaiter(void 0, void 0, void 0, function* () { const { customise } = yield inquirer_1.default.prompt([ { type: 'confirm', name: 'customise', message: 'Would you like to customise the server properties?', default: true, } ]); if (!customise) return null; return yield inquirer_1.default.prompt([ { type: 'input', name: 'opped', message: 'Which users should be opped? (separate by comma)', filter: (input) => { return input.split(',').map(v => v.trim()); }, }, { type: 'input', name: 'whitelist', message: 'Which users should be whitelisted? (separate by comma, blank for whitelist off)', transformer: (input) => { if (input === null) return 'Disabled'.cyan; return input; }, filter: (input) => { return input.length === 0 ? null : input.split(',').map(v => v.trim()); }, }, { type: 'list', name: 'gamemode', message: 'Which gamemode should be used?', choices: ['survival', 'creative', 'adventure', 'spectator'], default: 0, transformer: (input) => { return input.charAt(0).toUpperCase() + input.slice(1); }, }, { type: 'confirm', name: 'commandBlocks', message: 'Enable Command Blocks?', default: true, }, { type: 'input', name: 'motd', message: 'MOTD (Text below server name in menu)', default: 'A Minecraft server', }, { type: 'confirm', name: 'pvp', message: 'Enable PvP?', default: true, }, { type: 'input', name: 'viewDistance', message: 'Server view distance?', default: 10, validate: (input) => { if (isNaN(+input) || +input < 1 || Math.floor(+input) !== +input) { return 'Please enter a positive integer!'; } return true; }, }, { type: 'input', name: 'port', message: 'What port should the server be running on?', default: 25565, validate: (input) => { if (isNaN(+input) || +input < 1024 || +input > 65535 || Math.floor(+input) !== +input) { return 'Please enter an integer between 1024 and 65535!'; } return true; }, }, { type: 'confirm', name: 'eula', message: 'Do you agree to Minecraft\'s EULA?', default: true, }, ]); }); exports.serverPropertiesPrompt = serverPropertiesPrompt; const startScriptPrompt = () => __awaiter(void 0, void 0, void 0, function* () { return yield inquirer_1.default.prompt([ { type: 'confirm', name: 'createScript', message: 'Would you like to generate s start script?', default: true, }, { type: 'input', name: 'memory', message: 'How many GB of memory should the server use?', default: '2', validate: (input) => { if (isNaN(+input) || +input < 1 || Math.floor(+input) !== +input) { return 'Please enter a positive integer!'; } return true; }, when: (answers) => answers.createScript, } ]); }); exports.startScriptPrompt = startScriptPrompt; //# sourceMappingURL=prompt.js.map