UNPKG

@jsprismarine/minecraft

Version:
64 lines (63 loc) 6.22 kB
import { GametypeInvalidError } from "@jsprismarine/errors"; //#region src/Gametype.ts /** * Gametype. * @remarks Also known as `Gamemode`. * @group Gametype */ var Gametype = /* @__PURE__ */ function(Gametype) { Gametype[Gametype["UNDEFINED"] = -1] = "UNDEFINED"; Gametype[Gametype["SURVIVAL"] = 0] = "SURVIVAL"; Gametype[Gametype["CREATIVE"] = 1] = "CREATIVE"; Gametype[Gametype["ADVENTURE"] = 2] = "ADVENTURE"; Gametype[Gametype["DEFAULT"] = 0] = "DEFAULT"; Gametype[Gametype["SPECTATOR"] = 3] = "SPECTATOR"; Gametype[Gametype["WORLD_DEFAULT"] = 0] = "WORLD_DEFAULT"; return Gametype; }({}); /** * Get Gametype name. * @param {Gametype} mode - The Gametype to get the name of. * @returns {GametypeName} The Gametype name. * @throws {GametypeInvalidError} Thrown if the Gametype is invalid. * @group Gametype * @example * ```typescript * const gametype = getGametypeName(Gametype.SURVIVAL); * console.log(gametype); // 'Survival' * ``` */ function getGametypeName(mode) { switch (mode) { case 0: return "Survival"; case 1: return "Creative"; case 2: return "Adventure"; case 3: return "Spectator"; default: throw new GametypeInvalidError(); } } /** * Get Gametype from name. * @param {GametypeName | string | number} mode - The Gametype to get the ID of. * @returns {Gametype} The Gametype ID. * @throws {GametypeInvalidError} Thrown if the Gametype is invalid. * @group Gametype * @example * ```typescript * const gametype = getGametypeId('survival'); * console.log(gametype); // 0 * ``` */ function getGametypeId(mode) { const type = mode.toString().trim().toLowerCase(); switch (true) { case type === "0" || "survival".startsWith(type): return 0; case type === "1" || "creative".startsWith(type): return 1; case type === "2" || "adventure".startsWith(type): return 2; case type === "3" || "spectator".startsWith(type): return 3; default: throw new GametypeInvalidError(mode.toString()); } } //#endregion export { Gametype, getGametypeId, getGametypeName }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2FtZXR5cGUuZXMuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vc3JjL0dhbWV0eXBlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdhbWV0eXBlSW52YWxpZEVycm9yIH0gZnJvbSAnQGpzcHJpc21hcmluZS9lcnJvcnMnO1xuXG4vKipcbiAqIEdhbWV0eXBlLlxuICogQHJlbWFya3MgQWxzbyBrbm93biBhcyBgR2FtZW1vZGVgLlxuICogQGdyb3VwIEdhbWV0eXBlXG4gKi9cbmV4cG9ydCBlbnVtIEdhbWV0eXBlIHtcbiAgICBVTkRFRklORUQgPSAtMSxcbiAgICBTVVJWSVZBTCA9IDAsXG4gICAgQ1JFQVRJVkUgPSAxLFxuICAgIEFEVkVOVFVSRSA9IDIsXG4gICAgREVGQVVMVCA9IDAsXG4gICAgU1BFQ1RBVE9SID0gMyxcbiAgICBXT1JMRF9ERUZBVUxUID0gU1VSVklWQUxcbn1cblxuLyoqXG4gKiBHYW1ldHlwZSBuYW1lLlxuICogQGdyb3VwIEdhbWV0eXBlXG4gKi9cbmV4cG9ydCB0eXBlIEdhbWV0eXBlTmFtZSA9ICdTdXJ2aXZhbCcgfCAnQ3JlYXRpdmUnIHwgJ0FkdmVudHVyZScgfCAnU3BlY3RhdG9yJztcblxuLyoqXG4gKiBHZXQgR2FtZXR5cGUgbmFtZS5cbiAqIEBwYXJhbSB7R2FtZXR5cGV9IG1vZGUgLSBUaGUgR2FtZXR5cGUgdG8gZ2V0IHRoZSBuYW1lIG9mLlxuICogQHJldHVybnMge0dhbWV0eXBlTmFtZX0gVGhlIEdhbWV0eXBlIG5hbWUuXG4gKiBAdGhyb3dzIHtHYW1ldHlwZUludmFsaWRFcnJvcn0gVGhyb3duIGlmIHRoZSBHYW1ldHlwZSBpcyBpbnZhbGlkLlxuICogQGdyb3VwIEdhbWV0eXBlXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3QgZ2FtZXR5cGUgPSBnZXRHYW1ldHlwZU5hbWUoR2FtZXR5cGUuU1VSVklWQUwpO1xuICogY29uc29sZS5sb2coZ2FtZXR5cGUpOyAvLyAnU3Vydml2YWwnXG4gKiBgYGBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEdhbWV0eXBlTmFtZShtb2RlOiBHYW1ldHlwZSk6IEdhbWV0eXBlTmFtZSB7XG4gICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgIGNhc2UgR2FtZXR5cGUuU1VSVklWQUw6XG4gICAgICAgICAgICByZXR1cm4gJ1N1cnZpdmFsJztcbiAgICAgICAgY2FzZSBHYW1ldHlwZS5DUkVBVElWRTpcbiAgICAgICAgICAgIHJldHVybiAnQ3JlYXRpdmUnO1xuICAgICAgICBjYXNlIEdhbWV0eXBlLkFEVkVOVFVSRTpcbiAgICAgICAgICAgIHJldHVybiAnQWR2ZW50dXJlJztcbiAgICAgICAgY2FzZSBHYW1ldHlwZS5TUEVDVEFUT1I6XG4gICAgICAgICAgICByZXR1cm4gJ1NwZWN0YXRvcic7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgR2FtZXR5cGVJbnZhbGlkRXJyb3IoKTtcbiAgICB9XG59XG5cbi8qKlxuICogR2V0IEdhbWV0eXBlIGZyb20gbmFtZS5cbiAqIEBwYXJhbSB7R2FtZXR5cGVOYW1lIHwgc3RyaW5nIHwgbnVtYmVyfSBtb2RlIC0gVGhlIEdhbWV0eXBlIHRvIGdldCB0aGUgSUQgb2YuXG4gKiBAcmV0dXJucyB7R2FtZXR5cGV9IFRoZSBHYW1ldHlwZSBJRC5cbiAqIEB0aHJvd3Mge0dhbWV0eXBlSW52YWxpZEVycm9yfSBUaHJvd24gaWYgdGhlIEdhbWV0eXBlIGlzIGludmFsaWQuXG4gKiBAZ3JvdXAgR2FtZXR5cGVcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBnYW1ldHlwZSA9IGdldEdhbWV0eXBlSWQoJ3N1cnZpdmFsJyk7XG4gKiBjb25zb2xlLmxvZyhnYW1ldHlwZSk7IC8vIDBcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0R2FtZXR5cGVJZChtb2RlOiBHYW1ldHlwZU5hbWUgfCBzdHJpbmcgfCBudW1iZXIpOiBHYW1ldHlwZSB7XG4gICAgY29uc3QgdHlwZSA9IG1vZGUudG9TdHJpbmcoKS50cmltKCkudG9Mb3dlckNhc2UoKTtcblxuICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICBjYXNlIHR5cGUgPT09ICcwJyB8fCAnc3Vydml2YWwnLnN0YXJ0c1dpdGgodHlwZSk6XG4gICAgICAgICAgICByZXR1cm4gR2FtZXR5cGUuU1VSVklWQUw7XG4gICAgICAgIGNhc2UgdHlwZSA9PT0gJzEnIHx8ICdjcmVhdGl2ZScuc3RhcnRzV2l0aCh0eXBlKTpcbiAgICAgICAgICAgIHJldHVybiBHYW1ldHlwZS5DUkVBVElWRTtcbiAgICAgICAgY2FzZSB0eXBlID09PSAnMicgfHwgJ2FkdmVudHVyZScuc3RhcnRzV2l0aCh0eXBlKTpcbiAgICAgICAgICAgIHJldHVybiBHYW1ldHlwZS5BRFZFTlRVUkU7XG4gICAgICAgIGNhc2UgdHlwZSA9PT0gJzMnIHx8ICdzcGVjdGF0b3InLnN0YXJ0c1dpdGgodHlwZSk6XG4gICAgICAgICAgICByZXR1cm4gR2FtZXR5cGUuU1BFQ1RBVE9SO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEdhbWV0eXBlSW52YWxpZEVycm9yKG1vZGUudG9TdHJpbmcoKSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBT0EsSUFBWSxXQUFMLHlCQUFBLFVBQUE7Q0FDSCxTQUFBLFNBQUEsZUFBQSxNQUFBO0NBQ0EsU0FBQSxTQUFBLGNBQUEsS0FBQTtDQUNBLFNBQUEsU0FBQSxjQUFBLEtBQUE7Q0FDQSxTQUFBLFNBQUEsZUFBQSxLQUFBO0NBQ0EsU0FBQSxTQUFBLGFBQUEsS0FBQTtDQUNBLFNBQUEsU0FBQSxlQUFBLEtBQUE7Q0FDQSxTQUFBLFNBQUEsbUJBQUEsS0FBQTs7QUFDSixFQUFBLENBQUEsQ0FBQTs7Ozs7Ozs7Ozs7OztBQW9CQSxTQUFnQixnQkFBZ0IsTUFBOEI7Q0FDMUQsUUFBUSxNQUFSO0VBQ0ksS0FBQSxHQUNJLE9BQU87RUFDWCxLQUFBLEdBQ0ksT0FBTztFQUNYLEtBQUEsR0FDSSxPQUFPO0VBQ1gsS0FBQSxHQUNJLE9BQU87RUFDWCxTQUNJLE1BQU0sSUFBSSxxQkFBcUI7Q0FDdkM7QUFDSjs7Ozs7Ozs7Ozs7OztBQWNBLFNBQWdCLGNBQWMsTUFBZ0Q7Q0FDMUUsTUFBTSxPQUFPLEtBQUssU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZO0NBRWhELFFBQVEsTUFBUjtFQUNJLEtBQUssU0FBUyxPQUFPLFdBQVcsV0FBVyxJQUFJLEdBQzNDLE9BQUE7RUFDSixLQUFLLFNBQVMsT0FBTyxXQUFXLFdBQVcsSUFBSSxHQUMzQyxPQUFBO0VBQ0osS0FBSyxTQUFTLE9BQU8sWUFBWSxXQUFXLElBQUksR0FDNUMsT0FBQTtFQUNKLEtBQUssU0FBUyxPQUFPLFlBQVksV0FBVyxJQUFJLEdBQzVDLE9BQUE7RUFDSixTQUNJLE1BQU0sSUFBSSxxQkFBcUIsS0FBSyxTQUFTLENBQUM7Q0FDdEQ7QUFDSiJ9