UNPKG

mcmotdparser

Version:

A parser for Minecraft Motds in the old style (plain text) and in the new style (json).

1 lines 3.36 kB
"use strict";function _typeof(r){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(r){return typeof r}:function(r){return r&&"function"==typeof Symbol&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r})(r)}function _createForOfIteratorHelper(r,t){var e;if("undefined"==typeof Symbol||null==r[Symbol.iterator]){if(Array.isArray(r)||(e=_unsupportedIterableToArray(r))||t&&r&&"number"==typeof r.length){e&&(r=e);var o=0,t=function(){};return{s:t,n:function(){return o>=r.length?{done:!0}:{done:!1,value:r[o++]}},e:function(r){throw r},f:t}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n,a=!0,l=!1;return{s:function(){e=r[Symbol.iterator]()},n:function(){var r=e.next();return a=r.done,r},e:function(r){l=!0,n=r},f:function(){try{a||null==e.return||e.return()}finally{if(l)throw n}}}}function _unsupportedIterableToArray(r,t){if(r){if("string"==typeof r)return _arrayLikeToArray(r,t);var e=Object.prototype.toString.call(r).slice(8,-1);return"Object"===e&&r.constructor&&(e=r.constructor.name),"Map"===e||"Set"===e?Array.from(r):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?_arrayLikeToArray(r,t):void 0}}function _arrayLikeToArray(r,t){(null==t||t>r.length)&&(t=r.length);for(var e=0,o=new Array(t);e<t;e++)o[e]=r[e];return o}var motdParser={classes:{bold:"mc_bold",italic:"mc_italic",underlined:"mc_underlined",strikethrough:"mc_strikethrough",obfuscated:"mc_obfuscated"},colors:{"§0":"black","§1":"dark_blue","§2":"dark_green","§3":"dark_aqua","§4":"dark_red","§5":"dark_purple","§6":"gold","§7":"gray","§8":"dark_gray","§9":"blue","§a":"green","§b":"aqua","§c":"red","§d":"light_purple","§e":"yellow","§f":"white"},extras:{"§k":"obfuscated","§l":"bold","§m":"strikethrough","§n":"underline","§o":"italic"},parseJsonToHTML:function(r){var t,e="",o=_createForOfIteratorHelper(Array.isArray(r)?r:[r]);try{for(o.s();!(t=o.n()).done;){for(var n=t.value,a="",l="",s="",i=0,c=Object.keys(n);i<c.length;i++){var u=c[i];if("text"!=u)if(motdParser.classes.hasOwnProperty(u))a+=" "+motdParser.classes[u];else if("color"!=u){if("extra"==u){var f=_createForOfIteratorHelper(n.extra);try{for(f.s();!(y=f.n()).done;){var y=y.value;s+=motdParser.parseJsonToHTML(y)}}catch(r){f.e(r)}finally{f.f()}}}else n[u].startsWith("#")?l+="color: "+n[u]:a+=" mc_"+n[u];else s+=n.text}e+='<span class="'.concat(a.trim(),'" style="').concat(l.trim(),'">').concat(s,"</span>")}}catch(r){o.e(r)}finally{o.f()}return e},jsonToHtml:function(r,t){r=JSON.parse(JSON.stringify(r).split("\\n").join("<br>")),t(null,'<div class="mc">'+motdParser.parseJsonToHTML(r)+"</div>")},textToJson:function(r,t){for(var e={text:"",extra:[]},o=e,n=r.split(""),a=0;a<n.length;a++){var l,s={};"§"!=n[a]?o.text+=n[a]:(o=("r"==n[a+1]?(s={text:"",extra:[]},e.extra.push(s)):(l="§"+n[a+1],s={text:"",extra:[]},motdParser.colors.hasOwnProperty(l)&&(s.color=motdParser.colors[l]),motdParser.extras.hasOwnProperty(l)&&(s[motdParser.extras[l]]=!0),o.extra.push(s)),s),a++)}t(null,e)},toHtml:function(r,e){"object"===_typeof(r)?motdParser.jsonToHtml(r,function(r,t){r?e(r):e(null,t)}):"string"==typeof r&&motdParser.textToJson(r,function(r,t){r?e(r):motdParser.jsonToHtml(t,function(r,t){r?e(r):e(null,t)})})}};