UNPKG

observermc

Version:

A Node.js wrapper and API for multiple Minecraft Servers

59 lines (58 loc) 3.27 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.MinecraftServerEventParser = exports.DefaultTriggers = void 0; exports.DefaultTriggers = { paper: { starting: /\[(?<time>(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)) INFO\]: Starting minecraft server version (?<version>\d\.\d{1,}\.\d{1,}) */g, online: /\[(?<time>(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)) INFO\]: Done \((?<run>\d{1,2}.\d{3}s)\)! For help, type."help" */g, offline: /\[(?<time>(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)) INFO\]: ThreadedAnvilChunkStorage: All dimensions are saved */g, stopping: /\[(?<time>(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)) INFO\]: Stopping server */g, login: /\[(?<time>(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)) INFO\]: (?<user>\w+)\[\/(?<ip>(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])):(?<port>[0-9]+)\] logged in with entity id (?<entity>[0-9]+) at \(\[(?<world>\w+)\](?<x>\-?[0-9]+\.[0-9E]+), (?<y>\-?[0-9]+\.[0-9E]+), (?<z>\-?[0-9]+\.[0-9E]+)\) */g, logout: /\[(?<time>(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)) INFO\]: (?<user>\w+) left the game */g, rconRunning: /\[(?<time>(?:[01]\d|2[0123]):(?:[012345]\d):(?:[012345]\d)) INFO\]: RCON running on (?<ip>(?:(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}(?:[0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])):(?<port>[0-9]+) */g, }, }; var MinecraftServerEventParser = /** @class */ (function () { function MinecraftServerEventParser(serverType, customEvents) { this.serverType = serverType; this._triggers = exports.DefaultTriggers; if (customEvents) { // Create empty events object var cEvents = {}; // Save customEvents in empty events object cEvents[this.serverType] = customEvents; // Merge custom events into event triggers this._triggers = __assign(__assign({}, exports.DefaultTriggers), cEvents); } } MinecraftServerEventParser.prototype.parse = function (line) { var triggers = this._triggers[this.serverType]; for (var event_1 in triggers) { var matches = RegExp(triggers[event_1]).exec(line); if (matches !== null) { return { event: event_1, data: matches.groups }; } } return { event: "line", data: line }; }; Object.defineProperty(MinecraftServerEventParser.prototype, "triggers", { get: function () { return this._triggers[this.serverType]; }, enumerable: false, configurable: true }); return MinecraftServerEventParser; }()); exports.MinecraftServerEventParser = MinecraftServerEventParser;