papermc-cli
Version:
A CLI to help in creating PaperMC Minecraft servers.
184 lines • 6.84 kB
JavaScript
;
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