diff --git a/css/music/info_plate.scss b/css/music/info_plate.scss index e69de29b..ae3821e9 100644 --- a/css/music/info_plate.scss +++ b/css/music/info_plate.scss @@ -0,0 +1,249 @@ +$animtime: .5s; +$ease: cubic-bezier(.45, 0, .55, 1); + +.music-wrapper { + display: flex; + position: relative; + width: 400px; + height: 400px; + user-select: none; + + .container { + .right:hover { + .flip-card { + transform: rotateY(-60deg); + } + + z-index: 120; + } + } + + .left, .right { + position: absolute; + width: 50%; + height: 100%; + perspective-origin: 50% 50%; + perspective: 1200px; + + .flip-card, + .static-card { + background: white; + position: absolute; + width: 100%; + height: 100%; + overflow: hidden; + border: 7px solid #dedede; + + img { + width: calc(100% * 2); + height: 100%; + } + } + + .static-card { + border-right: none; + } + + .flip-card { + border-left: none; + transform-origin: 0% 50%; + transition: transform $animtime $ease; + transform: rotateY(0); + + &:before { + position: absolute; + content: ''; + width: 100%; + height: 100%; + top: 0; + right: -20px; + box-shadow: 29px 0px 52px 6px rgba(186, 186, 186, 1); + } + + img { + position: absolute; + background-color: #fff; + right: 0; + } + } + } + + .left { + left: 0; + } + .right { + right: 0; + } + + .controls { + position: absolute; + right: 0; + width: 50%; + height: 100%; + overflow: hidden; + display: flex; + flex-direction: column; + cursor: pointer; + + &:after { + position: absolute; + content: ''; + right: 0; + top: 0; + width: 100%; + height: 100%; + box-shadow: inset 20px 0px 37px -10px rgba(0, 0, 0, 0.75); + pointer-events: none; + transition: width $animtime $ease; + } + + input[type="radio"] { + position: absolute; + left: -1000px; + } + + label { + flex-grow: 1; + display: block; + width: 100%; + border-top: 1px #e6e6e6 solid; + border-bottom: 1px #9c9c9c solid; + box-sizing: border-box; + cursor: pointer; + background-color: #dcdcdc; + + span { + background-repeat: no-repeat; + background-position: 16px 42px; + width: 80px; + height: 125px; + display: block; + pointer-events: none; + } + } + + input:checked + label, + label:active { + background-color: #BCBCBC; + box-shadow: inset 0px 0px 10px 5px rgba(120, 120, 120, 0.2); + border: 1px solid #fff; + } + + .btn-forward span { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABP0lEQVRoQ+2YwW3DMAxFX4ZNT7knE7QrNB0iWSKZIZ2g9/aYS4oPxECPpUSKFkCdZEAW+Pit729vmHxsJq+fAshWsBQoBTo7UI9QZwO7by8FgBOwA76629mwgYcCD+AbOABHQNfDhhfAUvAFeAFuowi8AVT3HXgDXp/zUJYIgKVgqbAFrpEEkQCqW+dB52IP/ESARAMsNcuh5FRnb4hRAEvdAnC13NEAAnG13AwAV8vNBHCx3GyAbstdC0Cz5a4JoMlyC8Axfeqt/f5Mtf9+a69FgebclA2g5KrUqvSquXlkAujbQWn101z1nxsyABQllE4/PM7PaIBpw9y0cbrJGi1nIvIRarbGbIBua8wEcLHGDABXaxwNMP2vRUvD3Nd6uJB7UZYNC8DSrYi1pUBEVy17lgKWbkWsLQUiumrZ8xeQiV4xsW8UvQAAAABJRU5ErkJggg=="); + } + .btn-rewind span { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAsElEQVRoQ+2YSw6AIAxEh9vqifS2utAF0YgtpBCS57raz0wHxqTJnzR5/aKB0QiCAAg0TgAKNQ6w+fUaBI5C1lXS/lPVImkrxLhqcgXfSWkABDL+QaHHMrLEku+CCYWg0PtEc7HCFcxBdk2Aq0TOOiiECqFCfk+EH8AP4Ae+9wY/gB8wqCoyiowio8jo2J+7BqHqF1LjyPpVZ8hEA4YhhYaAQOh4DR8HAcOQQkOmR+AEspRaMYlt9skAAAAASUVORK5CYII="); + } + .btn-settings span { + background-size: 42px 42px; + background-position: 22px 42px; + background-image: url("../../img/music/settings.svg"); + } + } + + .controls-overlay { + position: absolute; + display: block; + top: calc(100% - 40px); + width: 100%; + height: 40px; + z-index: 100; + + .timer { + margin-left: 20px; + height: 15px; + z-index: 200; + width: 360px; + display: inline-flex; + justify-content: space-between; + vertical-align: center; + + .button { + width: 10px; + height: 12px; + margin-left: 2px; + fill: none; + stroke: #4c4c4c;; + stroke-width: 0.5; + stroke-miterlimit: 10; + cursor: pointer; + //box-shadow: 20px 20px 20px 20px rgb(186, 0, 12); + } + + .button:hover { + animation: bounce 500ms alternate; + transform: scale(1.1); + transition: transform 150ms; + } + + .timeline * { + border: gray 0; + border-radius: 8px; + } + + //TODO box SHADOW + .timeline { + width: 90%; + height: 4px; + float: right; + background: #DBE3E3; + position: relative; + align-self: center; + border: gray 0; + border-radius: 8px; + + .buffered { + position: absolute; + width: 80%; + height: 100%; + background: #a0a0a0; + } + + .played { + position: absolute; + width: 60%; + height: 100%; + background: #1fe2e3; + } + + .slider { + position: absolute; + width: 4px; + height: 12px; + top: -4px; + background: #303030; + cursor: pointer; + } + } + } + } +} + +.music-wrapper.empty { + border: 7px solid #dedede; + display: flex; + flex-direction: column; + background: white; +} + +.music-wrapper.empty img { + margin: 5px; + -webkit-animation: rotation 5s infinite linear; +} +@-webkit-keyframes rotation { + from { + -webkit-transform: rotate(0deg); + } + to { + -webkit-transform: rotate(359deg); + } +} + +.music-wrapper.empty a { + text-align: center; + margin: 5px; + margin-top: 20px; + font-size: 20px; + font-family: Arial; +} \ No newline at end of file diff --git a/css/ts/chat.css b/css/ts/chat.css index 396f0e1a..8859bdf6 100644 --- a/css/ts/chat.css +++ b/css/ts/chat.css @@ -30,11 +30,12 @@ #chat .message { width: 100%; - display: inline-flex; + display: inline-block; } #chat .message *{ - display: inline-flex; + display: inline-block; + vertical-align: top; } #chat .chats { diff --git a/generated/js/client.js b/generated/js/client.js index a0c0fdff..1efd3bf2 100644 --- a/generated/js/client.js +++ b/generated/js/client.js @@ -14,6 +14,7 @@ class AudioController { this._volume = 1; this._codecCache = []; this._timeIndex = 0; + this._latencyBufferLength = 3; this.allowBuffering = true; this.speakerContext = AudioController.globalContext; this.onSpeaking = function () { }; @@ -37,7 +38,7 @@ class AudioController { playBuffer(buffer) { if (buffer.sampleRate != this.speakerContext.sampleRate) console.warn("[AudioController] Source sample rate isn't equal to playback sample rate! (" + buffer.sampleRate + " | " + this.speakerContext.sampleRate + ")"); - this.applayVolume(buffer); + this.applyVolume(buffer); this.audioCache.push(buffer); if (this.playerState == PlayerState.STOPPED || this.playerState == PlayerState.STOPPING) { console.log("[Audio] Starting new playback"); @@ -47,7 +48,7 @@ class AudioController { switch (this.playerState) { case PlayerState.PREBUFFERING: case PlayerState.BUFFERING: - if (this.audioCache.length < 3) { + if (this.audioCache.length <= this._latencyBufferLength) { if (this.playerState == PlayerState.BUFFERING) { if (this.allowBuffering) break; @@ -119,9 +120,9 @@ class AudioController { return; this._volume = val; for (let buffer of this.audioCache) - this.applayVolume(buffer); + this.applyVolume(buffer); } - applayVolume(buffer) { + applyVolume(buffer) { for (let channel = 0; channel < buffer.numberOfChannels; channel++) { let data = buffer.getChannelData(channel); for (let sample = 0; sample < data.length; sample++) { @@ -721,7 +722,6 @@ class CodecPool { else { this.entries[index].instance.initialise().then((flag) => { //TODO test success flag - console.error(flag); this.ownCodec(clientId, false).then(resolve).catch(reject); }).catch(error => { console.error("Could not initialize codec!\nError: %o", error); @@ -1409,7 +1409,7 @@ class ChannelEntry { } createChatTag(braces = false) { let tag = $.spawn("div"); - tag.css("display", "table"); + tag.css("display", "inline-block"); tag.css("cursor", "pointer"); tag.css("font-weight", "bold"); tag.css("color", "darkblue"); @@ -1417,10 +1417,15 @@ class ChannelEntry { tag.text("\"" + this.channelName() + "\""); else tag.text(this.channelName()); - tag.attr("oncontextmenu", "chat_channel_contextmenu(this, ...arguments);"); + tag.contextmenu(event => { + if (event.isDefaultPrevented()) + return; + event.preventDefault(); + this.showContextMenu(event.pageX, event.pageY); + }); tag.attr("channelId", this.channelId); tag.attr("channelName", this.channelName()); - return tag.wrap("

").parent(); + return tag; } channelType() { if (this.properties.channel_flag_permanent == true) @@ -1546,6 +1551,8 @@ class ClientProperties { this.client_input_hardware = false; this.client_input_muted = false; this.client_is_channel_commander = false; + this.client_teaforum_id = 0; + this.client_teaforum_name = ""; } } class ClientEntry { @@ -1676,8 +1683,16 @@ class ClientEntry { type: MenuEntryType.ENTRY, icon: "client-ban_client", name: "Ban client", - disabled: true, - callback: () => { } + invalidPermission: !this.channelTree.client.permissions.neededPermission(PermissionType.I_CLIENT_BAN_MAX_BANTIME).granted(1), + callback: () => { + Modals.spawnBanClient(this.properties.client_nickname, (duration, reason) => { + this.channelTree.client.serverConnection.sendCommand("banclient", { + uid: this.properties.client_unique_identifier, + banreason: reason, + time: duration + }); + }); + } }, MenuEntry.HR(), { type: MenuEntryType.ENTRY, icon: "client-volume", @@ -1708,19 +1723,30 @@ class ClientEntry { } static chatTag(id, name, uid, braces = false) { let tag = $.spawn("div"); - tag.css("cursor", "pointer"); - tag.css("font-weight", "bold"); - tag.css("color", "darkblue"); - tag.css("display", "table"); + tag.css("cursor", "pointer") + .css("font-weight", "bold") + .css("color", "darkblue") + .css("display", "inline-block") + .css("margin", 0); if (braces) tag.text("\"" + name + "\""); else tag.text(name); - tag.attr("oncontextmenu", "chat_client_contextmenu(this, ...arguments);"); + tag.contextmenu(event => { + if (event.isDefaultPrevented()) + return; + event.preventDefault(); + let client = globalClient.channelTree.findClient(id); + if (!client) + return; + if (client.properties.client_unique_identifier != uid) + return; + client.showContextMenu(event.pageX, event.pageY); + }); tag.attr("clientId", id); tag.attr("clientUid", uid); tag.attr("clientName", name); - return tag.wrap("

").parent(); + return tag; } createChatTag(braces = false) { return ClientEntry.chatTag(this.clientId(), this.clientNickName(), this.clientUid(), braces); @@ -1865,7 +1891,7 @@ class ClientEntry { this.audioController = undefined; } calculateOnlineTime() { - return new Date().getTime() / 1000 - this.properties.client_lastconnected; + return Date.now() / 1000 - this.properties.client_lastconnected; } avatarId() { function str2ab(str) { @@ -2988,30 +3014,11 @@ if (typeof (customElements) !== "undefined") { customElements.define('x-properties', X_Properties, { extends: 'div' }); customElements.define('x-property', X_Property, { extends: 'div' }); } -class Settings { - constructor() { - this.cacheGlobal = {}; - this.cacheServer = {}; - this.updated = false; - this._staticPropsTag = $("#properties"); - this.cacheGlobal = JSON.parse(localStorage.getItem("settings.global")); - if (!this.cacheGlobal) - this.cacheGlobal = {}; - const _this = this; - this.saveWorker = setInterval(() => { - if (_this.updated) - _this.save(); - }, 5 * 1000); - this.initializeStatic(); - } - initializeStatic() { - location.search.substr(1).split("&").forEach(part => { - let item = part.split("="); - $("") - .attr("key", item[0]) - .attr("value", item[1]) - .appendTo(this._staticPropsTag); - }); +class StaticSettings { + static get instance() { + if (!this._instance) + this._instance = new StaticSettings(true); + return this._instance; } static transformStO(input, _default) { if (typeof input === "undefined") @@ -3037,24 +3044,68 @@ class Settings { return undefined; return JSON.stringify(input); } + constructor(_reserved = undefined) { + if (_reserved && !StaticSettings._instance) { + this._staticPropsTag = $("#properties"); + this.initializeStatic(); + } + else { + this._handle = StaticSettings.instance; + } + } + initializeStatic() { + location.search.substr(1).split("&").forEach(part => { + let item = part.split("="); + $("") + .attr("key", item[0]) + .attr("value", item[1]) + .appendTo(this._staticPropsTag); + }); + } + static(key, _default) { + if (this._handle) + return this._handle.static(key, _default); + let result = this._staticPropsTag.find("[key='" + key + "']"); + console.log("%d | %o", result.length, result); + return StaticSettings.transformStO(result.length > 0 ? decodeURIComponent(result.last().attr("value")) : undefined, _default); + } + deleteStatic(key) { + if (this._handle) { + this._handle.deleteStatic(key); + return; + } + let result = this._staticPropsTag.find("[key='" + key + "']"); + if (result.length != 0) + result.detach(); + } +} +class Settings extends StaticSettings { + constructor() { + super(); + this.cacheGlobal = {}; + this.cacheServer = {}; + this.updated = false; + this.cacheGlobal = JSON.parse(localStorage.getItem("settings.global")); + if (!this.cacheGlobal) + this.cacheGlobal = {}; + this.saveWorker = setInterval(() => { + if (this.updated) + this.save(); + }, 5 * 1000); + } global(key, _default) { let result = this.cacheGlobal[key]; - return Settings.transformStO(result, _default); + return StaticSettings.transformStO(result, _default); } server(key, _default) { let result = this.cacheServer[key]; - return Settings.transformStO(result, _default); - } - static(key, _default) { - let result = this._staticPropsTag.find("[key='" + key + "']"); - console.log("%d | %o", result.length, result); - return Settings.transformStO(result.length > 0 ? decodeURIComponent(result.last().attr("value")) : undefined, _default); + return StaticSettings.transformStO(result, _default); } changeGlobal(key, value) { if (this.cacheGlobal[key] == value) return; this.updated = true; - this.cacheGlobal[key] = Settings.transformOtS(value); + this.cacheGlobal[key] = StaticSettings.transformOtS(value); if (Settings.UPDATE_DIRECT) this.save(); } @@ -3062,7 +3113,7 @@ class Settings { if (this.cacheServer[key] == value) return; this.updated = true; - this.cacheServer[key] = Settings.transformOtS(value); + this.cacheServer[key] = StaticSettings.transformOtS(value); if (Settings.UPDATE_DIRECT) this.save(); } @@ -3090,11 +3141,6 @@ class Settings { let global = JSON.stringify(this.cacheGlobal); localStorage.setItem("settings.global", global); } - deleteStatic(key) { - let result = this._staticPropsTag.find("[key='" + key + "']"); - if (result.length != 0) - result.detach(); - } } Settings.KEY_DISABLE_CONTEXT_MENU = "disableContextMenu"; Settings.KEY_DISABLE_UNLOAD_DIALOG = "disableUnloadDialog"; @@ -3108,12 +3154,16 @@ class InfoBar { this._htmlTag = htmlTag; } createInfoTable(infos) { - let table = $(""); - for (let e in infos) { - console.log("Display info " + e); - let entry = $(""); - entry.append(""); - entry.append(""); + let table = $.spawn("table"); + for (let key in infos) { + console.log("Display info " + key); + let entry = $.spawn("tr"); + entry.append($.spawn("td").addClass("info_key").html(key + ":")); + let value = $.spawn("td"); + console.log(infos[key]); + console.log(MessageHelper.formatElement(infos[key])); + MessageHelper.formatElement(infos[key]).forEach(e => e.appendTo(value)); + entry.append(value); table.append(entry); } return table; @@ -3187,7 +3237,7 @@ class InfoBar { else if (this._currentSelected instanceof ChannelEntry) { let props = this._currentSelected.properties; this._htmlTag.append(this.createInfoTable({ - "Name": this._currentSelected.createChatTag().html(), + "Name": this._currentSelected.createChatTag(), "Topic": this._currentSelected.properties.channel_topic, "Codec": this._currentSelected.properties.channel_codec, "Codec Quality": this._currentSelected.properties.channel_codec_quality, @@ -3198,19 +3248,22 @@ class InfoBar { })); } else if (this._currentSelected instanceof ClientEntry) { - this._currentSelected.updateVariables(); + this._currentSelected.updateClientVariables(); let version = this._currentSelected.properties.client_version; if (!version) version = ""; let infos = { - "Name": this._currentSelected.createChatTag().html(), + "Name": this._currentSelected.createChatTag(), "Description": this._currentSelected.properties.client_description, - "Version": "" + version.split(" ")[0] + "" + " on " + this._currentSelected.properties.client_platform, - "Online since": "" + formatDate(this._currentSelected.calculateOnlineTime()) + "", + "Version": MessageHelper.formatMessage("{0} on {1}", $.spawn("a").attr("title", version).text(version.split(" ")[0]), this._currentSelected.properties.client_platform), + "Online since": $.spawn("a").addClass("online").text(formatDate(this._currentSelected.calculateOnlineTime())), "Volume": this._currentSelected.audioController.volume * 100 + " %" }; - if (this._currentSelected.properties["client_teaforum_id"] > 0) { - infos["TeaSpeak Account"] = "{0}".format(this._currentSelected.properties["client_teaforum_name"], this._currentSelected.properties["client_teaforum_id"]); + if (this._currentSelected.properties.client_teaforum_id > 0) { + infos["TeaSpeak Account"] = $.spawn("a") + .attr("href", "//forum.teaspeak.de/index.php?members/" + this._currentSelected.properties.client_teaforum_id) + .attr("target", "_blank") + .text(this._currentSelected.properties.client_teaforum_id); } this._htmlTag.append(this.createInfoTable(infos)); { @@ -3264,13 +3317,17 @@ class InfoBar { .css("margin-left", "10px") .css("align-items", "center"); this.handle.fileManager.icons.generateTag(group.properties.iconid).appendTo(groupTag); - $.spawn("div").text(group.name).css("margin-left", "3px").appendTo(groupTag); + $.spawn("div").text(group.name) + .css("margin-left", "3px").appendTo(groupTag); groupTag.appendTo(channelGroup); } this._htmlTag.append(channelGroup); } if (this._currentSelected.properties.client_flag_avatar.length > 0) - this.handle.fileManager.avatars.generateTag(this._currentSelected).appendTo(this._htmlTag); + this.handle.fileManager.avatars.generateTag(this._currentSelected) + .css("margin-top", "20px") + .css("max-height", "90%") + .css("max-width", "100%").appendTo(this._htmlTag); this.intervals.push(setInterval(this.updateClientTimings.bind(this), 1000)); } } @@ -4628,14 +4685,14 @@ class AvatarManager { let img = $.spawn("img"); img.attr("alt", ""); let avatar = this.resolveCached(client); + avatar = undefined; if (avatar) { img.attr("src", "data:image/png;base64," + avatar.base64); tag.append(img); } else { - img.attr("src", "file://null"); - let loader = $.spawn("div"); - loader.addClass("avatar_loading"); + let loader = $.spawn("img"); + loader.attr("src", "img/loading_image.svg").css("width", "75%"); tag.append(loader); this.loadAvatar(client).then(avatar => { img.attr("src", "data:image/png;base64," + avatar.base64); @@ -4649,7 +4706,7 @@ class AvatarManager { }).catch(reason => { console.error("Could not load avatar for " + client.clientNickName() + ". Reason: " + reason); //TODO Broken image - loader.removeClass("avatar_loading").addClass("icon client-warning").attr("tag", "Could not load avatar " + client.clientNickName()); + loader.addClass("icon client-warning").attr("tag", "Could not load avatar " + client.clientNickName()); }); } return tag; @@ -4748,6 +4805,73 @@ var ChatType; ChatType[ChatType["CHANNEL"] = 2] = "CHANNEL"; ChatType[ChatType["CLIENT"] = 3] = "CLIENT"; })(ChatType || (ChatType = {})); +var MessageHelper; +(function (MessageHelper) { + function htmlEscape(message) { + const div = document.createElement('div'); + div.innerText = message; + message = div.innerHTML; + return message.replace(/ /g, ' '); + } + MessageHelper.htmlEscape = htmlEscape; + function formatElement(object) { + if ($.isArray(object)) { + let result = []; + for (let element of object) + result.push(...this.formatElement(element)); + return result; + } + else if (typeof (object) == "string") { + if (object.length == 0) + return []; + return [$.spawn("a").html(this.htmlEscape(object))]; + } + else if (typeof (object) === "object") { + if (object instanceof jQuery) + return [object]; + return this.formatElement(""); + } + else if (typeof (object) === "function") + return this.formatElement(object()); + else if (typeof (object) === "undefined") + return this.formatElement(""); + return this.formatElement(""); + } + MessageHelper.formatElement = formatElement; + function formatMessage(pattern, ...objects) { + let begin = 0, found = 0; + let result = []; + do { + found = pattern.indexOf('{', found); + if (found == -1 || pattern.length <= found + 1) { + result.push(...this.formatElement(pattern.substr(begin))); + break; + } + if (found > 0 && pattern[found - 1] == '\\') { + //TODO remove the escape! + found++; + continue; + } + result.push(...this.formatElement(pattern.substr(begin, found - begin))); //Append the text + let number; + let offset = 0; + while ("0123456789".includes(pattern[found + 1 + offset])) + offset++; + number = parseInt(offset > 0 ? pattern.substr(found + 1, offset) : "0"); + if (pattern[found + offset + 1] != '}') { + found++; + continue; + } + if (objects.length < number) + console.warn("Message to format contains invalid index (" + number + ")"); + result.push(...this.formatElement(objects[number])); + begin = found = found + 2 + offset; + console.log("Offset: " + offset + " Number: " + number); + } while (found++); + return result; + } + MessageHelper.formatMessage = formatMessage; +})(MessageHelper || (MessageHelper = {})); class ChatMessage { constructor(message) { this.date = new Date(); @@ -4768,27 +4892,12 @@ class ChatMessage { dateTag.text("<" + this.num(this.date.getUTCHours()) + ":" + this.num(this.date.getUTCMinutes()) + ":" + this.num(this.date.getUTCSeconds()) + "> "); dateTag.css("margin-right", "4px"); dateTag.css("color", "dodgerblue"); - let messageTag = $.spawn("div"); - messageTag.html(this.message); - messageTag.css("color", "blue"); this._htmlTag = tag; tag.append(dateTag); - tag.append(messageTag); + this.message.forEach(e => e.appendTo(tag)); tag.hide(); return tag; } - static formatMessage(message) { - /* - message = message - .replace(/ /g, ' ') - .replace(/\n/g, "
"); - */ - const div = document.createElement('div'); - div.innerText = message; - message = div.innerHTML; - console.log(message + "->" + div.innerHTML); - return message; - } } class ChatEntry { constructor(handle, type, key) { @@ -4800,25 +4909,15 @@ class ChatEntry { this.onClose = function () { return true; }; } appendError(message, ...args) { - this.appendMessage("{0}".format(ChatMessage.formatMessage(message).format(...args)), false); + let entries = MessageHelper.formatMessage(message, ...args); + entries.forEach(e => e.css("color", "red")); + this.pushChatMessage(new ChatMessage(entries)); } appendMessage(message, fmt = true, ...args) { - let parms = []; - for (let index = 2; index < arguments.length; index++) { - if (typeof arguments[index] == "string") - arguments[index] = ChatMessage.formatMessage(arguments[index]); - else if (arguments[index] instanceof jQuery) - arguments[index] = arguments[index].html(); - else { - console.error("Invalid type " + typeof arguments[index] + "|" + arguments[index].prototype); - arguments[index] = arguments[index].toString(); - } - parms.push(arguments[index]); - } - let msg = fmt ? ChatMessage.formatMessage(message) : message; - msg = msg.format(parms); - let elm = new ChatMessage(msg); - this.history.push(elm); + this.pushChatMessage(new ChatMessage(MessageHelper.formatMessage(message, ...args))); + } + pushChatMessage(entry) { + this.history.push(entry); while (this.history.length > 100) { let elm = this.history.pop_front(); elm.htmlTag.animate({ opacity: 0 }, 200, function () { @@ -4829,8 +4928,8 @@ class ChatEntry { let box = $(this.handle.htmlTag).find(".messages"); let mbox = $(this.handle.htmlTag).find(".message_box"); let bottom = box.scrollTop() + box.height() + 1 >= mbox.height(); - mbox.append(elm.htmlTag); - elm.htmlTag.show().css("opacity", "0").animate({ opacity: 1 }, 100); + mbox.append(entry.htmlTag); + entry.htmlTag.show().css("opacity", "0").animate({ opacity: 1 }, 100); if (bottom) box.scrollTop(mbox.height()); } @@ -5341,6 +5440,88 @@ var Modals; Identity isnt valid! */ +/// +/// +/// +var Modals; +(function (Modals) { + function spawnBanClient(name, callback) { + const connectModal = createModal({ + header: function () { + return "Ban client"; + }, + body: function () { + let tag = $("#tmpl_client_ban").tmpl({ + client_name: name + }); + let maxTime = 0; //globalClient.permissions.neededPermission(PermissionType.I_CLIENT_BAN_MAX_BANTIME).value; + let unlimited = maxTime == 0 || maxTime == -1; + if (unlimited) + maxTime = 0; + let banTag = tag.find(".ban_duration_type"); + let durationTag = tag.find(".ban_duration"); + banTag.find("option[value=\"sec\"]").prop("disabled", !unlimited && 1 > maxTime) + .attr("duration-scale", 1) + .attr("duration-max", maxTime); + banTag.find("option[value=\"min\"]").prop("disabled", !unlimited && 60 > maxTime) + .attr("duration-scale", 60) + .attr("duration-max", maxTime / 60); + banTag.find("option[value=\"hours\"]").prop("disabled", !unlimited && 60 * 60 > maxTime) + .attr("duration-scale", 60 * 60) + .attr("duration-max", maxTime / (60 * 60)); + banTag.find("option[value=\"days\"]").prop("disabled", !unlimited && 60 * 60 * 24 > maxTime) + .attr("duration-scale", 60 * 60 * 24) + .attr("duration-max", maxTime / (60 * 60 * 24)); + banTag.find("option[value=\"perm\"]").prop("disabled", !unlimited) + .attr("duration-scale", 0); + durationTag.change(() => banTag.trigger('change')); + banTag.change(event => { + let element = $(event.target.selectedOptions.item(0)); + if (element.val() !== "perm") { + durationTag.prop("disabled", false); + let current = durationTag.val(); + let max = parseInt(element.attr("duration-max")); + if (max > 0 && current > max) + durationTag.val(max); + else if (current <= 0) + durationTag.val(1); + durationTag.attr("max", max); + } + else { + durationTag.prop("disabled", true); + } + }); + return tag; + }, + footer: function () { + let tag = $.spawn("div"); + tag.css("text-align", "right"); + tag.css("margin-top", "3px"); + tag.css("margin-bottom", "6px"); + tag.addClass("modal-button-group"); + let buttonCancel = $.spawn("button"); + buttonCancel.text("Cancel"); + buttonCancel.on("click", () => connectModal.close()); + tag.append(buttonCancel); + let buttonOk = $.spawn("button"); + buttonOk.text("OK").addClass("btn_success"); + tag.append(buttonOk); + return tag; + }, + width: 450 + }); + connectModal.open(); + connectModal.htmlTag.find(".btn_success").on('click', () => { + connectModal.close(); + let length = connectModal.htmlTag.find(".ban_duration").val(); + let duration = connectModal.htmlTag.find(".ban_duration_type option:selected"); + console.log(duration); + console.log(length + "*" + duration.attr("duration-scale")); + callback(length * parseInt(duration.attr("duration-scale")), connectModal.htmlTag.find(".ban_reason").val()); + }); + } + Modals.spawnBanClient = spawnBanClient; +})(Modals || (Modals = {})); /// class BasicCodec { constructor(codecSampleRate) { @@ -5561,6 +5742,7 @@ class CodecWrapper extends BasicCodec { /// /// /// +/// /// /// /// @@ -5569,7 +5751,9 @@ let globalClient; let chat; let forumIdentity; function main() { + //console.log(ChatEntry.formatMessage("Hello World '{0}' | '{1}' | {12} X", "XXX")); //localhost:63343/Web-Client/index.php?disableUnloadDialog=1&default_connect_type=forum&default_connect_url=localhost + //disableUnloadDialog=1&default_connect_type=forum&default_connect_url=localhost&loader_ignore_age=1 AudioController.initializeAudioController(); if (!TSIdentityHelper.setup()) { console.error("Could not setup the TeamSpeak identity parser!"); @@ -5595,7 +5779,7 @@ function main() { //Modals.spawnSettingsModal(); //Modals.createChannelModal(undefined); if (settings.static("default_connect_url")) { - if (settings.static("default_connect_type", "forum")) { + if (settings.static("default_connect_type", "forum") == "forum") { globalClient.startConnection(settings.static("default_connect_url"), forumIdentity); } else @@ -5683,10 +5867,10 @@ class ServerEntry { tag.attr("id", "server"); tag.addClass("server"); tag.append($.spawn("div").addClass("server_type icon client-server_green")); - tag.append("" + this.properties.virtualserver_name + ""); + tag.append($.spawn("a").addClass("name").text(this.properties.virtualserver_name)); const serverIcon = $(""); //we cant spawn an icon on creation :) - serverIcon.append("
"); + serverIcon.append($.spawn("div").addClass("icon_property icon_empty")); tag.append(serverIcon); return this._htmlTag = tag; } @@ -5728,7 +5912,7 @@ class ServerEntry { this.channelTree.client.serverConnection.sendCommand("servergetvariables"); } shouldUpdateProperties() { - return this.nextInfoRequest < new Date().getTime(); + return this.nextInfoRequest < Date.now(); } calculateUptime() { if (this.properties.virtualserver_uptime == 0 || this.lastInfoRequest == 0) diff --git a/generated/js/client.js.map b/generated/js/client.js.map index ea99160c..5bba68fa 100644 --- a/generated/js/client.js.map +++ b/generated/js/client.js.map @@ -1 +1 @@ -{"version":3,"file":"client.js","sourceRoot":"","sources":["../../js/voice/AudioController.ts","../../js/proto.ts","../../js/codec/Codec.ts","../../js/utils/modal.ts","../../js/voice/VoiceRecorder.ts","../../js/voice/VoiceHandler.ts","../../js/contextMenu.ts","../../js/crypto/sha.ts","../../js/utils/helpers.ts","../../js/ui/channel.ts","../../js/ui/modal/ModalChangeVolume.ts","../../js/ui/client.ts","../../js/ui/modal/ModalCreateChannel.ts","../../js/ui/view.ts","../../js/connection.ts","../../js/settings.ts","../../js/InfoBar.ts","../../js/permission/PermissionManager.ts","../../js/permission/GroupManager.ts","../../js/utils/tab.ts","../../js/ui/modal/ModalSettings.ts","../../js/ui/ControlBar.ts","../../js/client.ts","../../js/FileManager.ts","../../js/Identity.ts","../../js/chat.ts","../../js/log.ts","../../js/ui/modal/ModalConnect.ts","../../js/codec/BasicCodec.ts","../../js/codec/CodecWrapper.ts","../../js/main.ts","../../js/codec/RawCodec.ts","../../js/crypto/hex.ts","../../js/ui/server.ts","../../js/voice/AudioResampler.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"client.js","sourceRoot":"","sources":["../../js/voice/AudioController.ts","../../js/proto.ts","../../js/codec/Codec.ts","../../js/utils/modal.ts","../../js/voice/VoiceRecorder.ts","../../js/voice/VoiceHandler.ts","../../js/contextMenu.ts","../../js/crypto/sha.ts","../../js/utils/helpers.ts","../../js/ui/channel.ts","../../js/ui/modal/ModalChangeVolume.ts","../../js/ui/client.ts","../../js/ui/modal/ModalCreateChannel.ts","../../js/ui/view.ts","../../js/connection.ts","../../js/settings.ts","../../js/InfoBar.ts","../../js/permission/PermissionManager.ts","../../js/permission/GroupManager.ts","../../js/utils/tab.ts","../../js/ui/modal/ModalSettings.ts","../../js/ui/ControlBar.ts","../../js/client.ts","../../js/FileManager.ts","../../js/Identity.ts","../../js/chat.ts","../../js/log.ts","../../js/ui/modal/ModalConnect.ts","../../js/ui/modal/ModalBanClient.ts","../../js/codec/BasicCodec.ts","../../js/codec/CodecWrapper.ts","../../js/main.ts","../../js/codec/RawCodec.ts","../../js/crypto/hex.ts","../../js/ui/server.ts","../../js/voice/AudioResampler.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/generated/js/client.min.js b/generated/js/client.min.js index 640aa823..2cdff220 100644 --- a/generated/js/client.min.js +++ b/generated/js/client.min.js @@ -1 +1 @@ -var PlayerState;!function(PlayerState){PlayerState[PlayerState.PREBUFFERING=0]="PREBUFFERING",PlayerState[PlayerState.PLAYING=1]="PLAYING",PlayerState[PlayerState.BUFFERING=2]="BUFFERING",PlayerState[PlayerState.STOPPING=3]="STOPPING",PlayerState[PlayerState.STOPPED=4]="STOPPED"}(PlayerState||(PlayerState={}));class AudioController{constructor(){this.playerState=PlayerState.STOPPED,this.audioCache=[],this.playingAudioCache=[],this._volume=1,this._codecCache=[],this._timeIndex=0,this.allowBuffering=!0,this.speakerContext=AudioController.globalContext,this.onSpeaking=function(){},this.onSilence=function(){}}static get globalContext(){return this._globalContext?this._globalContext:(this._globalContext=new AudioContext,this._globalContext)}static initializeAudioController(){}initialize(){AudioController._audioInstances.push(this)}close(){AudioController._audioInstances.remove(this)}playBuffer(buffer){switch(buffer.sampleRate!=this.speakerContext.sampleRate&&console.warn("[AudioController] Source sample rate isn't equal to playback sample rate! ("+buffer.sampleRate+" | "+this.speakerContext.sampleRate+")"),this.applayVolume(buffer),this.audioCache.push(buffer),this.playerState!=PlayerState.STOPPED&&this.playerState!=PlayerState.STOPPING||(console.log("[Audio] Starting new playback"),this.playerState=PlayerState.PREBUFFERING),this.playerState){case PlayerState.PREBUFFERING:case PlayerState.BUFFERING:if(this.audioCache.length<3){if(this.playerState!=PlayerState.BUFFERING)break;if(this.allowBuffering)break}this.playerState==PlayerState.PREBUFFERING?(console.log("[Audio] Prebuffering succeeded (Replaying now)"),this.onSpeaking()):this.allowBuffering&&console.log("[Audio] Buffering succeeded (Replaying now)"),this.playerState=PlayerState.PLAYING;case PlayerState.PLAYING:this.playQueue()}}playQueue(){let buffer;for(;buffer=this.audioCache.pop_front();){this._timeIndexthis.removeNode(player)),this.playingAudioCache.push(player),player.connect(this.speakerContext.destination),player.start(this._timeIndex),this._timeIndex+=buffer.duration}}removeNode(node){this.playingAudioCache.remove(node),this.testBufferQueue()}stopAudio(now=!1){if(this.playerState=PlayerState.STOPPING,now){this.playerState=PlayerState.STOPPED,this.audioCache=[];for(let entry of this.playingAudioCache)entry.stop(0);this.playingAudioCache=[]}this.testBufferQueue()}testBufferQueue(){0==this.audioCache.length&&0==this.playingAudioCache.length&&(this.playerState!=PlayerState.STOPPING?(this.playerState=PlayerState.BUFFERING,this.allowBuffering||console.warn("[Audio] Detected a buffer underflow!")):(this.playerState=PlayerState.STOPPED,this.onSilence()))}get volume(){return this._volume}set volume(val){if(this._volume!=val){this._volume=val;for(let buffer of this.audioCache)this.applayVolume(buffer)}}applayVolume(buffer){for(let channel=0;channel0&&(result+=years+" years "),(years>0||days>0)&&(result+=days+" days "),(years>0||days>0||hours>0)&&(result+=hours+" hours "),(years>0||days>0||hours>0||minutes>0)&&(result+=minutes+" minutes "),years>0||days>0||hours>0||minutes>0||seconds>0?result+=seconds+" seconds ":result="now ",result.substr(0,result.length-1)}AudioController._audioInstances=[],AudioController._timeIndex=0,Array.prototype.remove||(Array.prototype.remove=function(elem){const index=this.indexOf(elem,0);return index>-1&&(this.splice(index,1),!0)}),Array.prototype.pop_front||(Array.prototype.pop_front=function(){if(0!=this.length)return this.splice(0,1)[0]}),Array.prototype.last||(Array.prototype.last=function(){if(0!=this.length)return this[this.length-1]}),"undefined"!=typeof $&&($.spawn||($.spawn=function(tagName){return $(document.createElement(tagName))})),String.prototype.format||(String.prototype.format=function(){const args=arguments;let array=1==args.length&&$.isArray(args[0]);return this.replace(/\{\{|\}\}|\{(\d+)\}/g,function(m,n){return"{{"==m?"{":"}}"==m?"}":array?args[0][n]:args[n]})});class BufferChunk{constructor(buffer){this.buffer=buffer,this.index=0}copyRangeTo(target,maxLength,offset){let copy=Math.min(this.buffer.length-this.index,maxLength);for(let channel=0;channel1?$.spawn("div").append(val):val},jqueriefy:function(val){switch($.isFunction(val)&&(val=val()),typeof val){case"string":return $("
"+val+"
");case"object":return val;case"undefined":return console.warn("Got undefined type!"),$.spawn("div");default:return console.error("Invalid type "+typeof val),$()}},warpProperties(data){if(data instanceof ModalProperties)return data;{let props=new ModalProperties;for(let key in data)props[key]=data[key];return props}}};class ModalProperties{constructor(){this.header=(()=>"HEADER"),this.body=(()=>"BODY"),this.footer=(()=>"FOOTER"),this.closeListener=(()=>{}),this.width="60%",this.hight="auto",this.closeable=!0}registerCloseListener(listener){return this.closeListener?$.isArray(this.closeListener)?this.closeListener.push(listener):this.closeListener=[this.closeListener,listener]:this.closeListener=listener,this}triggerClose(){if($.isArray(this.closeListener))for(let listener of this.closeListener)listener();else this.closeListener()}}class Modal{constructor(props){this.properties=props}get htmlTag(){return this._htmlTag||this._create(),this._htmlTag}_create(){let modal=$.spawn("div");modal.addClass("modal");let content=$.spawn("div");content.addClass("modal-content"),content.css("width",this.properties.width);let header=ModalFunctions.divify(ModalFunctions.jqueriefy(this.properties.header)).addClass("modal-header");this.properties.closeable&&header.append('×');let body=ModalFunctions.divify(ModalFunctions.jqueriefy(this.properties.body)).addClass("modal-body"),footer=ModalFunctions.divify(ModalFunctions.jqueriefy(this.properties.footer)).addClass("modal-footer");content.append(header),content.append(body),content.append(footer),modal.append(content),modal.find(".close").click(function(){this.properties.closeable&&this.close()}.bind(this)),this._htmlTag=modal}open(){this.htmlTag.appendTo($("body")),this.htmlTag.show()}close(){const _this=this;this.htmlTag.animate({opacity:0},()=>{_this.htmlTag.detach()}),this.properties.triggerClose()}}function createModal(data){return new Modal(ModalFunctions.warpProperties(data))}class InputModalProperties extends ModalProperties{}function createInputModal(headMessage,question,validator,callback,props={}){props=ModalFunctions.warpProperties(props);let head=$.spawn("div");head.css("border-bottom","grey solid"),head.css("border-width","1px"),ModalFunctions.jqueriefy(headMessage).appendTo(head);let body=$.spawn("div");ModalFunctions.divify(ModalFunctions.jqueriefy(question)).appendTo(body);let input=$.spawn("input");input.css("width","100%"),input.appendTo(body),console.log(input);let footer=$.spawn("div");footer.addClass("modal-button-group"),footer.css("margin-top","5px");let buttonCancel=$.spawn("button");buttonCancel.text("Cancel");let buttonOk=$.spawn("button");buttonOk.text("Ok"),footer.append(buttonCancel),footer.append(buttonOk),input.on("keydown",function(event){13==event.keyCode&&buttonOk.trigger("click")});input.on("keyup",function(){let text=input.val().toString();(!props.maxLength||text.length<=props.maxLength)&&validator(text)?(input.removeClass("invalid_input"),buttonOk.removeAttr("disabled")):(input.hasClass("invalid_input")||input.addClass("invalid_input"),buttonOk.attr("disabled","true"))});let modal,callbackCalled=!1,wrappedCallback=function(flag){callbackCalled||(callbackCalled=!0,callback(flag))};return buttonOk.on("click",()=>{wrappedCallback(input.val().toString()),modal.close()}),buttonCancel.on("click",()=>{wrappedCallback(!1),modal.close()}),props.header=head,props.body=body,props.footer=footer,props.closeListener=(()=>wrappedCallback(!1)),modal=createModal(props)}function createErrorModal(header,message,props={footer:""}){props=ModalFunctions.warpProperties(props);let head=$.spawn("div");return head.addClass("modal-head-error"),ModalFunctions.divify(ModalFunctions.jqueriefy(header)).appendTo(head),props.header=head,props.body=ModalFunctions.divify(ModalFunctions.jqueriefy(message)),props.footer=ModalFunctions.divify(ModalFunctions.jqueriefy("")),createModal(props)}class VoiceActivityDetector{initialise(){}finalize(){}initialiseNewStream(old,_new){}changeHandle(handle,triggerNewStream){const oldStream=this.handle?this.handle.getMicrophoneStream():void 0;this.handle=handle,triggerNewStream&&this.initialiseNewStream(oldStream,handle?handle.getMicrophoneStream():void 0)}}class VoiceRecorder{constructor(handle){this.on_data=(data=>{}),this.on_end=(()=>{}),this._recording=!1,this.microphoneStream=void 0,this.mediaStream=void 0,this._chunkCount=0,this.handle=handle,this.userMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia,this._deviceId=settings.global("microphone_id","default"),this.audioContext=AudioController.globalContext,this.processor=this.audioContext.createScriptProcessor(VoiceRecorder.BUFFER_SIZE,VoiceRecorder.CHANNELS,VoiceRecorder.CHANNELS),this.processor.addEventListener("audioprocess",ev=>{this.microphoneStream&&this.vadHandler.shouldRecord(ev.inputBuffer)?this.on_data(ev.inputBuffer,0==this._chunkCount++):(0!=this._chunkCount&&this.on_end(),this._chunkCount=0)}),this.mute=this.audioContext.createGain(),this.mute.gain.setValueAtTime(0,0),this.processor.connect(this.mute),this.mute.connect(this.audioContext.destination),this.setVADHander(new PassThroughVAD)}avariable(){return!!this.userMedia}recording(){return this._recording}getMediaStream(){return this.mediaStream}getDestinationContext(){return this.mute}getMicrophoneStream(){return this.microphoneStream}reinitialiseVAD(){let type=settings.global("vad_type","vad");if("ppt"==type){let keyCode=parseInt(settings.global("vad_ppt_key",84..toString()));this.getVADHandler()instanceof PushToTalkVAD?this.getVADHandler().key=keyCode:this.setVADHander(new PushToTalkVAD(keyCode))}else if("pt"==type)this.getVADHandler()instanceof PassThroughVAD||this.setVADHander(new PassThroughVAD);else if("vad"==type){this.getVADHandler()instanceof VoiceActivityDetectorVAD||this.setVADHander(new VoiceActivityDetectorVAD);let threshold=parseInt(settings.global("vad_threshold","50"));this.getVADHandler().percentageThreshold=threshold}else console.warn("Invalid VAD handler! ("+type+")")}setVADHander(handler){this.vadHandler&&(this.vadHandler.changeHandle(null,!0),this.vadHandler.finalize()),this.vadHandler=handler,this.vadHandler.changeHandle(this,!1),this.vadHandler.initialise(),this.vadHandler.initialiseNewStream(void 0,this.microphoneStream)}getVADHandler(){return this.vadHandler}update(flag){this._recording!=flag&&(flag?this.start(this._deviceId):this.stop())}changeDevice(device){this._deviceId!=device&&(this._deviceId=device,settings.changeGlobal("microphone_id",device),this._recording&&(this.stop(),this.start(device)))}start(device){this._deviceId=device,console.log("Attempt recording!"),this._recording=!0,this.userMedia({audio:!0,deviceId:device},this.on_microphone.bind(this),error=>{createErrorModal("Could not resolve microphone!","Could not resolve microphone!
Message: "+error).open(),console.error("Could not get microphone!"),console.error(error)})}stop(){console.log("Stop recording!"),this._recording=!1,this.microphoneStream&&this.microphoneStream.disconnect(),this.microphoneStream=void 0,this.mediaStream&&(this.mediaStream.stop?this.mediaStream.stop():this.mediaStream.getTracks().forEach(value=>{value.stop()})),this.mediaStream=void 0}on_microphone(stream){this.microphoneStream&&this.stop(),console.log("Start recording!"),this.mediaStream=stream;const oldStream=this.microphoneStream;this.microphoneStream=this.audioContext.createMediaStreamSource(stream),this.microphoneStream.connect(this.processor),this.vadHandler.initialiseNewStream(oldStream,this.microphoneStream)}}VoiceRecorder.CHANNEL=0,VoiceRecorder.CHANNELS=1,VoiceRecorder.BUFFER_SIZE=1024;class MuteVAD extends VoiceActivityDetector{shouldRecord(buffer){return!1}}class PassThroughVAD extends VoiceActivityDetector{shouldRecord(buffer){return!0}}class VoiceActivityDetectorVAD extends VoiceActivityDetector{constructor(){super(...arguments),this.continuesCount=0,this.maxContinuesCount=12,this.percentageThreshold=50,this.percentage_listener=($=>{})}initialise(){return this.analyzer=AudioController.globalContext.createAnalyser(),this.analyzer.smoothingTimeConstant=1,this.buffer=new Uint8Array(this.analyzer.fftSize),super.initialise()}initialiseNewStream(old,_new){this.analyzer&&this.analyzer.disconnect(),_new&&_new.connect(this.analyzer)}shouldRecord(buffer){let usage=this.calculateUsage();return $.isFunction(this.percentage_listener)&&this.percentage_listener(usage),usage>=this.percentageThreshold?this.continuesCount=0:this.continuesCount++,this.continuesCount{e.key==String.fromCharCode(this._key)&&(this.pushed=!0)}),this._evListenerUp=(e=>{e.key==String.fromCharCode(this._key)&&(this.pushed=!1)}),this._key=key}initialise(){return document.addEventListener("keydown",this._evListenerDown),document.addEventListener("keyup",this._evListenerUp),super.initialise()}finalize(){return document.removeEventListener("keydown",this._evListenerDown),document.removeEventListener("keyup",this._evListenerUp),super.finalize()}set pushed(flag){this._pushed=flag}set key(key){this._key=key,this._pushed=!1}shouldRecord(buffer){return this._pushed}}class CodecPoolEntry{}class CodecPool{constructor(handle,index,name,creator){this.entries=[],this.maxInstances=2,this._supported=!0,this.creator=creator,this.handle=handle,this.codecIndex=index,this.name=name}initialize(cached){for(let i=0;i{console.log("Release again! (%o)",codec),this.releaseCodec(i+1)}).catch(error=>{this._supported&&createErrorModal("Could not load codec driver","Could not load or initialize codec "+this.name+"
Error: "+JSON.stringify(error)+"").open(),this._supported=!1,console.error(error)})}supported(){return null!=this.creator&&this._supported}ownCodec(clientId,create=!0){return new Promise((resolve,reject)=>{if(!this.creator||!this._supported)return void reject("unsupported codec!");let freeSlot=0;for(let index=0;index{console.error(flag),this.ownCodec(clientId,!1).then(resolve).catch(reject)}).catch(error=>{console.error("Could not initialize codec!\nError: %o",error),reject("Could not initialize codec!")}));0==freeSlot&&0==this.entries[index].owner&&(freeSlot=index)}if(create){if(0==freeSlot){freeSlot=this.entries.length;let entry=new CodecPoolEntry;entry.instance=this.creator(),entry.instance.on_encoded_data=(buffer=>this.handle.sendVoicePacket(buffer,this.codecIndex)),this.entries.push(entry)}this.entries[freeSlot].owner=clientId,this.entries[freeSlot].last_access=(new Date).getTime(),this.entries[freeSlot].instance.initialized()?(this.entries[freeSlot].instance.reset(),resolve(this.entries[freeSlot].instance)):this.ownCodec(clientId,!1).then(resolve).catch(reject)}else resolve(void 0)})}releaseCodec(clientId){for(let index=0;indexnew CodecWrapper(CodecWorkerType.WORKER_OPUS,1)),new CodecPool(this,5,"Opus Music",()=>new CodecWrapper(CodecWorkerType.WORKER_OPUS,2))],this.vpacketId=0,this.chunkVPacketId=0,this.client=client,this.voiceRecorder=new VoiceRecorder(this),this.voiceRecorder.on_data=this.handleVoiceData.bind(this),this.voiceRecorder.on_end=this.handleVoiceEnded.bind(this),this.voiceRecorder.reinitialiseVAD(),this.codecPool[4].initialize(2),this.codecPool[5].initialize(2)}codecSupported(type){return this.codecPool.length>type&&this.codecPool[type].supported()}sendVoicePacket(data,codec){if(this.dataChannel){this.vpacketId++,this.vpacketId>65535&&(this.vpacketId=0);let packet=new Uint8Array(data.byteLength+2+3);packet[0]=this.chunkVPacketId++<5?1:0,packet[1]=0,packet[2]=this.vpacketId>>8&255,packet[3]=this.vpacketId>>0&255,packet[4]=codec,packet.set(data,5),this.dataChannel.send(packet)}else console.warn("Could not transfer audio (not connected)")}createSession(){this.rtcPeerConnection=new RTCPeerConnection({});this.dataChannel=this.rtcPeerConnection.createDataChannel("main",{ordered:!1,maxRetransmits:0}),this.dataChannel.onmessage=this.onDataChannelMessage.bind(this),this.dataChannel.onopen=this.onDataChannelOpen.bind(this),this.dataChannel.binaryType="arraybuffer";let sdpConstraints={offerToReceiveAudio:0,offerToReceiveVideo:0};this.rtcPeerConnection.onicecandidate=this.onIceCandidate.bind(this),this.rtcPeerConnection.createOffer(this.onOfferCreated.bind(this),()=>{console.error("Could not create ice offer!")},sdpConstraints)}dropSession(){this.dataChannel&&this.dataChannel.close(),this.rtcPeerConnection&&this.rtcPeerConnection.close()}handleControlPacket(json){"create"===json.request?this.rtcPeerConnection.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:json.sdp})):"ice"===json.request&&this.rtcPeerConnection.addIceCandidate(new RTCIceCandidate({candidate:json.candidate,sdpMid:json.session,sdpMLineIndex:json.line}))}onIceCandidate(event){console.log("Got ice candidate! Event:"),console.log(event),event&&event.candidate&&this.client.serverConnection.sendData(JSON.stringify({type:"WebRTC",request:"ice",candidate:event.candidate.candidate,line:event.candidate.sdpMLineIndex,session:event.candidate.sdpMid}))}onOfferCreated(localSession){console.log("Offer created and accepted"),this.rtcPeerConnection.setLocalDescription(localSession),this.client.serverConnection.sendData(JSON.stringify({type:"WebRTC",request:"create",session:localSession}))}onDataChannelOpen(channel){console.log("Got new data channel!")}onDataChannelMessage(message){if(this.client.controlBar.muteOutput)return;let bin=new Uint8Array(message.data),clientId=bin[2]<<8|bin[3],codec=(bin[0],bin[1],bin[4]),client=this.client.channelTree.findClient(clientId);if(!client)return void console.error("Having voice from unknown client? (ClientID: "+clientId+")");let encodedData,codecPool=this.codecPool[codec];codecPool?0==(encodedData=message.data.subarray?message.data.subarray(5):new Uint8Array(message.data,5)).length?(client.getAudioController().stopAudio(),codecPool.releaseCodec(clientId)):codecPool.ownCodec(clientId).then(decoder=>decoder.decodeSamples(client.getAudioController().codecCache(codec),encodedData)).then(buffer=>client.getAudioController().playBuffer(buffer)).catch(error=>{console.error("Could not playback client's ("+clientId+") audio ("+error+")")}):console.error("Could not playback codec "+codec)}handleVoiceData(data,head){if(this.voiceRecorder)return!!this.client.connected&&void(this.client.controlBar.muteInput||(head&&(this.chunkVPacketId=0,this.client.getClient().speaking=!0),this.codecPool[4].ownCodec(this.client.getClientId()).then(encoder=>encoder.encodeSamples(this.client.getClient().getAudioController().codecCache(4),data))))}handleVoiceEnded(){this.voiceRecorder&&(console.log("Voice ended"),this.client.getClient().speaking=!1,this.sendVoicePacket(new Uint8Array(0),4))}}$(document).bind("mousedown",function(e){0==$(e.target).parents(".contextMenu").length&&despawnContextMenu()});let contextMenuCloseFn=void 0;function despawnContextMenu(){let menue=$(".contextMenu");menue.is(":visible")&&(menue.hide(100),contextMenuCloseFn&&contextMenuCloseFn())}var MenuEntryType,sha,helpers,ChannelType,PermissionType,GroupType,GroupTarget;!function(MenuEntryType){MenuEntryType[MenuEntryType.CLOSE=0]="CLOSE",MenuEntryType[MenuEntryType.ENTRY=1]="ENTRY",MenuEntryType[MenuEntryType.HR=2]="HR",MenuEntryType[MenuEntryType.EMPTY=3]="EMPTY"}(MenuEntryType||(MenuEntryType={}));class MenuEntry{static HR(){return{callback:()=>{},type:MenuEntryType.HR,name:"",icon:""}}static EMPTY(){return{callback:()=>{},type:MenuEntryType.EMPTY,name:"",icon:""}}static CLOSE(callback){return{callback:callback,type:MenuEntryType.EMPTY,name:"",icon:""}}}function spawnMenu(x,y,...entries){const menu=$("#contextMenu");menu.empty(),menu.hide(),contextMenuCloseFn=void 0;for(let entry of entries)if(entry.type==MenuEntryType.HR)menu.append("
");else if(entry.type==MenuEntryType.CLOSE)contextMenuCloseFn=entry.callback;else if(entry.type==MenuEntryType.ENTRY){let icon=$.isFunction(entry.icon)?entry.icon():entry.icon;icon=0==icon.length?"icon_empty":"icon "+icon;let tag=$.spawn("li");tag.append("
"),tag.append("
"+($.isFunction(entry.name)?entry.name():entry.name)+"
"),menu.append(tag),entry.disabled||entry.invalidPermission?tag.addClass("disabled"):tag.click(function(){$.isFunction(entry.callback)&&entry.callback(),despawnContextMenu()})}menu.show(100),menu.css({top:y+"px",left:x+"px"})}!function(sha){sha.sha1=function(message){let buffer=message instanceof ArrayBuffer?message:(new TextEncoder).encode(message);return crypto.subtle.digest("SHA-1",buffer)}}(sha||(sha={})),function(helpers){helpers.hashPassword=function(password){return new Promise((resolve,reject)=>{sha.sha1(password).then(result=>{resolve(btoa(String.fromCharCode.apply(null,new Uint8Array(result))))})})}}(helpers||(helpers={})),function(ChannelType){ChannelType[ChannelType.PERMANENT=0]="PERMANENT",ChannelType[ChannelType.SEMI_PERMANENT=1]="SEMI_PERMANENT",ChannelType[ChannelType.TEMPORARY=2]="TEMPORARY"}(ChannelType||(ChannelType={})),function(ChannelType){ChannelType.normalize=function(mode){let value=ChannelType[mode];return(value=value.toLowerCase())[0].toUpperCase()+value.substr(1)}}(ChannelType||(ChannelType={}));class ChannelProperties{constructor(){this.channel_order=0,this.channel_name="",this.channel_topic="",this.channel_password="",this.channel_description="",this.channel_codec=4,this.channel_codec_quality=0,this.channel_codec_is_unencrypted=!1,this.channel_maxclients=-1,this.channel_maxfamilyclients=-1,this.channel_needed_talk_power=1,this.channel_flag_permanent=!1,this.channel_flag_semi_permanent=!1,this.channel_flag_default=!1,this.channel_flag_password=!1,this.channel_flag_maxclients_unlimited=!1,this.channel_flag_maxfamilyclients_inherited=!1,this.channel_flag_maxfamilyclients_unlimited=!1}}class ChannelEntry{constructor(channelId,channelName,parent=null,prevChannel=null){this.properties=new ChannelProperties,this.properties=new ChannelProperties,this.channelId=channelId,this._formatedChannelName=channelName,this.parent=parent,this.prevChannel=prevChannel,this.channelTree=null,this.initializeTag(),this.__updateChannelName()}channelName(){return this.properties.channel_name}formatedChannelName(){return this._formatedChannelName?this._formatedChannelName:this.properties.channel_name}parentChannel(){return this.parent}hasParent(){return null!=this.parent}getChannelId(){return this.channelId}channelClass(){return"channel_full"}siblings(deep=!1){const result=[];if(null==this.channelTree)return[];const self=this;return this.channelTree.channels.forEach(function(entry){let current=entry;if(deep)for(;current;){if(current.parentChannel()==self){result.push(entry);break}current=current.parentChannel()}else current.parentChannel()==self&&result.push(entry)}),result}clients(deep=!1){const result=[];if(null==this.channelTree)return[];const self=this;return this.channelTree.clients.forEach(function(entry){let current=entry.currentChannel();if(deep)for(;current;){if(current.parentChannel()==self){result.push(entry);break}current=current.parentChannel()}else current==self&&result.push(entry)}),result}initializeTag(){let rootTag=$.spawn("div");rootTag.attr("id","channel_"+this.getChannelId()),rootTag.addClass("channel"),this._tag_channel=$.spawn("div"),this._tag_channel.addClass("channelLine"),this._tag_channel.addClass(this._channelAlign);let channelType=$.spawn("div");channelType.addClass("channel_only_normal channel_type icon client-channel_green_subscribed"),this._tag_channel.append(channelType),this._tag_channel.append($.spawn("div").addClass("channel_name_container").append($.spawn("a").addClass("channel_name").text(this.channelName())));let iconTag=$.spawn("span").addClass("icons");iconTag.appendTo(this._tag_channel),iconTag.append($.spawn("div").addClass("channel_only_normal").append($.spawn("div").addClass("icon_entry icon_default icon client-channel_default").attr("title","Default channel"))),iconTag.append($.spawn("div").addClass("channel_only_normal").append($.spawn("div").addClass("icon_entry icon_password icon client-register").attr("title","The channel is password protected"))),iconTag.append($.spawn("div").addClass("channel_only_normal").append($.spawn("div").addClass("icon_entry icon_music icon client-music").attr("title","Music quality"))),iconTag.append($.spawn("div").addClass("channel_only_normal").addClass("icon_entry channel_icon").attr("title","Channel icon"));let container=$.spawn("div"),noSound=$.spawn("div").addClass("icon_entry icon_no_sound icon client-conflict-icon").attr("title","You don't support the channel codec");$.spawn("div").width(10).height(14).css("background","red").css("position","absolute").css("top","1px").css("left","3px").appendTo(container),noSound.appendTo(container),iconTag.append(container),this._tag_siblings=$.spawn("div").addClass("siblings");let tag_siblings_box=$.spawn("div").css("position","absolute").css("width","calc(100% - 16px)").css("margin","0px");this._tag_siblings.appendTo(tag_siblings_box),this._tag_clients=$.spawn("div").addClass("clients");let tag_clients_box=$.spawn("div").css("position","absolute").css("width","calc(100% - 16px)").css("margin","0px");this._tag_clients.appendTo(tag_clients_box),this._tag_root=rootTag,tag_clients_box.appendTo(this._tag_root),tag_siblings_box.appendTo(this._tag_root),this._tag_channel.appendTo(this._tag_root)}rootTag(){return this._tag_root}channelTag(){return this._tag_channel}siblingTag(){return this._tag_siblings}clientTag(){return this._tag_clients}adjustSize(parent=!0){const size=this.originalHeight;let subSize=0,clientSize=0;this.siblings(!1).forEach(function(e){subSize+=e.rootTag().outerHeight(!0)}),this.clients(!1).forEach(function(e){clientSize+=e.tag.outerHeight(!0)}),this._tag_root.css({height:size+subSize+clientSize}),this._tag_siblings.css("margin-top",clientSize+16+"px"),this._tag_clients.css({height:clientSize}),parent&&this.parentChannel()&&this.parentChannel().adjustSize(parent)}initializeListener(){const _this=this;this.channelTag().click(function(){_this.channelTree.onSelect(_this)}),this.channelTag().dblclick(()=>this.joinChannel()),settings.static(Settings.KEY_DISABLE_CONTEXT_MENU,!1)||this.channelTag().on("contextmenu",function(event){event.preventDefault(),_this.channelTree.onSelect(_this),_this.showContextMenu(event.pageX,event.pageY,()=>{_this.channelTree.onSelect(void 0)})})}showContextMenu(x,y,on_close){let channelCreate=this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_TEMPORARY).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_SEMI_PERMANENT).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_PERMANENT).granted(1),channelModify=this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_MAKE_DEFAULT).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_MAKE_PERMANENT).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_MAKE_SEMI_PERMANENT).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_MAKE_TEMPORARY).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_NAME).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_TOPIC).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_DESCRIPTION).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_PASSWORD).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_CODEC).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_CODEC_QUALITY).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_CODEC_LATENCY_FACTOR).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_MAXCLIENTS).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_MAXFAMILYCLIENTS).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_SORTORDER).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_NEEDED_TALK_POWER).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_MAKE_CODEC_ENCRYPTED).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_TEMP_DELETE_DELAY).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_ICON_MANAGE).granted(1),flagDelete=!0;this.clients(!0).length>0&&(flagDelete=this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_DELETE_FLAG_FORCE).granted(1)),flagDelete&&(flagDelete=this.properties.channel_flag_permanent?this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_DELETE_PERMANENT).granted(1):this.properties.channel_flag_semi_permanent?this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_DELETE_PERMANENT).granted(1):this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_DELETE_TEMPORARY).granted(1)),spawnMenu(x,y,{type:MenuEntryType.ENTRY,icon:"client-channel_switch",name:"Switch to channel",callback:()=>{this.joinChannel()}},MenuEntry.HR(),{type:MenuEntryType.ENTRY,icon:"client-channel_edit",name:"Edit channel",invalidPermission:!channelModify,callback:()=>{Modals.createChannelModal(this,void 0,changes=>{changes&&(changes.cid=this.channelId,log.info(LogCategory.CHANNEL,"Changed channel properties of channel %s: %o",this.channelName(),changes))})}},{type:MenuEntryType.ENTRY,icon:"client-channel_delete",name:"Delete channel",invalidPermission:!flagDelete,callback:()=>this.channelTree.client.serverConnection.sendCommand("channeldelete",{cid:this.channelId})},MenuEntry.HR(),{type:MenuEntryType.ENTRY,icon:"client-channel_create_sub",name:"Create sub channel",invalidPermission:!(channelCreate&&this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_CHILD).granted(1)),callback:()=>this.channelTree.spawnCreateChannel(this)},{type:MenuEntryType.ENTRY,icon:"client-channel_create",name:"Create channel",invalidPermission:!channelCreate,callback:()=>this.channelTree.spawnCreateChannel()},MenuEntry.CLOSE(on_close))}__updateChannelName(){this._formatedChannelName=void 0;parseType:if(null==this.parentChannel()&&"["==this.properties.channel_name.charAt(0)){let end=this.properties.channel_name.indexOf("]");if(-1==end)break parseType;let options=this.properties.channel_name.substr(1,end-1);if(-1==options.indexOf("spacer"))break parseType;if(options=options.substr(0,options.indexOf("spacer")),console.log("Channel options: '"+options+"'"),0==options.length?options="l":options.length>1&&(options=options[0]),"r"!=options&&"l"!=options&&"c"!=options&&"*"!=options)break parseType;this._channelAlign=options,this._formatedChannelName=this.properties.channel_name.substr(end+1),console.log("Got channel name: "+this._formatedChannelName)}let self=this.channelTag(),channelName=self.find(".channel_name");if(channelName.text(this.formatedChannelName()),channelName.parent().removeClass("l r c *"),(this._formatedChannelName?$.fn.hide:$.fn.show).apply(self.find(".channel_only_normal")),this._formatedChannelName&&(channelName.parent().addClass(this._channelAlign),"*"==this._channelAlign)){let lastSuccess="",index=0;do{channelName.text((lastSuccess=channelName.text())+this.formatedChannelName()),console.log(channelName.parent().width()+" : "+channelName.width()+" : "+channelName.innerWidth()+" : "+channelName.outerWidth())}while(channelName.parent().width()>=channelName.width()&&++index<255);255==index&&console.warn(LogCategory.CHANNEL,"Repeating spacer took too much repeats!"),lastSuccess.length>0&&(channelName.text(lastSuccess),self.addClass("c"))}console.log("Align: "+this._channelAlign)}updateVariables(...variables){let group=log.group(log.LogType.DEBUG,LogCategory.CHANNEL,"Update properties (%i) of %s (%i)",variables.length,this.channelName(),this.getChannelId());for(let variable of variables){let key=variable.key,value=variable.value;if("number"==typeof this.properties[key]&&(this.properties[key]=parseInt(value)),"boolean"==typeof this.properties[key]?this.properties[key]="true"==value||"1"==value:this.properties[key]=value,group.log("Updating property "+key+" = '%s' -> %o",value,this.properties[key]),"channel_name"==key)this.__updateChannelName();else if("channel_order"==key){let order=this.channelTree.findChannel(this.properties.channel_order);this.channelTree.moveChannel(this,order,this.parent)}else if("channel_icon_id"==key){let tag=this.channelTag().find(".icons .channel_icon");(this.properties.channel_icon_id>0?$.fn.show:$.fn.hide).apply(tag),this.properties.channel_icon_id>0&&(tag.children().detach(),this.channelTree.client.fileManager.icons.generateTag(this.properties.channel_icon_id).appendTo(tag))}else"channel_codec"==key?((5==this.properties.channel_codec||3==this.properties.channel_codec?$.fn.show:$.fn.hide).apply(this.channelTag().find(".icons .icon_music")),(this.channelTree.client.voiceConnection.codecSupported(this.properties.channel_codec)?$.fn.hide:$.fn.show).apply(this.channelTag().find(".icons .icon_no_sound"))):"channel_flag_default"==key?(this.properties.channel_flag_default?$.fn.show:$.fn.hide).apply(this.channelTag().find(".icons .icon_default")):"channel_flag_password"==key&&(this.properties.channel_flag_password?$.fn.show:$.fn.hide).apply(this.channelTag().find(".icons .icon_password"));"channel_maxclients"!=key&&"channel_maxfamilyclients"!=key&&"channel_flag_private"!=key&&"channel_flag_password"!=key||this.updateChannelTypeIcon()}group.end()}updateChannelTypeIcon(){let type,tag=this.channelTag().find(".channel_type");tag.removeAttr("class"),tag.addClass("channel_only_normal channel_type icon"),type=1!=this.properties.channel_flag_password||this._cachedPassword?!this.properties.channel_flag_maxclients_unlimited&&this.clients().length>=this.properties.channel_maxclients||!this.properties.channel_flag_maxfamilyclients_unlimited&&this.properties.channel_maxfamilyclients>=0&&this.clients(!0).length>=this.properties.channel_maxfamilyclients?"red":"green":"yellow",tag.addClass("client-channel_"+type+"_subscribed")}createChatTag(braces=!1){let tag=$.spawn("div");return tag.css("display","table"),tag.css("cursor","pointer"),tag.css("font-weight","bold"),tag.css("color","darkblue"),braces?tag.text('"'+this.channelName()+'"'):tag.text(this.channelName()),tag.attr("oncontextmenu","chat_channel_contextmenu(this, ...arguments);"),tag.attr("channelId",this.channelId),tag.attr("channelName",this.channelName()),tag.wrap("

").parent()}channelType(){return 1==this.properties.channel_flag_permanent?ChannelType.PERMANENT:1==this.properties.channel_flag_semi_permanent?ChannelType.SEMI_PERMANENT:ChannelType.TEMPORARY}joinChannel(){1!=this.properties.channel_flag_password||this._cachedPassword||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_JOIN_IGNORE_PASSWORD).granted(1)?this.channelTree.client.getServerConnection().joinChannel(this,this._cachedPassword).catch(error=>{error instanceof CommandResult&&781==error.id&&(this._cachedPassword=void 0,this.updateChannelTypeIcon())}):createInputModal("Channel password","Channel password:",()=>!0,text=>{typeof text!=typeof!0&&helpers.hashPassword(text).then(result=>{this._cachedPassword=result,this.joinChannel(),this.updateChannelTypeIcon()})}).open()}}function chat_channel_contextmenu(_element,event){event.preventDefault();let element=$(_element);console.log("Context menue for "+element.attr("channelName"));let chid=Number.parseInt(element.attr("channelId")),channel=globalClient.channelTree.findChannel(chid);channel&&channel.showContextMenu(event.pageX,event.pageY)}!function(Modals){Modals.spawnChangeVolume=function(current,callback){let updateCallback;const connectModal=createModal({header:function(){let header=$.spawn("div");return header.text("Change volume"),header},body:function(){let tag=$("#tmpl_change_volume").tmpl();return tag.find(".volume_slider").on("change",_=>updateCallback(tag.find(".volume_slider").val())),tag.find(".volume_slider").on("input",_=>updateCallback(tag.find(".volume_slider").val())),tag},footer:function(){let tag=$.spawn("div");tag.css("text-align","right"),tag.css("margin-top","3px"),tag.css("margin-bottom","6px"),tag.addClass("modal-button-group");let buttonReset=$.spawn("button");buttonReset.text("Reset"),buttonReset.on("click",function(){updateCallback(100)}),tag.append(buttonReset);let buttonCancel=$.spawn("button");buttonCancel.text("Cancel"),buttonCancel.on("click",function(){updateCallback(100*current),connectModal.close()}),tag.append(buttonCancel);let buttonOk=$.spawn("button");return buttonOk.text("OK"),buttonOk.on("click",function(){connectModal.close()}),tag.append(buttonOk),tag},width:600});updateCallback=(value=>{connectModal.htmlTag.find(".volume_slider").val(value);let number=value-100;connectModal.htmlTag.find(".display_volume").html((0==number?"±":number>0?"+":"")+number+" %"),callback(value/100)}),connectModal.open(),updateCallback(100*current)}}(Modals||(Modals={}));class ClientProperties{constructor(){this.client_version="",this.client_platform="",this.client_nickname="unknown",this.client_unique_identifier="unknown",this.client_description="",this.client_servergroups="",this.client_channel_group_id=0,this.client_lastconnected=0,this.client_flag_avatar="",this.client_output_muted=!1,this.client_away_message="",this.client_away=!1,this.client_input_hardware=!1,this.client_input_muted=!1,this.client_is_channel_commander=!1}}class ClientEntry{constructor(clientId,clientName){this.properties=new ClientProperties,this.lastVariableUpdate=0,this._speaking=!1,this._clientId=clientId,this.properties.client_nickname=clientName,this.channelTree=null,this._channel=null,this.audioController=new AudioController;const _this=this;this.audioController.onSpeaking=function(){_this.speaking=!0},this.audioController.onSilence=function(){_this.speaking=!1},this.audioController.initialize()}currentChannel(){return this._channel}clientNickName(){return this.properties.client_nickname}clientUid(){return this.properties.client_unique_identifier}clientId(){return this._clientId}getAudioController(){return this.audioController}initializeListener(){const _this=this;this.tag.click(event=>{_this.channelTree.onSelect(_this)}),settings.static(Settings.KEY_DISABLE_CONTEXT_MENU,!1)||this.tag.on("contextmenu",function(event){return event.preventDefault(),_this.channelTree.onSelect(_this),_this.showContextMenu(event.pageX,event.pageY,()=>{_this.channelTree.onSelect(void 0)}),!1})}showContextMenu(x,y,on_close){const _this=this;spawnMenu(x,y,{type:MenuEntryType.ENTRY,icon:"client-change_nickname",name:"Open text chat",callback:function(){chat.activeChat=_this.chat(!0),chat.focus()}},{type:MenuEntryType.ENTRY,icon:"client-poke",name:"Poke client",callback:function(){createInputModal("Poke client","Poke message:
",text=>!0,result=>{result&&(console.log("Poking client "+_this.clientNickName()+" with message "+result),_this.channelTree.client.serverConnection.sendCommand("clientpoke",{clid:_this.clientId(),msg:result}))},{width:400,maxLength:512}).open()}},{type:MenuEntryType.ENTRY,icon:"client-edit",name:"Change description",callback:function(){createInputModal("Change client description","New description:
",text=>!0,result=>{result&&(console.log("Changing "+_this.clientNickName()+"'s description to "+result),_this.channelTree.client.serverConnection.sendCommand("clientedit",{clid:_this.clientId(),client_description:result}))},{width:400,maxLength:1024}).open()}},MenuEntry.HR(),{type:MenuEntryType.ENTRY,icon:"client-move_client_to_own_channel",name:"Move client to your channel",callback:()=>{this.channelTree.client.serverConnection.sendCommand("clientmove",{clid:this.clientId(),cid:this.channelTree.client.getClient().currentChannel().getChannelId()})}},{type:MenuEntryType.ENTRY,icon:"client-kick_channel",name:"Kick client from channel",callback:function(){createInputModal("Kick client from channel","Kick reason:
",text=>!0,result=>{result&&(console.log("Kicking client "+_this.clientNickName()+" from channel with reason "+result),_this.channelTree.client.serverConnection.sendCommand("clientkick",{clid:_this.clientId(),reasonid:ViewReasonId.VREASON_CHANNEL_KICK,reasonmsg:result}))},{width:400,maxLength:255}).open()}},{type:MenuEntryType.ENTRY,icon:"client-kick_server",name:"Kick client fom server",callback:function(){createInputModal("Kick client from server","Kick reason:
",text=>!0,result=>{result&&(console.log("Kicking client "+_this.clientNickName()+" from server with reason "+result),_this.channelTree.client.serverConnection.sendCommand("clientkick",{clid:_this.clientId(),reasonid:ViewReasonId.VREASON_SERVER_KICK,reasonmsg:result}))},{width:400,maxLength:255}).open()}},{type:MenuEntryType.ENTRY,icon:"client-ban_client",name:"Ban client",disabled:!0,callback:()=>{}},MenuEntry.HR(),{type:MenuEntryType.ENTRY,icon:"client-volume",name:"Change Volume",callback:()=>{Modals.spawnChangeVolume(this.audioController.volume,volume=>{settings.changeServer("volume_client_"+this.clientUid(),volume),this.audioController.volume=volume,globalClient.selectInfo.currentSelected==this&&globalClient.selectInfo.update()})}},MenuEntry.CLOSE(on_close))}get tag(){if(this._tag)return this._tag;let tag=$.spawn("div");tag.attr("id","client_"+this.clientId()),tag.addClass("client"),tag.append($.spawn("div").addClass("icon_empty")),tag.append($.spawn("div").addClass("icon_client_state").attr("title","Client state")),tag.append($.spawn("div").addClass("name").text(this.clientNickName())),tag.append($.spawn("div").addClass("away").text(this.clientNickName()));let clientIcons=$.spawn("span");return tag.append(clientIcons),this._tag=tag}static chatTag(id,name,uid,braces=!1){let tag=$.spawn("div");return tag.css("cursor","pointer"),tag.css("font-weight","bold"),tag.css("color","darkblue"),tag.css("display","table"),braces?tag.text('"'+name+'"'):tag.text(name),tag.attr("oncontextmenu","chat_client_contextmenu(this, ...arguments);"),tag.attr("clientId",id),tag.attr("clientUid",uid),tag.attr("clientName",name),tag.wrap("

").parent()}createChatTag(braces=!1){return ClientEntry.chatTag(this.clientId(),this.clientNickName(),this.clientUid(),braces)}set speaking(flag){flag!=this._speaking&&(this._speaking=flag,this.updateClientIcon())}updateClientIcon(){let icon="",clicon="";this.properties.client_away?icon="client-away":this.properties.client_output_muted?icon="client-hardware_output_muted":this.properties.client_input_hardware?this.properties.client_input_muted?icon="client-input_muted":clicon=this._speaking?this.properties.client_is_channel_commander?"client_cc_talk":"client_talk":this.properties.client_is_channel_commander?"client_cc_idle":"client_idle":icon="client-hardware_input_muted",clicon.length>0?this.tag.find(".icon_client_state").attr("class","icon_client_state clicon "+clicon):icon.length>0?this.tag.find(".icon_client_state").attr("class","icon_client_state icon "+icon):this.tag.find(".icon_client_state").attr("class","icon_client_state icon_empty")}updateAwayMessage(){let tag=this.tag.find(".away");1==this.properties.client_away&&this.properties.client_away_message?(tag.text("["+this.properties.client_away_message+"]"),tag.show()):tag.hide()}updateVariables(...variables){let group=log.group(log.LogType.DEBUG,LogCategory.CLIENT,"Update properties (%i) of %s (%i)",variables.length,this.clientNickName(),this.clientId());for(let variable of variables){if("boolean"==typeof this.properties[variable.key]?this.properties[variable.key]="true"==variable.value||"1"==variable.value:"number"==typeof this.properties[variable.key]?this.properties[variable.key]=parseInt(variable.value):this.properties[variable.key]=variable.value,group.log("Updating client "+this.clientId()+". Key "+variable.key+" Value: '"+variable.value+"' ("+typeof this.properties[variable.key]+")"),"client_nickname"==variable.key){this.tag.find(".name").text(variable.value);let chat=this.chat(!1);chat&&(chat.name=variable.value)}"client_away"!=variable.key&&"client_output_muted"!=variable.key&&"client_input_hardware"!=variable.key&&"client_input_muted"!=variable.key&&"client_is_channel_commander"!=variable.key||this.updateClientIcon(),"client_away_message"!=variable.key&&"client_away"!=variable.key||this.updateAwayMessage(),"client_unique_identifier"==variable.key&&(this.audioController.volume=parseFloat(settings.server("volume_client_"+this.clientUid(),"1")),console.error("Updated volume from config "+this.audioController.volume+" - volume_client_"+this.clientUid()+" - "+settings.server("volume_client_"+this.clientUid(),"1")),console.log(this.avatarId()))}group.end()}updateClientVariables(){(0==this.lastVariableUpdate||(new Date).getTime()-6e5>this.lastVariableUpdate)&&(this.lastVariableUpdate=(new Date).getTime(),this.channelTree.client.serverConnection.sendCommand("clientgetvariables",{clid:this.clientId()}))}chat(create=!1){let chatName="client_"+this.clientUid()+":"+this.clientId(),c=chat.findChat(chatName);if(!c&&create){(c=chat.createChat(chatName)).closeable=!0,c.name=this.clientNickName();const _this=this;c.onMessageSend=function(text){_this.channelTree.client.serverConnection.sendMessage(text,ChatType.CLIENT,_this)},c.onClose=function(){return _this.channelTree.client.serverConnection.sendCommand("clientchatclosed",{clid:_this.clientId()}),!0}}return c}updateGroupIcon(group){this.tag.find(".icon_group_"+group.id).detach(),group.properties.iconid>0&&this.tag.find("span").append(this.channelTree.client.fileManager.icons.generateTag(group.properties.iconid).addClass("icon_group_"+group.id))}assignedServerGroupIds(){let result=[];for(let id of this.properties.client_servergroups.split(","))0!=id.length&&result.push(Number.parseInt(id));return result}assignedChannelGroup(){return this.properties.client_channel_group_id}groupAssigned(group){if(group.target==GroupTarget.SERVER){for(let id of this.assignedServerGroupIds())if(id==group.id)return!0;return!1}return group.id==this.assignedChannelGroup()}onDelete(){this.audioController.close(),this.audioController=void 0}calculateOnlineTime(){return(new Date).getTime()/1e3-this.properties.client_lastconnected}avatarId(){try{let raw=atob(this.properties.client_unique_identifier),input=hex.encode(function(str){let buf=new ArrayBuffer(str.length),bufView=new Uint8Array(buf);for(let i=0,strLen=str.length;i="0"&&c<="9"?offset=c.charCodeAt(0)-"0".charCodeAt(0):c>="A"&&c<="F"?offset=c.charCodeAt(0)-"A".charCodeAt(0)+10:c>="a"&&c<="f"&&(offset=c.charCodeAt(0)-"a".charCodeAt(0)+10),result+=String.fromCharCode("a".charCodeAt(0)+offset)}return result}catch(e){return}}}class LocalClientEntry extends ClientEntry{constructor(handle){super(0,"local client"),this.handle=handle}showContextMenu(x,y,on_close){const _self=this;spawnMenu(x,y,{name:"Change name",icon:"client-change_nickname",callback:()=>_self.openRename(),type:MenuEntryType.ENTRY},{name:"Change description",icon:"client-edit",callback:()=>{createInputModal("Change own description","New description:
",text=>!0,result=>{result&&(console.log("Changing own description to "+result),_self.channelTree.client.serverConnection.sendCommand("clientedit",{clid:_self.clientId(),client_description:result}))},{width:400,maxLength:1024}).open()},type:MenuEntryType.ENTRY},MenuEntry.CLOSE(on_close))}initializeListener(){super.initializeListener(),this.tag.find(".name").addClass("own_name");const _self=this;this.tag.dblclick(function(){_self.openRename()})}openRename(){const _self=this,elm=this.tag.find(".name");elm.attr("contenteditable","true"),elm.removeClass("own_name"),elm.css("background-color","white"),elm.focus(),_self.renaming=!0,elm.keypress(function(e){if(13==e.keyCode)return $(this).trigger("focusout"),!1}),elm.focusout(function(e){if(!_self.renaming)return;_self.renaming=!1,elm.css("background-color",""),elm.removeAttr("contenteditable"),elm.addClass("own_name");let text=elm.text().toString();_self.clientNickName()!=text&&(elm.text(_self.clientNickName()),_self.handle.serverConnection.updateClient("client_nickname",text).then(e=>{chat.serverChat().appendMessage("Nickname successfully changed")}).catch(e=>{chat.serverChat().appendError("Could not change nickname ("+e.extra_message+")"),_self.openRename()}))})}}function chat_client_contextmenu(_element,event){event.preventDefault();let element=$(_element);console.log("Context menue for "+element.attr("clientName"));let clid=Number.parseInt(element.attr("clientId")),client=globalClient.channelTree.findClient(clid);client&&client.clientUid()==element.attr("clientUid")&&client.showContextMenu(event.pageX,event.pageY)}!function(Modals){Modals.createChannelModal=function(channel,parent,callback){let properties={};const modal=createModal({header:channel?"Edit channel":"Create channel",body:()=>{let template=$("#tmpl_channel_edit").tmpl(channel?channel.properties:new ChannelProperties);return(template=$.spawn("div").append(template)).tabify()},footer:()=>{let footer=$.spawn("div");footer.addClass("modal-button-group"),footer.css("margin","5px");let buttonCancel=$.spawn("button");buttonCancel.text("Cancel").addClass("button_cancel");let buttonOk=$.spawn("button");return buttonOk.text("Ok").addClass("button_ok"),footer.append(buttonCancel),footer.append(buttonOk),footer},width:500});!function(properties,tag,button,create){let updateButton=()=>{0==tag.find(".input_error").length?button.removeAttr("disabled"):button.attr("disabled","true")};tag.find(".channel_name").change(function(){properties.channel_name=this.value,$(this).removeClass("input_error"),(this.value.length<1||this.value.length>40)&&$(this).addClass("input_error"),updateButton()}).prop("disabled",!create&&!globalClient.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_NAME).granted(1)),tag.find(".channel_password").change(function(){properties.channel_flag_password=0!=this.value.length,properties.channel_flag_password&&helpers.hashPassword(this.value).then(pass=>properties.channel_password=pass),$(this).removeClass("input_error"),properties.channel_flag_password||globalClient.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_FORCE_PASSWORD).granted(1)&&$(this).addClass("input_error"),updateButton()}).prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_WITH_PASSWORD:PermissionType.B_CHANNEL_MODIFY_PASSWORD).granted(1)),tag.find(".channel_topic").change(function(){properties.channel_topic=this.value}).prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_WITH_TOPIC:PermissionType.B_CHANNEL_MODIFY_TOPIC).granted(1)),tag.find(".channel_description").change(function(){properties.channel_description=this.value}).prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_WITH_DESCRIPTION:PermissionType.B_CHANNEL_MODIFY_DESCRIPTION).granted(1)),create&&(tag.find(".channel_name").trigger("change"),tag.find(".channel_password").trigger("change"))}(properties,modal.htmlTag.find(".channel_general_properties"),modal.htmlTag.find(".button_ok"),!channel),function(properties,tag,button,parent,create){tag.find('input[name="channel_type"]').change(function(){switch(this.value){case"semi":properties.channel_flag_permanent=!1,properties.channel_flag_semi_permanent=!0;break;case"perm":properties.channel_flag_permanent=!0,properties.channel_flag_semi_permanent=!1;break;default:properties.channel_flag_permanent=!1,properties.channel_flag_semi_permanent=!1}}),tag.find('input[name="channel_type"][value="temp"]').prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_TEMPORARY:PermissionType.B_CHANNEL_MODIFY_MAKE_TEMPORARY).granted(1)),tag.find('input[name="channel_type"][value="semi"]').prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_SEMI_PERMANENT:PermissionType.B_CHANNEL_MODIFY_MAKE_SEMI_PERMANENT).granted(1)),tag.find('input[name="channel_type"][value="perm"]').prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_PERMANENT:PermissionType.B_CHANNEL_MODIFY_MAKE_PERMANENT).granted(1)),tag.find('input[name="channel_type"]:not(:disabled)').last().prop("checked",!0).trigger("change"),tag.find('input[name="channel_default"]').change(function(){console.log(this.checked),properties.channel_flag_default=this.checked;let elements=tag.find('input[name="channel_type"]');this.checked?(elements.prop("enabled",!1),elements.prop("checked",!1),tag.find('input[name="channel_type"][value="perm"]').prop("checked",!0).trigger("change")):elements.removeProp("enabled")}).prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_PERMANENT:PermissionType.B_CHANNEL_MODIFY_MAKE_PERMANENT).granted(1)||!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_WITH_DEFAULT:PermissionType.B_CHANNEL_MODIFY_MAKE_DEFAULT).granted(1)),tag.find('input[name="talk_power"]').change(function(){properties.channel_needed_talk_power=parseInt(this.value)}).prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_WITH_NEEDED_TALK_POWER:PermissionType.B_CHANNEL_MODIFY_NEEDED_TALK_POWER).granted(1));let orderTag=tag.find(".order_id");for(let channel of parent?parent.siblings():globalClient.channelTree.rootChannel())$.spawn("option").attr("channelId",channel.channelId.toString()).text(channel.channelName()).appendTo(orderTag);orderTag.change(function(){let selected=$(this.options.item(this.selectedIndex));properties.channel_order=parseInt(selected.attr("channelId"))}).prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_WITH_SORTORDER:PermissionType.B_CHANNEL_MODIFY_SORTORDER).granted(1)),orderTag.find("option").last().prop("selected",!0)}(properties,modal.htmlTag.find(".settings_standard"),modal.htmlTag.find(".button_ok"),parent,!channel),modal.htmlTag.find(".button_ok").click(()=>{modal.close(),callback(properties)}),modal.htmlTag.find(".button_cancel").click(()=>{modal.close(),callback()}),modal.open()}}(Modals||(Modals={}));class ChannelTree{constructor(client,htmlTree){if(this.client=client,this.htmlTree=htmlTree,this.reset(),!settings.static(Settings.KEY_DISABLE_CONTEXT_MENU,!1)){let _this=this;this.htmlTree.parent().on("contextmenu",function(event){event.isDefaultPrevented()||(event.preventDefault(),_this.onSelect(void 0),_this.showContextMenu(event.pageX,event.pageY))})}}showContextMenu(x,y,on_close){let channelCreate=this.client.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_TEMPORARY).granted(1)||this.client.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_SEMI_PERMANENT).granted(1)||this.client.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_PERMANENT).granted(1);spawnMenu(x,y,{type:MenuEntryType.ENTRY,icon:"client-channel_create",name:"Create channel",invalidPermission:!channelCreate,callback:()=>this.spawnCreateChannel()},MenuEntry.CLOSE(on_close))}initialiseHead(serverName){this.server=new ServerEntry(this,serverName),this.server.htmlTag.appendTo(this.htmlTree),this.server.initializeListener()}__deleteAnimation(element){let tag=element instanceof ChannelEntry?element.rootTag():element.tag;this.htmlTree.find(tag).fadeOut("slow",()=>{tag.remove(),element instanceof ChannelEntry?element.parentChannel()&&element.parentChannel().adjustSize(!0):element instanceof ClientEntry&&element.currentChannel().adjustSize(!0)})}rootChannel(){return this.channels.filter(e=>null==e.parent)}deleteChannel(channel){const _this=this;for(let index=0;index .channelLine").addClass("selected"):entry instanceof ClientEntry?entry.tag.addClass("selected"):entry instanceof ServerEntry&&entry.htmlTag.addClass("selected"),this.client.selectInfo.currentSelected=entry}clientsByGroup(group){let result=[];for(let client of this.clients)client.groupAssigned(group)&&result.push(client);return result}clientsByChannel(channel){let result=[];for(let client of this.clients)client.currentChannel()==channel&&result.push(client);return result}reset(){this.server=null,this.clients=[],this.channels=[],this.htmlTree.empty()}spawnCreateChannel(parent){Modals.createChannelModal(void 0,parent,properties=>{properties&&(properties.cpid=parent?parent.channelId:0,log.debug(LogCategory.CHANNEL,"Creating new channel with properties: %o",properties),this.client.serverConnection.sendCommand("channelcreate",properties))})}}class CommandResult{constructor(json){this.json=json,this.id=json.id,this.message=json.msg,this.extra_message="",json.extra_msg&&(this.extra_message=json.extra_msg),this.success=0==this.id}}class ReturnListener{}class ServerConnection{constructor(client){this._connectionState=ConnectionState.UNCONNECTED,this._connectTimeoutHandler=void 0,this._connected=!1,this.on_connect=(()=>{console.log("Socket connected"),chat.serverChat().appendMessage("Logging in..."),this._handshakeHandler.startHandshake()}),this._client=client,this._socket=null,this.commandHandler=new ConnectionCommandHandler(this),this._retCodeIdx=0,this._retListener=[]}generateReturnCode(){return(this._retCodeIdx++).toString()}startConnection(host,port,handshake,timeout=1e3){this._connectTimeoutHandler&&(clearTimeout(this._connectTimeoutHandler),this._connectTimeoutHandler=null,this.disconnect()),this.updateConnectionState(ConnectionState.CONNECTING),this._remoteHost=host,this._remotePort=port,this._handshakeHandler=handshake,this._handshakeHandler.setConnection(this),this._connected=!1,chat.serverChat().appendMessage("Connecting to "+host+":"+port);const self=this;try{let sockCpy;if(this._connectTimeoutHandler=setTimeout(()=>{this.disconnect(),this._client.handleDisconnect(DisconnectReason.CONNECT_FAILURE)},timeout),this._socket=sockCpy=new WebSocket("wss:"+this._remoteHost+":"+this._remotePort),clearTimeout(this._connectTimeoutHandler),this._connectTimeoutHandler=null,this._socket!=sockCpy)return;this._socket.onopen=(()=>{this._socket==sockCpy&&(this._connected=!0,this.on_connect())}),this._socket.onclose=(event=>{this._socket==sockCpy&&this._client.handleDisconnect(this._connected?DisconnectReason.CONNECTION_CLOSED:DisconnectReason.CONNECT_FAILURE,{code:event.code,reason:event.reason,event:event})}),this._socket.onerror=(e=>{this._socket==sockCpy&&(console.log("Got error: ("+self._socket.readyState+")"),console.log(e))}),this._socket.onmessage=(msg=>{this._socket==sockCpy&&self.handleWebSocketMessage(msg.data)}),this.updateConnectionState(ConnectionState.INITIALISING)}catch(e){this.disconnect(),this._client.handleDisconnect(DisconnectReason.CONNECT_FAILURE,e)}}updateConnectionState(state){this._connectionState=state}disconnect(){if(this._connectionState==ConnectionState.UNCONNECTED)return!1;this.updateConnectionState(ConnectionState.UNCONNECTED),this._socket&&this._socket.close(3255,"request disconnect"),this._socket=null;for(let future of this._retListener)future.reject("Connection closed");return this._retListener=[],this._retCodeIdx=0,this._connected=!1,!0}handleWebSocketMessage(data){if("string"==typeof data){let json;try{json=JSON.parse(data)}catch(e){return console.error("Could not parse message json!"),void alert(e)}if(void 0===json.type)return void console.log("Missing data type!");"command"===json.type?this.handleCommand(json):"WebRTC"===json.type?this._client.voiceConnection.handleControlPacket(json):console.log("Unknown command type "+json.type)}}handleCommand(json){let group=log.group(log.LogType.DEBUG,LogCategory.NETWORKING,"Handling command '%s'",json.command);group.log("Handling command '"+json.command+"'"),group.group(log.LogType.TRACE,"Json:").collapsed(!0).log("%o",json).end();try{let fn=this.commandHandler[json.command];if(void 0===fn)return void group.log("Missing command '"+json.command+"'");fn.call(this.commandHandler,json.data)}finally{group.end()}}sendData(data){this._socket.send(data)}commandiefy(input){return JSON.stringify(input,(key,value)=>{switch(typeof value){case"boolean":return 1==value?"1":"0";case"function":return value();default:return value}})}sendCommand(command,data={},logResult=!0){const _this=this;let result=new Promise((resolve,failed)=>{let _data=$.isArray(data)?data:[data],retCode=void 0!==_data[0].return_code?_data[0].return_code:_this.generateReturnCode();_data[0].return_code=retCode;let listener=new ReturnListener;listener.resolve=resolve,listener.reject=failed,listener.code=retCode,listener.timeout=setTimeout(()=>{_this._retListener.remove(listener),listener.reject("timeout")},1500),this._retListener.push(listener),this._socket.send(this.commandiefy({type:"command",command:command,data:_data}))});return new Promise((resolve,failed)=>{result.then(resolve).catch(ex=>{if(logResult)if(ex instanceof CommandResult){let res=ex;res.success||chat.serverChat().appendError(0==res.extra_message.length?res.message:res.extra_message)}else"string"==typeof ex?chat.serverChat().appendError("Command execution resuluts in "+ex):(console.error("Invalid promise result type: "+typeof ex+". Result:"),console.error(ex));failed(ex)})})}get connected(){return this._socket&&this._socket.readyState==WebSocket.OPEN}joinChannel(channel,password=""){return this.sendCommand("clientmove",[{clid:this._client.getClientId(),cid:channel.getChannelId(),cpw:password}])}sendMessage(message,type,target){return type==ChatType.SERVER?this.sendCommand("sendtextmessage",{targetmode:3,target:0,msg:message}):type==ChatType.CHANNEL?this.sendCommand("sendtextmessage",{targetmode:2,target:target.getChannelId(),msg:message}):type==ChatType.CLIENT?this.sendCommand("sendtextmessage",{targetmode:1,target:target.clientId(),msg:message}):void 0}updateClient(key,value){let data={};return data[key]=value,this.sendCommand("clientupdate",data)}}class HandshakeHandler{constructor(identity,name){this.identity=identity,this.name=name}setConnection(con){this.connection=con,this.connection.commandHandler.handshakeidentityproof=this.handleCommandHandshakeIdentityProof.bind(this)}startHandshake(){let data={intention:0,authentication_method:this.identity.type()};this.identity.type()==IdentitifyType.TEAMSPEAK?data.publicKey=this.identity.publicKey():this.identity.type()==IdentitifyType.TEAFORO&&(data.data=this.identity.identityDataJson),this.connection.sendCommand("handshakebegin",data).catch(error=>{console.log(error)})}handleCommandHandshakeIdentityProof(json){let proof;this.identity.type()==IdentitifyType.TEAMSPEAK?proof=this.identity.signMessage(json[0].message):this.identity.type()==IdentitifyType.TEAFORO&&(proof=this.identity.identitySign),this.connection.sendCommand("handshakeindentityproof",{proof:proof}).then(()=>{this.connection.sendCommand("clientinit",{client_nickname:this.name?this.name:this.identity.name(),client_platform:navigator.platform,client_version:navigator.userAgent,client_browser_engine:navigator.product})}).catch(error=>{console.error("Got login error"),console.log(error)})}}class ConnectionCommandHandler{constructor(connection){this.connection=connection,this.error=this.handleCommandResult,this.channellist=this.handleCommandChannelList,this.notifychannelcreated=this.handleCommandChannelCreate,this.notifychanneldeleted=this.handleCommandChannelDelete,this.notifycliententerview=this.handleCommandClientEnterView,this.notifyclientleftview=this.handleCommandClientLeftView,this.notifyclientmoved=this.handleNotifyClientMoved,this.initserver=this.handleCommandServerInit,this.notifychannelmoved=this.handleNotifyChannelMoved,this.notifychanneledited=this.handleNotifyChannelEdited,this.notifytextmessage=this.handleNotifyTextMessage,this.notifyclientupdated=this.handleNotifyClientUpdated,this.notifyserveredited=this.handleNotifyServerEdited,this.notifyserverupdated=this.handleNotifyServerUpdated}handleCommandResult(json){let code=(json=json[0]).return_code;if(0==code.length)return void console.log("Invalid return code! ("+json+")");let retListeners=this.connection._retListener;for(let e of retListeners){if(e.code!=code)continue;retListeners.remove(e);let result=new CommandResult(json);result.success?e.resolve(result):e.reject(result);break}}handleCommandServerInit(json){console.log("Setting up voice "),this.connection._client.voiceConnection.createSession(),json=json[0],this.connection._client.clientId=parseInt(json.aclid),this.connection._client.getClient().updateVariables({key:"client_nickname",value:json.acn});for(let key in json)"aclid"!==key&&"acn"!==key&&this.connection._client.channelTree.server.updateProperty(key,json[key]);chat.serverChat().name=this.connection._client.channelTree.server.properties.virtualserver_name,chat.serverChat().appendMessage("Connected as {0}",!0,this.connection._client.getClient().createChatTag(!0)),globalClient.onConnected()}createChannelFromJson(json,ignoreOrder=!1){let tree=this.connection._client.channelTree,channel=new ChannelEntry(parseInt(json.cid),json.channel_name,tree.findChannel(json.cpid));if(tree.insertChannel(channel),"0"!==json.channel_order){let prev=tree.findChannel(json.channel_order);if(!prev&&0!=json.channel_order&&!ignoreOrder)return void console.error("Invalid channel order id!");let parent=tree.findChannel(json.cpid);if(!parent&&0!=json.cpid)return void console.error("Invalid channel parent");tree.moveChannel(channel,prev,parent)}if(ignoreOrder)for(let ch of tree.channels)ch.properties.channel_order==channel.channelId&&tree.moveChannel(ch,channel,channel.parent);let updates=[];for(let key in json)"cid"!==key&&"cpid"!==key&&"invokerid"!==key&&"invokername"!==key&&"invokeruid"!==key&&"reasonid"!==key&&updates.push({key:key,value:json[key]});channel.updateVariables(...updates)}handleCommandChannelList(json){console.log("Got "+json.length+" new channels");for(let index=0;index> "+json.msg)}else 2==mode?chat.channelChat().appendMessage("{0} >> {1}",!0,ClientEntry.chatTag(json.invokerid,json.invokername,json.invokeruid,!0),json.msg):3==mode&&chat.serverChat().appendMessage("{0} >> {1}",!0,ClientEntry.chatTag(json.invokerid,json.invokername,json.invokeruid,!0),json.msg)}handleNotifyClientUpdated(json){json=json[0];let client=this.connection._client.channelTree.findClient(json.clid);if(!client)return void console.error("Tried to update an non existing client");let updates=[];for(let key in json)"clid"!=key&&updates.push({key:key,value:json[key]});client.updateVariables(...updates),this.connection._client.selectInfo.currentSelected==client&&this.connection._client.selectInfo.update()}handleNotifyServerEdited(json){json=json[0];for(let key in json)"invokerid"!==key&&"invokername"!==key&&"invokeruid"!==key&&"reasonid"!==key&&this.connection._client.channelTree.server.updateProperty(key,json[key])}handleNotifyServerUpdated(json){json=json[0];for(let key in json)"invokerid"!==key&&"invokername"!==key&&"invokeruid"!==key&&"reasonid"!==key&&this.connection._client.channelTree.server.updateProperty(key,json[key]);let info=this.connection._client.selectInfo;info.currentSelected instanceof ServerEntry&&info.update()}}if("undefined"!=typeof customElements){class X_Properties extends HTMLElement{}class X_Property extends HTMLElement{}customElements.define("x-properties",X_Properties,{extends:"div"}),customElements.define("x-property",X_Property,{extends:"div"})}class Settings{constructor(){this.cacheGlobal={},this.cacheServer={},this.updated=!1,this._staticPropsTag=$("#properties"),this.cacheGlobal=JSON.parse(localStorage.getItem("settings.global")),this.cacheGlobal||(this.cacheGlobal={});const _this=this;this.saveWorker=setInterval(()=>{_this.updated&&_this.save()},5e3),this.initializeStatic()}initializeStatic(){location.search.substr(1).split("&").forEach(part=>{let item=part.split("=");$("").attr("key",item[0]).attr("value",item[1]).appendTo(this._staticPropsTag)})}static transformStO(input,_default){return void 0===input?_default:"string"==typeof _default?input:"number"==typeof _default?parseInt(input):"boolean"==typeof _default?"1"==input||"true"==input:void 0===_default?input:JSON.parse(input)}static transformOtS(input){return"string"==typeof input?input:"number"==typeof input?input.toString():"boolean"==typeof input?input?"1":"0":void 0!==input?JSON.stringify(input):void 0}global(key,_default){let result=this.cacheGlobal[key];return Settings.transformStO(result,_default)}server(key,_default){let result=this.cacheServer[key];return Settings.transformStO(result,_default)}static(key,_default){let result=this._staticPropsTag.find("[key='"+key+"']");return console.log("%d | %o",result.length,result),Settings.transformStO(result.length>0?decodeURIComponent(result.last().attr("value")):void 0,_default)}changeGlobal(key,value){this.cacheGlobal[key]!=value&&(this.updated=!0,this.cacheGlobal[key]=Settings.transformOtS(value),Settings.UPDATE_DIRECT&&this.save())}changeServer(key,value){this.cacheServer[key]!=value&&(this.updated=!0,this.cacheServer[key]=Settings.transformOtS(value),Settings.UPDATE_DIRECT&&this.save())}setServer(server){if(this.currentServer&&(this.save(),this.cacheServer={},this.currentServer=void 0),this.currentServer=server,this.currentServer){let serverId=this.currentServer.properties.virtualserver_unique_identifier;this.cacheServer=JSON.parse(localStorage.getItem("settings.server_"+serverId)),this.cacheServer||(this.cacheServer={})}}save(){if(this.updated=!1,this.currentServer){let serverId=this.currentServer.properties.virtualserver_unique_identifier,server=JSON.stringify(this.cacheServer);localStorage.setItem("settings.server_"+serverId,server)}let global=JSON.stringify(this.cacheGlobal);localStorage.setItem("settings.global",global)}deleteStatic(key){let result=this._staticPropsTag.find("[key='"+key+"']");0!=result.length&&result.detach()}}Settings.KEY_DISABLE_CONTEXT_MENU="disableContextMenu",Settings.KEY_DISABLE_UNLOAD_DIALOG="disableUnloadDialog",Settings.UPDATE_DIRECT=!0;class InfoBar{constructor(client,htmlTag){this.timers=[],this.intervals=[],this.handle=client,this._htmlTag=htmlTag}createInfoTable(infos){let table=$("

" + e + ":" + infos[e] + "
");for(let e in infos){console.log("Display info "+e);let entry=$("");entry.append(""),entry.append(""),table.append(entry)}return table}set currentSelected(entry){this._currentSelected!=entry&&(this._currentSelected=entry,this.buildBar())}get currentSelected(){return this._currentSelected}update(){this.buildBar()}updateServerTimings(){this._htmlTag.find(".uptime").text(formatDate(this._currentSelected.calculateUptime()))}updateClientTimings(){this._htmlTag.find(".online").text(formatDate(this._currentSelected.calculateOnlineTime()))}buildBar(){if(this._htmlTag.empty(),this._currentSelected){for(let timer of this.timers)clearTimeout(timer);for(let timer of this.intervals)clearInterval(timer);if(this._currentSelected instanceof ServerEntry){this._currentSelected.shouldUpdateProperties()&&this._currentSelected.updateProperties();let version=this._currentSelected.properties.virtualserver_version;version.startsWith("TeaSpeak ")&&(version=version.substr("TeaSpeak ".length)),this._htmlTag.append(this.createInfoTable({Name:this._currentSelected.properties.virtualserver_name,Address:"unknown",Type:"TeaSpeak",Version:version+" on "+this._currentSelected.properties.virtualserver_platform,Uptime:""+formatDate(this._currentSelected.calculateUptime())+"","Current Channels":this._currentSelected.properties.virtualserver_channelsonline,"Current Clients":this._currentSelected.properties.virtualserver_clientsonline,"Current Queries":this._currentSelected.properties.virtualserver_queryclientsonline})),this._htmlTag.append($.spawn("div").css("height","100%"));let requestUpdate=$.spawn("button");requestUpdate.css("min-height","16px"),requestUpdate.css("bottom",0),requestUpdate.text("update info"),this._currentSelected.shouldUpdateProperties()?requestUpdate.css("color","green"):(requestUpdate.attr("disabled","true"),requestUpdate.css("color","red")),this._htmlTag.append(requestUpdate);const _server=this._currentSelected,_this=this;requestUpdate.click(function(){_server.updateProperties(),_this.buildBar()}),this.timers.push(setTimeout(function(){requestUpdate.css("color","green"),requestUpdate.removeAttr("disabled")},_server.nextInfoRequest-(new Date).getTime())),this.intervals.push(setInterval(this.updateServerTimings.bind(this),1e3))}else if(this._currentSelected instanceof ChannelEntry){let props=this._currentSelected.properties;this._htmlTag.append(this.createInfoTable({Name:this._currentSelected.createChatTag().html(),Topic:this._currentSelected.properties.channel_topic,Codec:this._currentSelected.properties.channel_codec,"Codec Quality":this._currentSelected.properties.channel_codec_quality,Type:ChannelType.normalize(this._currentSelected.channelType()),"Current clients":this._currentSelected.channelTree.clientsByChannel(this._currentSelected).length+" / "+(-1==props.channel_maxclients?"Unlimited":props.channel_maxclients),"Subscription Status":"unknown","Voice Data Encryption":"unknown"}))}else if(this._currentSelected instanceof ClientEntry){this._currentSelected.updateVariables();let version=this._currentSelected.properties.client_version;version||(version="");let infos={Name:this._currentSelected.createChatTag().html(),Description:this._currentSelected.properties.client_description,Version:""+version.split(" ")[0]+" on "+this._currentSelected.properties.client_platform,"Online since":""+formatDate(this._currentSelected.calculateOnlineTime())+"",Volume:100*this._currentSelected.audioController.volume+" %"};this._currentSelected.properties.client_teaforum_id>0&&(infos["TeaSpeak Account"]="{0}".format(this._currentSelected.properties.client_teaforum_name,this._currentSelected.properties.client_teaforum_id)),this._htmlTag.append(this.createInfoTable(infos));{let serverGroups=$.spawn("div");serverGroups.css("display","flex").css("flex-direction","column");let header=$.spawn("div");header.css("display","flex").css("margin-top","5px").css("align-items","center"),$.spawn("div").addClass("icon client-permission_server_groups").appendTo(header),$.spawn("div").text("Server groups:").css("margin-left","3px").css("font-weight","bold").appendTo(header),header.appendTo(serverGroups);for(let groupId of this._currentSelected.assignedServerGroupIds()){let group=this.handle.groups.serverGroup(groupId);if(!group)continue;let groupTag=$.spawn("div");groupTag.css("display","flex").css("margin-top","1px").css("margin-left","10px").css("align-items","center"),this.handle.fileManager.icons.generateTag(group.properties.iconid).appendTo(groupTag),$.spawn("div").text(group.name).css("margin-left","3px").appendTo(groupTag),groupTag.appendTo(serverGroups)}this._htmlTag.append(serverGroups)}{let channelGroup=$.spawn("div");channelGroup.css("display","flex").css("flex-direction","column");let header=$.spawn("div");header.css("display","flex").css("margin-top","10px").css("align-items","center"),$.spawn("div").addClass("icon client-permission_channel").appendTo(header),$.spawn("div").text("Channel group:").css("margin-left","3px").css("font-weight","bold").appendTo(header),header.appendTo(channelGroup);let group=this.handle.groups.channelGroup(this._currentSelected.assignedChannelGroup());if(group){let groupTag=$.spawn("div");groupTag.css("display","flex").css("margin-top","1px").css("margin-left","10px").css("align-items","center"),this.handle.fileManager.icons.generateTag(group.properties.iconid).appendTo(groupTag),$.spawn("div").text(group.name).css("margin-left","3px").appendTo(groupTag),groupTag.appendTo(channelGroup)}this._htmlTag.append(channelGroup)}this._currentSelected.properties.client_flag_avatar.length>0&&this.handle.fileManager.avatars.generateTag(this._currentSelected).appendTo(this._htmlTag),this.intervals.push(setInterval(this.updateClientTimings.bind(this),1e3))}}}}!function(PermissionType){PermissionType.B_SERVERINSTANCE_HELP_VIEW="b_serverinstance_help_view",PermissionType.B_SERVERINSTANCE_VERSION_VIEW="b_serverinstance_version_view",PermissionType.B_SERVERINSTANCE_INFO_VIEW="b_serverinstance_info_view",PermissionType.B_SERVERINSTANCE_VIRTUALSERVER_LIST="b_serverinstance_virtualserver_list",PermissionType.B_SERVERINSTANCE_BINDING_LIST="b_serverinstance_binding_list",PermissionType.B_SERVERINSTANCE_PERMISSION_LIST="b_serverinstance_permission_list",PermissionType.B_SERVERINSTANCE_PERMISSION_FIND="b_serverinstance_permission_find",PermissionType.B_VIRTUALSERVER_CREATE="b_virtualserver_create",PermissionType.B_VIRTUALSERVER_DELETE="b_virtualserver_delete",PermissionType.B_VIRTUALSERVER_START_ANY="b_virtualserver_start_any",PermissionType.B_VIRTUALSERVER_STOP_ANY="b_virtualserver_stop_any",PermissionType.B_VIRTUALSERVER_CHANGE_MACHINE_ID="b_virtualserver_change_machine_id",PermissionType.B_VIRTUALSERVER_CHANGE_TEMPLATE="b_virtualserver_change_template",PermissionType.B_SERVERQUERY_LOGIN="b_serverquery_login",PermissionType.B_SERVERINSTANCE_TEXTMESSAGE_SEND="b_serverinstance_textmessage_send",PermissionType.B_SERVERINSTANCE_LOG_VIEW="b_serverinstance_log_view",PermissionType.B_SERVERINSTANCE_LOG_ADD="b_serverinstance_log_add",PermissionType.B_SERVERINSTANCE_STOP="b_serverinstance_stop",PermissionType.B_SERVERINSTANCE_MODIFY_SETTINGS="b_serverinstance_modify_settings",PermissionType.B_SERVERINSTANCE_MODIFY_QUERYGROUP="b_serverinstance_modify_querygroup",PermissionType.B_SERVERINSTANCE_MODIFY_TEMPLATES="b_serverinstance_modify_templates",PermissionType.B_VIRTUALSERVER_SELECT="b_virtualserver_select",PermissionType.B_VIRTUALSERVER_INFO_VIEW="b_virtualserver_info_view",PermissionType.B_VIRTUALSERVER_CONNECTIONINFO_VIEW="b_virtualserver_connectioninfo_view",PermissionType.B_VIRTUALSERVER_CHANNEL_LIST="b_virtualserver_channel_list",PermissionType.B_VIRTUALSERVER_CHANNEL_SEARCH="b_virtualserver_channel_search",PermissionType.B_VIRTUALSERVER_CLIENT_LIST="b_virtualserver_client_list",PermissionType.B_VIRTUALSERVER_CLIENT_SEARCH="b_virtualserver_client_search",PermissionType.B_VIRTUALSERVER_CLIENT_DBLIST="b_virtualserver_client_dblist",PermissionType.B_VIRTUALSERVER_CLIENT_DBSEARCH="b_virtualserver_client_dbsearch",PermissionType.B_VIRTUALSERVER_CLIENT_DBINFO="b_virtualserver_client_dbinfo",PermissionType.B_VIRTUALSERVER_PERMISSION_FIND="b_virtualserver_permission_find",PermissionType.B_VIRTUALSERVER_CUSTOM_SEARCH="b_virtualserver_custom_search",PermissionType.B_VIRTUALSERVER_START="b_virtualserver_start",PermissionType.B_VIRTUALSERVER_STOP="b_virtualserver_stop",PermissionType.B_VIRTUALSERVER_TOKEN_LIST="b_virtualserver_token_list",PermissionType.B_VIRTUALSERVER_TOKEN_ADD="b_virtualserver_token_add",PermissionType.B_VIRTUALSERVER_TOKEN_USE="b_virtualserver_token_use",PermissionType.B_VIRTUALSERVER_TOKEN_DELETE="b_virtualserver_token_delete",PermissionType.B_VIRTUALSERVER_LOG_VIEW="b_virtualserver_log_view",PermissionType.B_VIRTUALSERVER_LOG_ADD="b_virtualserver_log_add",PermissionType.B_VIRTUALSERVER_JOIN_IGNORE_PASSWORD="b_virtualserver_join_ignore_password",PermissionType.B_VIRTUALSERVER_NOTIFY_REGISTER="b_virtualserver_notify_register",PermissionType.B_VIRTUALSERVER_NOTIFY_UNREGISTER="b_virtualserver_notify_unregister",PermissionType.B_VIRTUALSERVER_SNAPSHOT_CREATE="b_virtualserver_snapshot_create",PermissionType.B_VIRTUALSERVER_SNAPSHOT_DEPLOY="b_virtualserver_snapshot_deploy",PermissionType.B_VIRTUALSERVER_PERMISSION_RESET="b_virtualserver_permission_reset",PermissionType.B_VIRTUALSERVER_MODIFY_NAME="b_virtualserver_modify_name",PermissionType.B_VIRTUALSERVER_MODIFY_WELCOMEMESSAGE="b_virtualserver_modify_welcomemessage",PermissionType.B_VIRTUALSERVER_MODIFY_MAXCLIENTS="b_virtualserver_modify_maxclients",PermissionType.B_VIRTUALSERVER_MODIFY_RESERVED_SLOTS="b_virtualserver_modify_reserved_slots",PermissionType.B_VIRTUALSERVER_MODIFY_PASSWORD="b_virtualserver_modify_password",PermissionType.B_VIRTUALSERVER_MODIFY_DEFAULT_SERVERGROUP="b_virtualserver_modify_default_servergroup",PermissionType.B_VIRTUALSERVER_MODIFY_DEFAULT_CHANNELGROUP="b_virtualserver_modify_default_channelgroup",PermissionType.B_VIRTUALSERVER_MODIFY_DEFAULT_CHANNELADMINGROUP="b_virtualserver_modify_default_channeladmingroup",PermissionType.B_VIRTUALSERVER_MODIFY_CHANNEL_FORCED_SILENCE="b_virtualserver_modify_channel_forced_silence",PermissionType.B_VIRTUALSERVER_MODIFY_COMPLAIN="b_virtualserver_modify_complain",PermissionType.B_VIRTUALSERVER_MODIFY_ANTIFLOOD="b_virtualserver_modify_antiflood",PermissionType.B_VIRTUALSERVER_MODIFY_FT_SETTINGS="b_virtualserver_modify_ft_settings",PermissionType.B_VIRTUALSERVER_MODIFY_FT_QUOTAS="b_virtualserver_modify_ft_quotas",PermissionType.B_VIRTUALSERVER_MODIFY_HOSTMESSAGE="b_virtualserver_modify_hostmessage",PermissionType.B_VIRTUALSERVER_MODIFY_HOSTBANNER="b_virtualserver_modify_hostbanner",PermissionType.B_VIRTUALSERVER_MODIFY_HOSTBUTTON="b_virtualserver_modify_hostbutton",PermissionType.B_VIRTUALSERVER_MODIFY_PORT="b_virtualserver_modify_port",PermissionType.B_VIRTUALSERVER_MODIFY_HOST="b_virtualserver_modify_host",PermissionType.B_VIRTUALSERVER_MODIFY_AUTOSTART="b_virtualserver_modify_autostart",PermissionType.B_VIRTUALSERVER_MODIFY_NEEDED_IDENTITY_SECURITY_LEVEL="b_virtualserver_modify_needed_identity_security_level",PermissionType.B_VIRTUALSERVER_MODIFY_PRIORITY_SPEAKER_DIMM_MODIFICATOR="b_virtualserver_modify_priority_speaker_dimm_modificator",PermissionType.B_VIRTUALSERVER_MODIFY_LOG_SETTINGS="b_virtualserver_modify_log_settings",PermissionType.B_VIRTUALSERVER_MODIFY_MIN_CLIENT_VERSION="b_virtualserver_modify_min_client_version",PermissionType.B_VIRTUALSERVER_MODIFY_ICON_ID="b_virtualserver_modify_icon_id",PermissionType.B_VIRTUALSERVER_MODIFY_WEBLIST="b_virtualserver_modify_weblist",PermissionType.B_VIRTUALSERVER_MODIFY_CODEC_ENCRYPTION_MODE="b_virtualserver_modify_codec_encryption_mode",PermissionType.B_VIRTUALSERVER_MODIFY_TEMPORARY_PASSWORDS="b_virtualserver_modify_temporary_passwords",PermissionType.B_VIRTUALSERVER_MODIFY_TEMPORARY_PASSWORDS_OWN="b_virtualserver_modify_temporary_passwords_own",PermissionType.B_VIRTUALSERVER_MODIFY_CHANNEL_TEMP_DELETE_DELAY_DEFAULT="b_virtualserver_modify_channel_temp_delete_delay_default",PermissionType.B_VIRTUALSERVER_MODIFY_MUSIC_BOT_LIMIT="b_virtualserver_modify_music_bot_limit",PermissionType.I_CHANNEL_MIN_DEPTH="i_channel_min_depth",PermissionType.I_CHANNEL_MAX_DEPTH="i_channel_max_depth",PermissionType.B_CHANNEL_GROUP_INHERITANCE_END="b_channel_group_inheritance_end",PermissionType.I_CHANNEL_PERMISSION_MODIFY_POWER="i_channel_permission_modify_power",PermissionType.I_CHANNEL_NEEDED_PERMISSION_MODIFY_POWER="i_channel_needed_permission_modify_power",PermissionType.B_CHANNEL_INFO_VIEW="b_channel_info_view",PermissionType.B_CHANNEL_CREATE_CHILD="b_channel_create_child",PermissionType.B_CHANNEL_CREATE_PERMANENT="b_channel_create_permanent",PermissionType.B_CHANNEL_CREATE_SEMI_PERMANENT="b_channel_create_semi_permanent",PermissionType.B_CHANNEL_CREATE_TEMPORARY="b_channel_create_temporary",PermissionType.B_CHANNEL_CREATE_PRIVATE="b_channel_create_private",PermissionType.B_CHANNEL_CREATE_WITH_TOPIC="b_channel_create_with_topic",PermissionType.B_CHANNEL_CREATE_WITH_DESCRIPTION="b_channel_create_with_description",PermissionType.B_CHANNEL_CREATE_WITH_PASSWORD="b_channel_create_with_password",PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_CODEC_SPEEX8="b_channel_create_modify_with_codec_speex8",PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_CODEC_SPEEX16="b_channel_create_modify_with_codec_speex16",PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_CODEC_SPEEX32="b_channel_create_modify_with_codec_speex32",PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_CODEC_CELTMONO48="b_channel_create_modify_with_codec_celtmono48",PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_CODEC_OPUSVOICE="b_channel_create_modify_with_codec_opusvoice",PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_CODEC_OPUSMUSIC="b_channel_create_modify_with_codec_opusmusic",PermissionType.I_CHANNEL_CREATE_MODIFY_WITH_CODEC_MAXQUALITY="i_channel_create_modify_with_codec_maxquality",PermissionType.I_CHANNEL_CREATE_MODIFY_WITH_CODEC_LATENCY_FACTOR_MIN="i_channel_create_modify_with_codec_latency_factor_min",PermissionType.B_CHANNEL_CREATE_WITH_MAXCLIENTS="b_channel_create_with_maxclients",PermissionType.B_CHANNEL_CREATE_WITH_MAXFAMILYCLIENTS="b_channel_create_with_maxfamilyclients",PermissionType.B_CHANNEL_CREATE_WITH_SORTORDER="b_channel_create_with_sortorder",PermissionType.B_CHANNEL_CREATE_WITH_DEFAULT="b_channel_create_with_default",PermissionType.B_CHANNEL_CREATE_WITH_NEEDED_TALK_POWER="b_channel_create_with_needed_talk_power",PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_FORCE_PASSWORD="b_channel_create_modify_with_force_password",PermissionType.I_CHANNEL_CREATE_MODIFY_WITH_TEMP_DELETE_DELAY="i_channel_create_modify_with_temp_delete_delay",PermissionType.B_CHANNEL_MODIFY_PARENT="b_channel_modify_parent",PermissionType.B_CHANNEL_MODIFY_MAKE_DEFAULT="b_channel_modify_make_default",PermissionType.B_CHANNEL_MODIFY_MAKE_PERMANENT="b_channel_modify_make_permanent",PermissionType.B_CHANNEL_MODIFY_MAKE_SEMI_PERMANENT="b_channel_modify_make_semi_permanent",PermissionType.B_CHANNEL_MODIFY_MAKE_TEMPORARY="b_channel_modify_make_temporary",PermissionType.B_CHANNEL_MODIFY_NAME="b_channel_modify_name",PermissionType.B_CHANNEL_MODIFY_TOPIC="b_channel_modify_topic",PermissionType.B_CHANNEL_MODIFY_DESCRIPTION="b_channel_modify_description",PermissionType.B_CHANNEL_MODIFY_PASSWORD="b_channel_modify_password",PermissionType.B_CHANNEL_MODIFY_CODEC="b_channel_modify_codec",PermissionType.B_CHANNEL_MODIFY_CODEC_QUALITY="b_channel_modify_codec_quality",PermissionType.B_CHANNEL_MODIFY_CODEC_LATENCY_FACTOR="b_channel_modify_codec_latency_factor",PermissionType.B_CHANNEL_MODIFY_MAXCLIENTS="b_channel_modify_maxclients",PermissionType.B_CHANNEL_MODIFY_MAXFAMILYCLIENTS="b_channel_modify_maxfamilyclients",PermissionType.B_CHANNEL_MODIFY_SORTORDER="b_channel_modify_sortorder",PermissionType.B_CHANNEL_MODIFY_NEEDED_TALK_POWER="b_channel_modify_needed_talk_power",PermissionType.I_CHANNEL_MODIFY_POWER="i_channel_modify_power",PermissionType.I_CHANNEL_NEEDED_MODIFY_POWER="i_channel_needed_modify_power",PermissionType.B_CHANNEL_MODIFY_MAKE_CODEC_ENCRYPTED="b_channel_modify_make_codec_encrypted",PermissionType.B_CHANNEL_MODIFY_TEMP_DELETE_DELAY="b_channel_modify_temp_delete_delay",PermissionType.B_CHANNEL_DELETE_PERMANENT="b_channel_delete_permanent",PermissionType.B_CHANNEL_DELETE_SEMI_PERMANENT="b_channel_delete_semi_permanent",PermissionType.B_CHANNEL_DELETE_TEMPORARY="b_channel_delete_temporary",PermissionType.B_CHANNEL_DELETE_FLAG_FORCE="b_channel_delete_flag_force",PermissionType.I_CHANNEL_DELETE_POWER="i_channel_delete_power",PermissionType.I_CHANNEL_NEEDED_DELETE_POWER="i_channel_needed_delete_power",PermissionType.B_CHANNEL_JOIN_PERMANENT="b_channel_join_permanent",PermissionType.B_CHANNEL_JOIN_SEMI_PERMANENT="b_channel_join_semi_permanent",PermissionType.B_CHANNEL_JOIN_TEMPORARY="b_channel_join_temporary",PermissionType.B_CHANNEL_JOIN_IGNORE_PASSWORD="b_channel_join_ignore_password",PermissionType.B_CHANNEL_JOIN_IGNORE_MAXCLIENTS="b_channel_join_ignore_maxclients",PermissionType.I_CHANNEL_JOIN_POWER="i_channel_join_power",PermissionType.I_CHANNEL_NEEDED_JOIN_POWER="i_channel_needed_join_power",PermissionType.I_CHANNEL_SUBSCRIBE_POWER="i_channel_subscribe_power",PermissionType.I_CHANNEL_NEEDED_SUBSCRIBE_POWER="i_channel_needed_subscribe_power",PermissionType.I_CHANNEL_DESCRIPTION_VIEW_POWER="i_channel_description_view_power",PermissionType.I_CHANNEL_NEEDED_DESCRIPTION_VIEW_POWER="i_channel_needed_description_view_power",PermissionType.I_ICON_ID="i_icon_id",PermissionType.I_MAX_ICON_FILESIZE="i_max_icon_filesize",PermissionType.B_ICON_MANAGE="b_icon_manage",PermissionType.B_GROUP_IS_PERMANENT="b_group_is_permanent",PermissionType.I_GROUP_AUTO_UPDATE_TYPE="i_group_auto_update_type",PermissionType.I_GROUP_AUTO_UPDATE_MAX_VALUE="i_group_auto_update_max_value",PermissionType.I_GROUP_SORT_ID="i_group_sort_id",PermissionType.I_GROUP_SHOW_NAME_IN_TREE="i_group_show_name_in_tree",PermissionType.B_VIRTUALSERVER_SERVERGROUP_LIST="b_virtualserver_servergroup_list",PermissionType.B_VIRTUALSERVER_SERVERGROUP_PERMISSION_LIST="b_virtualserver_servergroup_permission_list",PermissionType.B_VIRTUALSERVER_SERVERGROUP_CLIENT_LIST="b_virtualserver_servergroup_client_list",PermissionType.B_VIRTUALSERVER_CHANNELGROUP_LIST="b_virtualserver_channelgroup_list",PermissionType.B_VIRTUALSERVER_CHANNELGROUP_PERMISSION_LIST="b_virtualserver_channelgroup_permission_list",PermissionType.B_VIRTUALSERVER_CHANNELGROUP_CLIENT_LIST="b_virtualserver_channelgroup_client_list",PermissionType.B_VIRTUALSERVER_CLIENT_PERMISSION_LIST="b_virtualserver_client_permission_list",PermissionType.B_VIRTUALSERVER_CHANNEL_PERMISSION_LIST="b_virtualserver_channel_permission_list",PermissionType.B_VIRTUALSERVER_CHANNELCLIENT_PERMISSION_LIST="b_virtualserver_channelclient_permission_list",PermissionType.B_VIRTUALSERVER_SERVERGROUP_CREATE="b_virtualserver_servergroup_create",PermissionType.B_VIRTUALSERVER_CHANNELGROUP_CREATE="b_virtualserver_channelgroup_create",PermissionType.I_SERVER_GROUP_MODIFY_POWER="i_server_group_modify_power",PermissionType.I_SERVER_GROUP_NEEDED_MODIFY_POWER="i_server_group_needed_modify_power",PermissionType.I_SERVER_GROUP_MEMBER_ADD_POWER="i_server_group_member_add_power",PermissionType.I_SERVER_GROUP_NEEDED_MEMBER_ADD_POWER="i_server_group_needed_member_add_power",PermissionType.I_SERVER_GROUP_MEMBER_REMOVE_POWER="i_server_group_member_remove_power",PermissionType.I_SERVER_GROUP_NEEDED_MEMBER_REMOVE_POWER="i_server_group_needed_member_remove_power",PermissionType.I_CHANNEL_GROUP_MODIFY_POWER="i_channel_group_modify_power",PermissionType.I_CHANNEL_GROUP_NEEDED_MODIFY_POWER="i_channel_group_needed_modify_power",PermissionType.I_CHANNEL_GROUP_MEMBER_ADD_POWER="i_channel_group_member_add_power",PermissionType.I_CHANNEL_GROUP_NEEDED_MEMBER_ADD_POWER="i_channel_group_needed_member_add_power",PermissionType.I_CHANNEL_GROUP_MEMBER_REMOVE_POWER="i_channel_group_member_remove_power",PermissionType.I_CHANNEL_GROUP_NEEDED_MEMBER_REMOVE_POWER="i_channel_group_needed_member_remove_power",PermissionType.I_GROUP_MEMBER_ADD_POWER="i_group_member_add_power",PermissionType.I_GROUP_NEEDED_MEMBER_ADD_POWER="i_group_needed_member_add_power",PermissionType.I_GROUP_MEMBER_REMOVE_POWER="i_group_member_remove_power",PermissionType.I_GROUP_NEEDED_MEMBER_REMOVE_POWER="i_group_needed_member_remove_power",PermissionType.I_GROUP_MODIFY_POWER="i_group_modify_power",PermissionType.I_GROUP_NEEDED_MODIFY_POWER="i_group_needed_modify_power",PermissionType.I_DISPLAYED_GROUP_MEMBER_ADD_POWER="i_displayed_group_member_add_power",PermissionType.I_DISPLAYED_GROUP_NEEDED_MEMBER_ADD_POWER="i_displayed_group_needed_member_add_power",PermissionType.I_DISPLAYED_GROUP_MEMBER_REMOVE_POWER="i_displayed_group_member_remove_power",PermissionType.I_DISPLAYED_GROUP_NEEDED_MEMBER_REMOVE_POWER="i_displayed_group_needed_member_remove_power",PermissionType.I_DISPLAYED_GROUP_MODIFY_POWER="i_displayed_group_modify_power",PermissionType.I_DISPLAYED_GROUP_NEEDED_MODIFY_POWER="i_displayed_group_needed_modify_power",PermissionType.I_PERMISSION_MODIFY_POWER="i_permission_modify_power",PermissionType.B_PERMISSION_MODIFY_POWER_IGNORE="b_permission_modify_power_ignore",PermissionType.B_VIRTUALSERVER_SERVERGROUP_DELETE="b_virtualserver_servergroup_delete",PermissionType.B_VIRTUALSERVER_CHANNELGROUP_DELETE="b_virtualserver_channelgroup_delete",PermissionType.I_CLIENT_PERMISSION_MODIFY_POWER="i_client_permission_modify_power",PermissionType.I_CLIENT_NEEDED_PERMISSION_MODIFY_POWER="i_client_needed_permission_modify_power",PermissionType.I_CLIENT_MAX_CLONES_UID="i_client_max_clones_uid",PermissionType.I_CLIENT_MAX_IDLETIME="i_client_max_idletime",PermissionType.I_CLIENT_MAX_AVATAR_FILESIZE="i_client_max_avatar_filesize",PermissionType.I_CLIENT_MAX_CHANNEL_SUBSCRIPTIONS="i_client_max_channel_subscriptions",PermissionType.B_CLIENT_IS_PRIORITY_SPEAKER="b_client_is_priority_speaker",PermissionType.B_CLIENT_SKIP_CHANNELGROUP_PERMISSIONS="b_client_skip_channelgroup_permissions",PermissionType.B_CLIENT_FORCE_PUSH_TO_TALK="b_client_force_push_to_talk",PermissionType.B_CLIENT_IGNORE_BANS="b_client_ignore_bans",PermissionType.B_CLIENT_IGNORE_ANTIFLOOD="b_client_ignore_antiflood",PermissionType.B_CLIENT_ISSUE_CLIENT_QUERY_COMMAND="b_client_issue_client_query_command",PermissionType.B_CLIENT_USE_RESERVED_SLOT="b_client_use_reserved_slot",PermissionType.B_CLIENT_USE_CHANNEL_COMMANDER="b_client_use_channel_commander",PermissionType.B_CLIENT_REQUEST_TALKER="b_client_request_talker",PermissionType.B_CLIENT_AVATAR_DELETE_OTHER="b_client_avatar_delete_other",PermissionType.B_CLIENT_IS_STICKY="b_client_is_sticky",PermissionType.B_CLIENT_IGNORE_STICKY="b_client_ignore_sticky",PermissionType.B_CLIENT_MUSIC_CHANNEL_LIST="b_client_music_channel_list",PermissionType.B_CLIENT_MUSIC_SERVER_LIST="b_client_music_server_list",PermissionType.I_CLIENT_MUSIC_INFO="i_client_music_info",PermissionType.I_CLIENT_MUSIC_NEEDED_INFO="i_client_music_needed_info",PermissionType.B_CLIENT_INFO_VIEW="b_client_info_view",PermissionType.B_CLIENT_PERMISSIONOVERVIEW_VIEW="b_client_permissionoverview_view",PermissionType.B_CLIENT_PERMISSIONOVERVIEW_OWN="b_client_permissionoverview_own",PermissionType.B_CLIENT_REMOTEADDRESS_VIEW="b_client_remoteaddress_view",PermissionType.I_CLIENT_SERVERQUERY_VIEW_POWER="i_client_serverquery_view_power",PermissionType.I_CLIENT_NEEDED_SERVERQUERY_VIEW_POWER="i_client_needed_serverquery_view_power",PermissionType.B_CLIENT_CUSTOM_INFO_VIEW="b_client_custom_info_view",PermissionType.I_CLIENT_KICK_FROM_SERVER_POWER="i_client_kick_from_server_power",PermissionType.I_CLIENT_NEEDED_KICK_FROM_SERVER_POWER="i_client_needed_kick_from_server_power",PermissionType.I_CLIENT_KICK_FROM_CHANNEL_POWER="i_client_kick_from_channel_power",PermissionType.I_CLIENT_NEEDED_KICK_FROM_CHANNEL_POWER="i_client_needed_kick_from_channel_power",PermissionType.I_CLIENT_BAN_POWER="i_client_ban_power",PermissionType.I_CLIENT_NEEDED_BAN_POWER="i_client_needed_ban_power",PermissionType.I_CLIENT_MOVE_POWER="i_client_move_power",PermissionType.I_CLIENT_NEEDED_MOVE_POWER="i_client_needed_move_power",PermissionType.I_CLIENT_COMPLAIN_POWER="i_client_complain_power",PermissionType.I_CLIENT_NEEDED_COMPLAIN_POWER="i_client_needed_complain_power",PermissionType.B_CLIENT_COMPLAIN_LIST="b_client_complain_list",PermissionType.B_CLIENT_COMPLAIN_DELETE_OWN="b_client_complain_delete_own",PermissionType.B_CLIENT_COMPLAIN_DELETE="b_client_complain_delete",PermissionType.B_CLIENT_BAN_LIST="b_client_ban_list",PermissionType.B_CLIENT_BAN_LIST_GLOBAL="b_client_ban_list_global",PermissionType.B_CLIENT_BAN_CREATE="b_client_ban_create",PermissionType.B_CLIENT_BAN_CREATE_GLOBAL="b_client_ban_create_global",PermissionType.B_CLIENT_BAN_EDIT="b_client_ban_edit",PermissionType.B_CLIENT_BAN_EDIT_GLOBAL="b_client_ban_edit_global",PermissionType.B_CLIENT_BAN_DELETE_OWN="b_client_ban_delete_own",PermissionType.B_CLIENT_BAN_DELETE="b_client_ban_delete",PermissionType.B_CLIENT_BAN_DELETE_OWN_GLOBAL="b_client_ban_delete_own_global",PermissionType.B_CLIENT_BAN_DELETE_GLOBAL="b_client_ban_delete_global",PermissionType.I_CLIENT_BAN_MAX_BANTIME="i_client_ban_max_bantime",PermissionType.I_CLIENT_PRIVATE_TEXTMESSAGE_POWER="i_client_private_textmessage_power",PermissionType.I_CLIENT_NEEDED_PRIVATE_TEXTMESSAGE_POWER="i_client_needed_private_textmessage_power",PermissionType.B_CLIENT_SERVER_TEXTMESSAGE_SEND="b_client_server_textmessage_send",PermissionType.B_CLIENT_CHANNEL_TEXTMESSAGE_SEND="b_client_channel_textmessage_send",PermissionType.B_CLIENT_OFFLINE_TEXTMESSAGE_SEND="b_client_offline_textmessage_send",PermissionType.I_CLIENT_TALK_POWER="i_client_talk_power",PermissionType.I_CLIENT_NEEDED_TALK_POWER="i_client_needed_talk_power",PermissionType.I_CLIENT_POKE_POWER="i_client_poke_power",PermissionType.I_CLIENT_NEEDED_POKE_POWER="i_client_needed_poke_power",PermissionType.B_CLIENT_SET_FLAG_TALKER="b_client_set_flag_talker",PermissionType.I_CLIENT_WHISPER_POWER="i_client_whisper_power",PermissionType.I_CLIENT_NEEDED_WHISPER_POWER="i_client_needed_whisper_power",PermissionType.B_CLIENT_MODIFY_DESCRIPTION="b_client_modify_description",PermissionType.B_CLIENT_MODIFY_OWN_DESCRIPTION="b_client_modify_own_description",PermissionType.B_CLIENT_MODIFY_DBPROPERTIES="b_client_modify_dbproperties",PermissionType.B_CLIENT_DELETE_DBPROPERTIES="b_client_delete_dbproperties",PermissionType.B_CLIENT_CREATE_MODIFY_SERVERQUERY_LOGIN="b_client_create_modify_serverquery_login",PermissionType.B_CLIENT_MUSIC_CREATE="b_client_music_create",PermissionType.I_CLIENT_MUSIC_LIMIT="i_client_music_limit",PermissionType.I_CLIENT_MUSIC_DELETE_POWER="i_client_music_delete_power",PermissionType.I_CLIENT_MUSIC_NEEDED_DELETE_POWER="i_client_music_needed_delete_power",PermissionType.I_CLIENT_MUSIC_PLAY_POWER="i_client_music_play_power",PermissionType.I_CLIENT_MUSIC_NEEDED_PLAY_POWER="i_client_music_needed_play_power",PermissionType.I_CLIENT_MUSIC_RENAME_POWER="i_client_music_rename_power",PermissionType.I_CLIENT_MUSIC_NEEDED_RENAME_POWER="i_client_music_needed_rename_power",PermissionType.B_FT_IGNORE_PASSWORD="b_ft_ignore_password",PermissionType.B_FT_TRANSFER_LIST="b_ft_transfer_list",PermissionType.I_FT_FILE_UPLOAD_POWER="i_ft_file_upload_power",PermissionType.I_FT_NEEDED_FILE_UPLOAD_POWER="i_ft_needed_file_upload_power",PermissionType.I_FT_FILE_DOWNLOAD_POWER="i_ft_file_download_power",PermissionType.I_FT_NEEDED_FILE_DOWNLOAD_POWER="i_ft_needed_file_download_power",PermissionType.I_FT_FILE_DELETE_POWER="i_ft_file_delete_power",PermissionType.I_FT_NEEDED_FILE_DELETE_POWER="i_ft_needed_file_delete_power",PermissionType.I_FT_FILE_RENAME_POWER="i_ft_file_rename_power",PermissionType.I_FT_NEEDED_FILE_RENAME_POWER="i_ft_needed_file_rename_power",PermissionType.I_FT_FILE_BROWSE_POWER="i_ft_file_browse_power",PermissionType.I_FT_NEEDED_FILE_BROWSE_POWER="i_ft_needed_file_browse_power",PermissionType.I_FT_DIRECTORY_CREATE_POWER="i_ft_directory_create_power",PermissionType.I_FT_NEEDED_DIRECTORY_CREATE_POWER="i_ft_needed_directory_create_power",PermissionType.I_FT_QUOTA_MB_DOWNLOAD_PER_CLIENT="i_ft_quota_mb_download_per_client",PermissionType.I_FT_QUOTA_MB_UPLOAD_PER_CLIENT="i_ft_quota_mb_upload_per_client"}(PermissionType||(PermissionType={}));class PermissionInfo{}class GrantedPermission{constructor(type,value){this.type=type,this.value=value}granted(requiredValue,required=!0){let result=!1;return-2==this.value&&(result=!required),result=-1==this.value||this.value>=requiredValue,log.trace(LogCategory.PERMISSIONS,"Test needed required: %o | %i | %o => "+result,this,requiredValue,required),result}hasValue(){return-2!=this.value}}class NeededGrantedPermission extends GrantedPermission{constructor(type,value){super(type,value),this.changeListener=[]}}class PermissionManager{constructor(client){this.permissionList=[],this.neededPermissions=[],this.initializedListener=[],this.handle=client,this.handle.serverConnection.commandHandler.notifyclientneededpermissions=this.onNeededPermissions.bind(this),this.handle.serverConnection.commandHandler.notifypermissionlist=this.onPermissionList.bind(this)}initialized(){return this.permissionList.length>0}requestPermissionList(){this.handle.serverConnection.sendCommand("permissionlist")}onPermissionList(json){this.permissionList=[];let group=log.group(log.LogType.TRACE,LogCategory.PERMISSIONS,"Permission mapping");for(let e of json){if(e.group_id_end)continue;let perm=new PermissionInfo;perm.name=e.permname,perm.id=parseInt(e.permid),perm.description=e.permdesc,group.log("%i <> %s -> %s",perm.id,perm.name,perm.description),this.permissionList.push(perm)}group.end(),log.info(LogCategory.PERMISSIONS,"Got %i permissions",this.permissionList.length),this._cacheNeededPermissions&&this.onNeededPermissions(this._cacheNeededPermissions);for(let listener of this.initializedListener)listener(!0)}onNeededPermissions(json){if(0==this.permissionList.length)return log.warn(LogCategory.PERMISSIONS,"Got needed permissions but don't have a permission list!"),void(this._cacheNeededPermissions=json);this._cacheNeededPermissions=void 0;let copy=this.neededPermissions.slice(),addcount=0,group=log.group(log.LogType.TRACE,LogCategory.PERMISSIONS,"Got "+json.length+" needed permissions.");for(let e of json){let entry=void 0;for(let p of copy)if(p.type.id==e.permid){entry=p,copy.remove(p);break}if(!entry){let info=this.resolveInfo(e.permid);if(!info){log.warn(LogCategory.PERMISSIONS,"Could not resolve perm for id %s (%o|%o)",e.permid,e,info);continue}entry=new NeededGrantedPermission(info,-2),this.neededPermissions.push(entry),addcount++}if(entry.value!=parseInt(e.permvalue)){entry.value=parseInt(e.permvalue),group.log("Update needed permission "+entry.type.name+" to "+entry.value);for(let listener of entry.changeListener)listener(entry.value)}}group.end(),log.debug(LogCategory.PERMISSIONS,"Dropping "+copy.length+" needed permissions and added "+addcount+" permissions.");for(let e of copy){e.value=-2;for(let listener of e.changeListener)listener(e.value)}}resolveInfo(key){for(let perm of this.permissionList)if(perm.id==key||perm.name==key)return perm}neededPermission(key){for(let perm of this.neededPermissions)if(perm.type.id==key||perm.type.name==key||perm.type==key)return perm;log.debug(LogCategory.PERMISSIONS,"Could not resolve grant permission %o. Creating a new one.",key);let info=key instanceof PermissionInfo?key:this.resolveInfo(key);if(!info)return void log.warn(LogCategory.PERMISSIONS,"Requested needed permission with invalid key! (%o)",key);let result=new NeededGrantedPermission(info,-2);return this.neededPermissions.push(result),result}}!function(GroupType){GroupType[GroupType.QUERY=0]="QUERY",GroupType[GroupType.TEMPLATE=1]="TEMPLATE",GroupType[GroupType.NORMAL=2]="NORMAL"}(GroupType||(GroupType={})),function(GroupTarget){GroupTarget[GroupTarget.SERVER=0]="SERVER",GroupTarget[GroupTarget.CHANNEL=1]="CHANNEL"}(GroupTarget||(GroupTarget={}));class Group{constructor(handle,id,target,type,name){this.properties={iconid:0},this.requiredModifyPower=0,this.requiredMemberAddPower=0,this.requiredMemberRemovePower=0,this.handle=handle,this.id=id,this.target=target,this.type=type,this.name=name}updateProperty(key,value){if(this.properties[key]=value,"iconid"==key){const _this=this;console.log("Icon id "+_this.properties.iconid),this.handle.handle.channelTree.clientsByGroup(this).forEach(client=>{client.updateGroupIcon(_this)})}}}class GroupManager{constructor(client){this.serverGroups=[],this.channelGroups=[],this.handle=client,this.handle.serverConnection.commandHandler.notifyservergrouplist=this.onServerGroupList.bind(this),this.handle.serverConnection.commandHandler.notifychannelgrouplist=this.onServerGroupList.bind(this)}requestGroups(){this.handle.serverConnection.sendCommand("servergrouplist"),this.handle.serverConnection.sendCommand("channelgrouplist")}serverGroup(id){for(let group of this.serverGroups)if(group.id==id)return group}channelGroup(id){for(let group of this.channelGroups)if(group.id==id)return group}onServerGroupList(json){let target;if(json[0].sgid)target=GroupTarget.SERVER;else{if(!json[0].cgid)return void console.error("Could not resolve group target! => "+json[0]);target=GroupTarget.CHANNEL}target==GroupTarget.SERVER?this.serverGroups=[]:this.channelGroups=[];for(let groupData of json){let type;switch(Number.parseInt(groupData.type)){case 0:type=GroupType.TEMPLATE;break;case 1:type=GroupType.NORMAL;break;case 2:type=GroupType.QUERY;break;default:console.error("Invalid group type: "+groupData.type+" for group "+groupData.name);continue}let group=new Group(this,target==GroupTarget.SERVER?groupData.sgid:groupData.cgid,target,type,groupData.name);for(let key in groupData)"sgid"!=key&&"cgid"!=key&&"type"!=key&&"name"!=key&&group.updateProperty(key,groupData[key]);group.requiredMemberRemovePower=groupData.n_member_removep,group.requiredMemberAddPower=groupData.n_member_addp,group.requiredModifyPower=groupData.n_modifyp,target==GroupTarget.SERVER?this.serverGroups.push(group):this.channelGroups.push(group)}console.log("Got "+json.length+" new "+target+" groups:")}}if("undefined"!=typeof customElements){class X_Tab extends HTMLElement{}class X_Entry extends HTMLElement{}class X_Tag extends HTMLElement{}class X_Content extends HTMLElement{}customElements.define("x-tab",X_Tab,{extends:"div"}),customElements.define("x-entry",X_Entry,{extends:"div"}),customElements.define("x-tag",X_Tag,{extends:"div"}),customElements.define("x-content",X_Content,{extends:"div"})}else console.warn("Could not defied tab customElements!");var DisconnectReason,ConnectionState,ViewReasonId,IdentitifyType,TSIdentityHelper,ChatType,LogCategory,log,Modals,CodecWorkerType,TabFunctions={tabify(template){console.log("Tabify:"),console.log(template);let tag=$.spawn("div");tag.addClass("tab");let header=$.spawn("div");header.addClass("tab-header");let content=$.spawn("div");content.addClass("tab-content");let silentContent=$.spawn("div");return silentContent.addClass("tab-content-invisible"),template.find("x-entry").each(function(){let hentry=$.spawn("div");hentry.addClass("entry"),hentry.append($(this).find("x-tag").clone(!0,!0));const _entryContent=$(this).find("x-content").clone(!0,!0);silentContent.append(_entryContent),hentry.on("click",function(){hentry.hasClass("selected")||(tag.find(".tab-header .selected").removeClass("selected"),hentry.addClass("selected"),content.children().appendTo(silentContent),console.log(silentContent),content.empty(),content.append(_entryContent))}),console.log(this),header.append(hentry)}),header.find(".entry").first().trigger("click"),tag.append(header),tag.append(content),tag.append(silentContent),tag}};$.fn.asTabWidget||($.fn.asTabWidget=function(){if("X-TAB"==$(this).prop("tagName"))return TabFunctions.tabify($(this));throw"Invalid tag! "+$(this).prop("tagName")}),$.fn.tabify||($.fn.tabify=function(){try{let self=this.asTabWidget();this.replaceWith(self)}catch(object){}return this.find("x-tab").each(function(){$(this).replaceWith($(this).asTabWidget())}),this}),function(Modals){Modals.spawnSettingsModal=function(){let modal;(modal=createModal({header:"Settings",body:()=>{let template=$("#tmpl_settings").tmpl();return template=$.spawn("div").append(template),function(modal,tag){!function(modal,tag){let currentVAD=settings.global("vad_type");tag.find('input[type=radio][name="vad_type"]').change(function(){switch(tag.find(".vad_settings .vad_type").text($(this).attr("display")),tag.find(".vad_settings .vad_type_settings").hide(),tag.find(".vad_settings .vad_type_"+this.value).show(),settings.changeGlobal("vad_type",this.value),globalClient.voiceConnection.voiceRecorder.reinitialiseVAD(),this.value){case"ppt":let keyCode=parseInt(settings.global("vad_ppt_key",84..toString()));tag.find(".vat_ppt_key").text(String.fromCharCode(keyCode));break;case"vad":let slider=tag.find(".vad_vad_slider"),vad=globalClient.voiceConnection.voiceRecorder.getVADHandler();slider.val(vad.percentageThreshold),slider.trigger("change"),globalClient.voiceConnection.voiceRecorder.update(!0),vad.percentage_listener=(per=>{tag.find(".vad_vad_bar_filler").css("width",per+"%")})}}),currentVAD||(currentVAD="ppt");let elm=tag.find('input[type=radio][name="vad_type"][value="'+currentVAD+'"]');elm.attr("checked","true"),tag.find(".vat_ppt_key").click(function(){let modal=createModal({body:"",header:()=>{let head=$.spawn("div");return head.text("Type the key you wish"),head.css("background-color","blue"),head},footer:""});$(document).one("keypress",function(e){console.log("Got key "+e.keyCode),modal.close(),settings.changeGlobal("vad_ppt_key",e.keyCode.toString()),globalClient.voiceConnection.voiceRecorder.reinitialiseVAD(),tag.find(".vat_ppt_key").text(String.fromCharCode(e.keyCode))}),modal.open()});let slider=tag.find(".vad_vad_slider");slider.on("input change",()=>{settings.changeGlobal("vad_threshold",slider.val().toString());let vad=globalClient.voiceConnection.voiceRecorder.getVADHandler();vad instanceof VoiceActivityDetectorVAD&&(vad.percentageThreshold=slider.val()),tag.find(".vad_vad_slider_value").text(slider.val().toString())}),modal.properties.registerCloseListener(()=>{let vad=globalClient.voiceConnection.voiceRecorder.getVADHandler();vad instanceof VoiceActivityDetectorVAD&&(vad.percentage_listener=void 0)}),elm.trigger("change"),console.log(tag);let mselect=tag.find(".voice_microphone_select");console.log(mselect);let mselectError=tag.find(".voice_microphone_select_error");navigator.mediaDevices.enumerateDevices().then(devices=>{let currentDeviceId,currentStream=globalClient.voiceConnection.voiceRecorder.getMediaStream();if(currentStream){let audio=currentStream.getAudioTracks()[0];currentDeviceId=audio.getSettings().deviceId}console.log("Got "+devices.length+" devices:");for(let device of devices)if(console.log(device),"audioinput"==device.kind){let dtag=$.spawn("option");dtag.attr("device-id",device.deviceId),dtag.attr("device-group",device.groupId),dtag.text(device.label),mselect.append(dtag),currentDeviceId&&device.deviceId==currentDeviceId&&mselect.attr("selected","")}}).catch(error=>{console.error("Could not enumerate over devices!"),console.error(error),mselectError.text("Could not get device list!").show()}),mselect.change(event=>{let deviceSelected=mselect.find("option:selected"),deviceId=deviceSelected.attr("device-id");console.log("Selected device: "+deviceId),globalClient.voiceConnection.voiceRecorder.changeDevice(deviceId)})}(modal,tag.find(".settings_voice"))}(modal,template=template.tabify()),template},footer:()=>{let footer=$.spawn("div");footer.addClass("modal-button-group"),footer.css("margin-top","5px"),footer.css("margin-bottom","5px"),footer.css("text-align","right");let buttonOk=$.spawn("button");return buttonOk.text("Ok"),buttonOk.click(()=>modal.close()),footer.append(buttonOk),footer},width:750})).open()}}(Modals||(Modals={}));class ControlBar{constructor(handle,htmlTag){this.handle=handle,this.htmlTag=htmlTag}initialise(){this.htmlTag.find(".btn_connect").click(this.onConnect.bind(this)),this.htmlTag.find(".btn_client_away").click(this.onAway.bind(this)),this.htmlTag.find(".btn_mute_input").click(this.onInputMute.bind(this)),this.htmlTag.find(".btn_mute_output").click(this.onOutputMute.bind(this)),this.htmlTag.find(".btn_open_settings").click(this.onOpenSettings.bind(this)),this.muteInput="1"==settings.global("mute_input"),this.muteOutput="1"==settings.global("mute_output")}onAway(){this.away=!this._away}onInputMute(){this.muteInput=!this._muteInput}onOutputMute(){this.muteOutput=!this._muteOutput}set muteInput(flag){if(this._muteInput==flag)return;this._muteInput=flag;let tag=this.htmlTag.find(".btn_mute_input");flag?(tag.hasClass("activated")||tag.addClass("activated"),tag.find(".icon_x32").attr("class","icon_x32 client-input_muted")):(tag.hasClass("activated")&&tag.removeClass("activated"),tag.find(".icon_x32").attr("class","icon_x32 client-capture")),this.handle.serverConnection.connected&&this.handle.serverConnection.sendCommand("clientupdate",{client_input_muted:this._muteInput}),settings.changeGlobal("mute_input",this._muteInput),this.updateMicrophoneRecordState()}get muteOutput(){return this._muteOutput}set muteOutput(flag){if(this._muteOutput==flag)return;this._muteOutput=flag;let tag=this.htmlTag.find(".btn_mute_output");flag?(tag.hasClass("activated")||tag.addClass("activated"),tag.find(".icon_x32").attr("class","icon_x32 client-output_muted")):(tag.hasClass("activated")&&tag.removeClass("activated"),tag.find(".icon_x32").attr("class","icon_x32 client-volume")),this.handle.serverConnection.connected&&this.handle.serverConnection.sendCommand("clientupdate",{client_output_muted:this._muteOutput}),settings.changeGlobal("mute_output",this._muteOutput),this.updateMicrophoneRecordState()}set away(value){if("boolean"==typeof value){if(this._away==value)return;this._away=value,this._awayMessage=""}else this._awayMessage=value,this._away=!0;let tag=this.htmlTag.find(".btn_client_away");this._away?tag.hasClass("activated")||tag.addClass("activated"):tag.hasClass("activated")&&tag.removeClass("activated"),this.handle.serverConnection.connected&&this.handle.serverConnection.sendCommand("clientupdate",{client_away:this._away,client_away_message:this._awayMessage}),this.updateMicrophoneRecordState()}updateMicrophoneRecordState(){let enabled=!this._muteInput&&!this._muteOutput&&!this._away;this.handle.voiceConnection.voiceRecorder.update(enabled)}updateProperties(){this.handle.serverConnection.connected&&this.handle.serverConnection.sendCommand("clientupdate",{client_input_muted:this._muteInput,client_output_muted:this._muteOutput,client_away:this._away,client_away_message:this._awayMessage})}onOpenSettings(){Modals.spawnSettingsModal()}onConnect(){Modals.spawnConnectModal(settings.static("connect_default_host","ts.TeaSpeak.de"))}}!function(DisconnectReason){DisconnectReason[DisconnectReason.REQUESTED=0]="REQUESTED",DisconnectReason[DisconnectReason.CONNECT_FAILURE=1]="CONNECT_FAILURE",DisconnectReason[DisconnectReason.CONNECTION_CLOSED=2]="CONNECTION_CLOSED",DisconnectReason[DisconnectReason.CONNECTION_FATAL_ERROR=3]="CONNECTION_FATAL_ERROR",DisconnectReason[DisconnectReason.CONNECTION_PING_TIMEOUT=4]="CONNECTION_PING_TIMEOUT",DisconnectReason[DisconnectReason.CLIENT_KICKED=5]="CLIENT_KICKED",DisconnectReason[DisconnectReason.CLIENT_BANNED=6]="CLIENT_BANNED",DisconnectReason[DisconnectReason.SERVER_CLOSED=7]="SERVER_CLOSED",DisconnectReason[DisconnectReason.UNKNOWN=8]="UNKNOWN"}(DisconnectReason||(DisconnectReason={})),function(ConnectionState){ConnectionState[ConnectionState.UNCONNECTED=0]="UNCONNECTED",ConnectionState[ConnectionState.CONNECTING=1]="CONNECTING",ConnectionState[ConnectionState.INITIALISING=2]="INITIALISING",ConnectionState[ConnectionState.CONNECTED=3]="CONNECTED",ConnectionState[ConnectionState.DISCONNECTING=4]="DISCONNECTING"}(ConnectionState||(ConnectionState={})),function(ViewReasonId){ViewReasonId[ViewReasonId.VREASON_USER_ACTION=0]="VREASON_USER_ACTION",ViewReasonId[ViewReasonId.VREASON_MOVED=1]="VREASON_MOVED",ViewReasonId[ViewReasonId.VREASON_SYSTEM=2]="VREASON_SYSTEM",ViewReasonId[ViewReasonId.VREASON_TIMEOUT=3]="VREASON_TIMEOUT",ViewReasonId[ViewReasonId.VREASON_CHANNEL_KICK=4]="VREASON_CHANNEL_KICK",ViewReasonId[ViewReasonId.VREASON_SERVER_KICK=5]="VREASON_SERVER_KICK",ViewReasonId[ViewReasonId.VREASON_BAN=6]="VREASON_BAN",ViewReasonId[ViewReasonId.VREASON_SERVER_STOPPED=7]="VREASON_SERVER_STOPPED",ViewReasonId[ViewReasonId.VREASON_SERVER_LEFT=8]="VREASON_SERVER_LEFT",ViewReasonId[ViewReasonId.VREASON_CHANNEL_UPDATED=9]="VREASON_CHANNEL_UPDATED",ViewReasonId[ViewReasonId.VREASON_EDITED=10]="VREASON_EDITED",ViewReasonId[ViewReasonId.VREASON_SERVER_SHUTDOWN=11]="VREASON_SERVER_SHUTDOWN"}(ViewReasonId||(ViewReasonId={}));class TSClient{constructor(){this._clientId=0,this.selectInfo=new InfoBar(this,$("#select_info")),this.channelTree=new ChannelTree(this,$("#channelTree")),this.serverConnection=new ServerConnection(this),this.fileManager=new FileManager(this),this.permissions=new PermissionManager(this),this.groups=new GroupManager(this),this.voiceConnection=new VoiceConnection(this),this._ownEntry=new LocalClientEntry(this),this.controlBar=new ControlBar(this,$("#control_bar")),this.channelTree.registerClient(this._ownEntry)}setup(){this.controlBar.initialise()}startConnection(addr,identity,name){this.serverConnection&&this.handleDisconnect(DisconnectReason.REQUESTED);let port,host,idx=addr.lastIndexOf(":");-1!=idx?(port=parseInt(addr.substr(idx+1)),host=addr.substr(0,idx)):(host=addr,port=9987),console.log("Start connection to "+host+":"+port),this.channelTree.initialiseHead(addr),this.serverConnection.startConnection(host,port,new HandshakeHandler(identity,name))}getClient(){return this._ownEntry}getClientId(){return this._clientId}set clientId(id){this._clientId=id,this._ownEntry._clientId=id}get clientId(){return this._clientId}getServerConnection(){return this.serverConnection}onConnected(){console.log("Client connected!"),this.channelTree.registerClient(this._ownEntry),settings.setServer(this.channelTree.server),this.permissions.requestPermissionList(),this.serverConnection.sendCommand("channelsubscribeall"),0==this.groups.serverGroups.length&&this.groups.requestGroups(),this.controlBar.updateProperties()}get connected(){return!!this.serverConnection&&this.serverConnection.connected}handleDisconnect(type,data={}){switch(type){case DisconnectReason.REQUESTED:break;case DisconnectReason.CONNECT_FAILURE:console.error("Could not connect to remote host! Exception"),console.error(data),createErrorModal("Could not connect","Could not connect to remote host (Connection refused)
If you're shure that the remot host is up, than you may not allow unsigned certificates.
Click here to accept the remote certificate").open();break;case DisconnectReason.CONNECTION_CLOSED:console.error("Lost connection to remote server!"),createErrorModal("Connection closed","The connection was closed by remote host").open();break;case DisconnectReason.CONNECTION_PING_TIMEOUT:console.error("Connection ping timeout"),createErrorModal("Connection lost","Lost connection to remote host (Ping timeout)
Even possible?").open();break;case DisconnectReason.SERVER_CLOSED:chat.serverChat().appendError("Server closed ({0})",data.reasonmsg),createErrorModal("Server closed","The server is closed.
Reason: "+data.reasonmsg).open();break;default:console.error("Got uncaught disconnect!"),console.error("Type: "+type+" Data:"),console.error(data)}this.selectInfo.currentSelected=null,this.channelTree.reset(),this.voiceConnection.dropSession(),this.serverConnection&&this.serverConnection.disconnect()}}class FileEntry{}class FileListRequest{}class DownloadFileTransfer{constructor(handle,id){this.currentSize=0,this.on_start=(()=>{}),this.on_complete=(()=>{}),this.on_fail=(_=>{}),this.on_data=(_=>{}),this.transferId=id,this._handle=handle}startTransfer(){this.remoteHost&&this.remotePort&&this.transferKey&&this.totalSize?(console.debug("Create new file download to "+this.remoteHost+":"+this.remotePort+" (Key: "+this.transferKey+", Expect "+this.totalSize+" bytes)"),this._active=!0,this._socket=new WebSocket("wss://"+this.remoteHost+":"+this.remotePort),this._socket.onopen=this.onOpen.bind(this),this._socket.onclose=this.onClose.bind(this),this._socket.onmessage=this.onMessage.bind(this),this._socket.onerror=this.onError.bind(this)):this.on_fail("Missing data!")}onOpen(){this._active&&(this._socket.send(this.transferKey),this.on_start())}onMessage(data){if(!this._active)return void console.error("Got data, but socket closed?");this._parseActive=!0;let fileReader=new FileReader;fileReader.onload=(event=>{this.onBinaryData(new Uint8Array(event.target.result)),this._parseActive=!1}),fileReader.readAsArrayBuffer(data.data)}onBinaryData(data){this.currentSize+=data.length,this.on_data(data),this.currentSize==this.totalSize&&(this._succeed=!0,this.on_complete(),this.disconnect())}onError(){this._active&&(this.on_fail("an error occurent"),this.disconnect())}onClose(){this._active&&(this._parseActive||this.on_fail("unexpected close (remote closed)"),this.disconnect())}disconnect(){this._active=!1}}class FileManager{constructor(client){this.listRequests=[],this.pendingDownloadTransfers=[],this.downloadCounter=0,this.handle=client,this.icons=new IconManager(this),this.avatars=new AvatarManager(this),this.handle.serverConnection.commandHandler.notifyfilelist=this.notifyFileList.bind(this),this.handle.serverConnection.commandHandler.notifyfilelistfinished=this.notifyFileListFinished.bind(this),this.handle.serverConnection.commandHandler.notifystartdownload=this.notifyStartDownload.bind(this)}requestFileList(path,channel,password){const _this=this;return new Promise((accept,reject)=>{let req=new FileListRequest;req.path=path,req.entries=[],req.callback=accept,_this.listRequests.push(req),_this.handle.serverConnection.sendCommand("ftgetfilelist",{path:path,cid:channel?channel.channelId:"0",cpw:password||""}).then(()=>{}).catch(reason=>{_this.listRequests.remove(req),reason instanceof CommandResult&&1281==reason.id?accept([]):reject(reason)})})}notifyFileList(json){let entry=void 0;for(let e of this.listRequests)if(e.path==json[0].path){entry=e;break}if(entry)for(let e of json)entry.entries.push(e);else console.error("Invalid file list entry. Path: "+json[0].path)}notifyFileListFinished(json){let entry=void 0;for(let e of this.listRequests)if(e.path==json[0].path){entry=e,this.listRequests.remove(e);break}entry?entry.callback(entry.entries):console.error("Invalid file list entry finish. Path: "+json[0].path)}requestFileDownload(path,file,channel,password){const _this=this;let transfer=new DownloadFileTransfer(this,this.downloadCounter++);return this.pendingDownloadTransfers.push(transfer),new Promise((resolve,reject)=>{transfer._promiseCallback=resolve,_this.handle.serverConnection.sendCommand("ftinitdownload",{path:path,name:file,cid:channel?channel.channelId:"0",cpw:password||"",clientftfid:transfer.transferId}).catch(reason=>{_this.pendingDownloadTransfers.remove(transfer),reject(reason)})})}notifyStartDownload(json){let transfer;json=json[0];for(let e of this.pendingDownloadTransfers)if(e.transferId==json.clientftfid){transfer=e;break}transfer.serverTransferId=json.serverftfid,transfer.transferKey=json.ftkey,transfer.totalSize=json.size,transfer.remotePort=json.port,transfer.remoteHost=json.ip.replace(/,/g,""),"0.0.0.0"!=transfer.remoteHost&&"127.168.0.0"!=transfer.remoteHost||(transfer.remoteHost=this.handle.serverConnection._remoteHost),transfer._promiseCallback(transfer),this.pendingDownloadTransfers.remove(transfer)}}class Icon{}class IconManager{constructor(handle){this.handle=handle}iconList(){return this.handle.requestFileList("/icons")}downloadIcon(id){return this.handle.requestFileDownload("","/icon_"+id)}resolveCached(id){let icon=localStorage.getItem("icon_"+id);if(icon){let i=JSON.parse(icon);if(i.base64.length>0)return i}}loadIcon(id){const _this=this;return new Promise((resolve,reject)=>{let icon=this.resolveCached(id);icon?resolve(icon):_this.downloadIcon(id).then(ft=>{let array=new Uint8Array(0);ft.on_fail=(reason=>{console.error("Could not download icon "+id+" -> "+reason),chat.serverChat().appendError("Fail to download icon {0}. ({1})",id,JSON.stringify(reason)),reject(reason)}),ft.on_start=(()=>{}),ft.on_data=(data=>{array=concatenate(Uint8Array,array,data)}),ft.on_complete=(()=>{let base64=btoa(String.fromCharCode.apply(null,array)),icon=new Icon;icon.base64=base64,icon.id=id,icon.name="icon_"+id,localStorage.setItem("icon_"+id,JSON.stringify(icon)),resolve(icon)}),ft.startTransfer()}).catch(reason=>{console.error("Error while downloading icon! ("+JSON.stringify(reason)+")"),chat.serverChat().appendError("Failed to request download for icon {0}. ({1})",id,JSON.stringify(reason)),reject(reason)})})}generateTag(id){if(0==id)return $("
");if(id<1e3)return $("
");let tag=$.spawn("div");tag.addClass("icon_empty");let img=$.spawn("img");img.attr("width",16).attr("height",16).attr("alt","");let icon=this.resolveCached(id);if(icon)img.attr("src","data:image/png;base64,"+icon.base64),tag.append(img);else{img.attr("src","file://null");let loader=$.spawn("div");loader.addClass("icon_loading"),tag.append(loader),this.loadIcon(id).then(icon=>{img.attr("src","data:image/png;base64,"+icon.base64),console.debug("Icon "+id+" loaded :)"),img.css("opacity",0),tag.append(img),loader.animate({opacity:0},50,function(){$(this).detach(),img.animate({opacity:1},150)})}).catch(reason=>{console.error("Could not load icon "+id+". Reason: "+reason),loader.removeClass("icon_loading").addClass("icon client-warning").attr("tag","Could not load icon "+id)})}return tag}}class Avatar{}class AvatarManager{constructor(handle){this.handle=handle}downloadAvatar(client){return this.handle.requestFileDownload("","/avatar_"+client.avatarId())}resolveCached(client){let avatar=localStorage.getItem("avatar_"+client.properties.client_unique_identifier);if(avatar){let i=JSON.parse(avatar);if(i.base64.length>0&&i.avatarId==client.properties.client_flag_avatar)return i}}loadAvatar(client){const _this=this;return new Promise((resolve,reject)=>{let avatar=this.resolveCached(client);avatar?resolve(avatar):_this.downloadAvatar(client).then(ft=>{let array=new Uint8Array(0);ft.on_fail=(reason=>{console.error("Could not download avatar "+client.properties.client_flag_avatar+" -> "+reason),chat.serverChat().appendError("Fail to download avatar for {0}. ({1})",client.clientNickName(),JSON.stringify(reason)),reject(reason)}),ft.on_start=(()=>{}),ft.on_data=(data=>{array=concatenate(Uint8Array,array,data)}),ft.on_complete=(()=>{let base64=btoa(String.fromCharCode.apply(null,array)),avatar=new Avatar;avatar.base64=base64,avatar.clientUid=client.clientUid(),avatar.avatarId=client.properties.client_flag_avatar,localStorage.setItem("avatar_"+client.properties.client_unique_identifier,JSON.stringify(avatar)),resolve(avatar)}),ft.startTransfer()}).catch(reason=>{console.error("Error while downloading avatar! ("+JSON.stringify(reason)+")"),chat.serverChat().appendError("Failed to request avatar download for {0}. ({1})",client.clientNickName(),JSON.stringify(reason)),reject(reason)})})}generateTag(client){let tag=$.spawn("div"),img=$.spawn("img");img.attr("alt","");let avatar=this.resolveCached(client);if(avatar)img.attr("src","data:image/png;base64,"+avatar.base64),tag.append(img);else{img.attr("src","file://null");let loader=$.spawn("div");loader.addClass("avatar_loading"),tag.append(loader),this.loadAvatar(client).then(avatar=>{img.attr("src","data:image/png;base64,"+avatar.base64),console.debug("Avatar "+client.clientNickName()+" loaded :)"),img.css("opacity",0),tag.append(img),loader.animate({opacity:0},50,function(){$(this).detach(),img.animate({opacity:1},150)})}).catch(reason=>{console.error("Could not load avatar for "+client.clientNickName()+". Reason: "+reason),loader.removeClass("avatar_loading").addClass("icon client-warning").attr("tag","Could not load avatar "+client.clientNickName())})}return tag}}!function(IdentitifyType){IdentitifyType[IdentitifyType.TEAFORO=0]="TEAFORO",IdentitifyType[IdentitifyType.TEAMSPEAK=1]="TEAMSPEAK"}(IdentitifyType||(IdentitifyType={})),function(TSIdentityHelper){var Pointer_stringify=Module.Pointer_stringify;let functionLastError,functionDestroyString,functionDestroyIdentity;function unwarpString(str){if(""==str)return"";let message=Pointer_stringify(str);return functionDestroyString(str),message}TSIdentityHelper.setup=function(){return functionDestroyString=Module.cwrap("destroy_string","pointer",[]),functionLastError=Module.cwrap("last_error_message",null,["string"]),TSIdentityHelper.funcationParseIdentity=Module.cwrap("parse_identity","pointer",["string"]),TSIdentityHelper.funcationParseIdentityByFile=Module.cwrap("parse_identity_file","pointer",["string"]),functionDestroyIdentity=Module.cwrap("delete_identity",null,["pointer"]),TSIdentityHelper.funcationCalculateSecurityLevel=Module.cwrap("identity_security_level","pointer",["pointer"]),TSIdentityHelper.funcationExportIdentity=Module.cwrap("identity_export","pointer",["pointer"]),TSIdentityHelper.funcationPublicKey=Module.cwrap("identity_key_public","pointer",["pointer"]),TSIdentityHelper.funcationSignMessage=Module.cwrap("identity_sign","pointer",["pointer","string","number"]),TSIdentityHelper.functionUid=Module.cwrap("identity_uid","pointer",["pointer"]),0==Module.cwrap("tomcrypt_initialize","number",[])()},TSIdentityHelper.last_error=function(){return unwarpString(functionLastError())},TSIdentityHelper.unwarpString=unwarpString,TSIdentityHelper.loadIdentity=function(key){let handle=TSIdentityHelper.funcationParseIdentity(key);if(handle)return new TeamSpeakIdentity(handle,"TeaWeb user")},TSIdentityHelper.loadIdentityFromFileContains=function(contains){let handle=TSIdentityHelper.funcationParseIdentityByFile(contains);if(handle)return new TeamSpeakIdentity(handle,"TeaWeb user")}}(TSIdentityHelper||(TSIdentityHelper={}));class TeamSpeakIdentity{constructor(handle,name){this.handle=handle,this._name=name}securityLevel(){return parseInt(TSIdentityHelper.unwarpString(TSIdentityHelper.funcationCalculateSecurityLevel(this.handle)))}name(){return this._name}uid(){return TSIdentityHelper.unwarpString(TSIdentityHelper.functionUid(this.handle))}type(){return IdentitifyType.TEAMSPEAK}signMessage(message){return TSIdentityHelper.unwarpString(TSIdentityHelper.funcationSignMessage(this.handle,message,message.length))}exported(){return TSIdentityHelper.unwarpString(TSIdentityHelper.funcationExportIdentity(this.handle))}publicKey(){return TSIdentityHelper.unwarpString(TSIdentityHelper.funcationPublicKey(this.handle))}}class TeaForumIdentity{constructor(data,sign){this.identityDataJson=data,this.identityData=JSON.parse(this.identityDataJson),this.identitySign=sign}name(){return this.identityData.user_name}uid(){return"TeaForo#"+this.identityData.user_id}type(){return IdentitifyType.TEAFORO}}!function(ChatType){ChatType[ChatType.GENERAL=0]="GENERAL",ChatType[ChatType.SERVER=1]="SERVER",ChatType[ChatType.CHANNEL=2]="CHANNEL",ChatType[ChatType.CLIENT=3]="CLIENT"}(ChatType||(ChatType={}));class ChatMessage{constructor(message){this.date=new Date,this.message=message}num(num){let str=num.toString();for(;str.length<2;)str="0"+str;return str}get htmlTag(){if(this._htmlTag)return this._htmlTag;let tag=$.spawn("div");tag.addClass("message");let dateTag=$.spawn("div");dateTag.text("<"+this.num(this.date.getUTCHours())+":"+this.num(this.date.getUTCMinutes())+":"+this.num(this.date.getUTCSeconds())+"> "),dateTag.css("margin-right","4px"),dateTag.css("color","dodgerblue");let messageTag=$.spawn("div");return messageTag.html(this.message),messageTag.css("color","blue"),this._htmlTag=tag,tag.append(dateTag),tag.append(messageTag),tag.hide(),tag}static formatMessage(message){const div=document.createElement("div");return div.innerText=message,message=div.innerHTML,console.log(message+"->"+div.innerHTML),message}}class ChatEntry{constructor(handle,type,key){this.handle=handle,this.type=type,this.key=key,this._name=key,this.history=[],this.onClose=function(){return!0}}appendError(message,...args){this.appendMessage("{0}".format(ChatMessage.formatMessage(message).format(...args)),!1)}appendMessage(message,fmt=!0,...args){let parms=[];for(let index=2;index100;){this.history.pop_front().htmlTag.animate({opacity:0},200,function(){$(this).detach()})}if(this.handle.activeChat===this){let box=$(this.handle.htmlTag).find(".messages"),mbox=$(this.handle.htmlTag).find(".message_box"),bottom=box.scrollTop()+box.height()+1>=mbox.height();mbox.append(elm.htmlTag),elm.htmlTag.show().css("opacity","0").animate({opacity:1},100),bottom&&box.scrollTop(mbox.height())}else this.unread=!0}displayHistory(){this.unread=!1;let box=$(this.handle.htmlTag).find(".messages"),mbox=$(this.handle.htmlTag).find(".message_box");mbox.empty();for(let e of this.history)mbox.append(e.htmlTag),e.htmlTag.is(":hidden")&&e.htmlTag.show();box.scrollTop(mbox.height())}get htmlTag(){if(this._htmlTag)return this._htmlTag;let tag=$.spawn("div");tag.addClass("chat"),tag.append('
'),tag.append(""+this._name+"");let closeTag=$.spawn("div");closeTag.addClass("btn_close icon client-tab_close_button"),this._closeable||closeTag.hide(),tag.append(closeTag);const _this=this;return tag.click(function(){_this.handle.activeChat=_this}),tag.on("contextmenu",function(e){e.preventDefault();let actions=[];actions.push({type:MenuEntryType.ENTRY,icon:"",name:"Clear",callback:()=>{_this.history=[],_this.displayHistory()}}),_this.closeable&&actions.push({type:MenuEntryType.ENTRY,icon:"client-tab_close_button",name:"Close",callback:()=>{chat.deleteChat(_this)}}),actions.push({type:MenuEntryType.ENTRY,icon:"client-tab_close_button",name:"Close all private tabs",callback:()=>{}}),spawnMenu(e.pageX,e.pageY,...actions)}),closeTag.click(function(){$.isFunction(_this.onClose)&&!_this.onClose()||_this.handle.deleteChat(_this)}),this._htmlTag=tag,tag}set name(newName){console.log("Change name!"),this._name=newName,this.htmlTag.find(".name").text(this._name)}set closeable(flag){this._closeable!=flag&&(this._closeable=flag,console.log("Set closeable: "+this._closeable),flag?this.htmlTag.find(".btn_close").show():this.htmlTag.find(".btn_close").hide())}set unread(flag){this._unread!=flag&&(this._unread=flag,this.htmlTag.find(".chatIcon").attr("class","chatIcon icon clicon "+this.chatIcon()),flag?this.htmlTag.find(".name").css("color","blue"):this.htmlTag.find(".name").css("color","black"))}chatIcon(){if(this._unread)switch(this.type){case ChatType.CLIENT:return"client-new_chat"}switch(this.type){case ChatType.SERVER:return"client-server_log";case ChatType.CHANNEL:return"client-channel_chat";case ChatType.CLIENT:return"client-player_chat";case ChatType.GENERAL:return"client-channel_chat"}return""}}class ChatBox{constructor(htmlTag){this.htmlTag=htmlTag,this.htmlTag.find(".input button").click(this.onSend.bind(this)),this.htmlTag.find(".input_box").keypress(event=>{if(13==event.keyCode&&!event.shiftKey)return this.onSend(),!1}).on("input",event=>{let text=$(event.target).val().toString();this.testMessage(text)?this.htmlTag.find(".input button").removeAttr("disabled"):this.htmlTag.find(".input button").attr("disabled","true")}).trigger("input"),this.chats=[],this._activeChat=void 0,this.createChat("chat_server",ChatType.SERVER).onMessageSend=(text=>{globalClient.serverConnection?globalClient.serverConnection.sendMessage(text,ChatType.SERVER):chat.serverChat().appendError("Could not send chant message (Not connected)")}),this.createChat("chat_channel",ChatType.CHANNEL).onMessageSend=(text=>{globalClient.serverConnection?globalClient.serverConnection.sendMessage(text,ChatType.CHANNEL,globalClient.getClient().currentChannel()):chat.channelChat().appendError("Could not send chant message (Not connected)")}),globalClient.permissions.initializedListener.push(flag=>{flag&&this.activeChat0(this._activeChat)})}createChat(key,type=ChatType.CLIENT){let chat=new ChatEntry(this,type,key);return this.chats.push(chat),this.htmlTag.find(".chats").append(chat.htmlTag),this._activeChat||(this.activeChat=chat),chat}findChat(key){for(let e of this.chats)if(e.key==key)return e}deleteChat(chat){this.chats.remove(chat),chat.htmlTag.detach(),this._activeChat===chat&&(this.chats.length>0?this.activeChat=this.chats.last():this.activeChat=void 0)}onSend(){let textBox=$(this.htmlTag).find(".input_box"),text=textBox.val().toString();this.testMessage(text)&&(textBox.val(""),$(this.htmlTag).find(".input_box").trigger("input"),this._activeChat&&$.isFunction(this._activeChat.onMessageSend)&&this._activeChat.onMessageSend(text))}set activeChat(chat){-1!==this.chats.indexOf(chat)&&this._activeChat!=chat&&this.activeChat0(chat)}activeChat0(chat){this._activeChat=chat;for(let e of this.chats)e.htmlTag.removeClass("active");let flagAllowSend=!1;if(this._activeChat&&(this._activeChat.htmlTag.addClass("active"),this._activeChat.displayHistory(),globalClient&&globalClient.permissions&&globalClient.permissions.initialized()))switch(this._activeChat.type){case ChatType.CLIENT:flagAllowSend=!0;break;case ChatType.SERVER:flagAllowSend=globalClient.permissions.neededPermission(PermissionType.B_CLIENT_SERVER_TEXTMESSAGE_SEND).granted(1);break;case ChatType.CHANNEL:flagAllowSend=globalClient.permissions.neededPermission(PermissionType.B_CLIENT_CHANNEL_TEXTMESSAGE_SEND).granted(1)}this.htmlTag.find(".input_box").prop("disabled",!flagAllowSend)}get activeChat(){return this._activeChat}channelChat(){return this.findChat("chat_channel")}serverChat(){return this.findChat("chat_server")}focus(){$(this.htmlTag).find(".input_box").focus()}testMessage(message){return(message=message.replace(/ /gi,"").replace(/
/gi,"").replace(/\n/gi,"").replace(//gi,"")).length>0}}!function(LogCategory){LogCategory[LogCategory.CHANNEL=0]="CHANNEL",LogCategory[LogCategory.CLIENT=1]="CLIENT",LogCategory[LogCategory.PERMISSIONS=2]="PERMISSIONS",LogCategory[LogCategory.GENERAL=3]="GENERAL",LogCategory[LogCategory.NETWORKING=4]="NETWORKING"}(LogCategory||(LogCategory={})),function(log_1){let LogType;!function(LogType){LogType[LogType.TRACE=0]="TRACE",LogType[LogType.DEBUG=1]="DEBUG",LogType[LogType.INFO=2]="INFO",LogType[LogType.WARNING=3]="WARNING",LogType[LogType.ERROR=4]="ERROR"}(LogType=log_1.LogType||(log_1.LogType={}));let category_mapping=new Map([[LogCategory.CHANNEL,"Channel "],[LogCategory.CLIENT,"Client "],[LogCategory.PERMISSIONS,"Permission "],[LogCategory.GENERAL,"General "],[LogCategory.NETWORKING,"Network "]]);function logDirect(type,message,...optionalParams){switch(type){case LogType.TRACE:case LogType.DEBUG:console.debug(message,...optionalParams);break;case LogType.INFO:console.log(message,...optionalParams);break;case LogType.WARNING:console.warn(message,...optionalParams);break;case LogType.ERROR:console.error(message,...optionalParams)}}function log(type,category,message,...optionalParams){optionalParams.unshift(category_mapping.get(category)),logDirect(type,message="[%s] "+message,...optionalParams)}log_1.log=log,log_1.trace=function(category,message,...optionalParams){log(LogType.TRACE,category,message,...optionalParams)},log_1.debug=function(category,message,...optionalParams){log(LogType.DEBUG,category,message,...optionalParams)},log_1.info=function(category,message,...optionalParams){log(LogType.INFO,category,message,...optionalParams)},log_1.warn=function(category,message,...optionalParams){log(LogType.WARNING,category,message,...optionalParams)},log_1.error=function(category,message,...optionalParams){log(LogType.ERROR,category,message,...optionalParams)},log_1.group=function(level,category,name,...optionalParams){return name="[%s] "+name,optionalParams.unshift(category_mapping.get(category)),new Group(level,category,name,optionalParams)};class Group{constructor(level,category,name,optionalParams,owner){this.owner=void 0,this._collapsed=!0,this.initialized=!1,this.level=level,this.category=category,this.name=name,this.optionalParams=optionalParams}group(level,name,...optionalParams){return new Group(level,this.category,name,optionalParams,this)}collapsed(flag=!0){return this._collapsed=flag,this}log(message,...optionalParams){return this.initialized||(this._collapsed&&console.groupCollapsed?console.groupCollapsed(this.name,...this.optionalParams):console.group(this.name,...this.optionalParams),this.initialized=!0),logDirect(this.level,message,...optionalParams),this}end(){this.initialized&&console.groupEnd()}}log_1.Group=Group}(log||(log={})),function(Modals){Modals.spawnConnectModal=function(defaultHost="ts.TeaSpeak.de"){let connectIdentity;const connectModal=createModal({header:function(){let header=$.spawn("div");return header.text("Create a new connection"),header},body:function(){let tag=$("#tmpl_connect").contents().clone(),updateFields=function(){connectIdentity?tag.find(".connect_nickname").attr("placeholder",connectIdentity.name()):tag.find(".connect_nickname").attr("");let button=tag.parents(".modal-content").find(".connect_connect_button"),field_address=tag.find(".connect_address"),address=field_address.val().toString(),flag_address=!!address.match(Regex.IP_V4)||!!address.match(Regex.DOMAIN),field_nickname=tag.find(".connect_nickname"),nickname=field_nickname.val().toString(),flag_nickname=0==nickname.length||nickname.length>=3&&nickname.length<=32;flag_address?field_address.hasClass("invalid_input")&&field_address.removeClass("invalid_input"):field_address.hasClass("invalid_input")||field_address.addClass("invalid_input"),flag_nickname?field_nickname.hasClass("invalid_input")&&field_nickname.removeClass("invalid_input"):field_nickname.hasClass("invalid_input")||field_nickname.addClass("invalid_input"),flag_nickname&&flag_address&&connectIdentity?button.removeAttr("disabled"):button.attr("disabled","true")};return tag.find(".connect_address").val(defaultHost),tag.find(".connect_address").on("keyup",()=>updateFields()),tag.find(".connect_nickname").on("keyup",()=>updateFields()),tag.find(".identity_select").on("change",function(){settings.changeGlobal("connect_identity_type",this.value),tag.find(".error_message").hide(),tag.find(".identity_config:not(.identity_config_"+this.value+")").hide(),tag.find(".identity_config_"+this.value).show().trigger("shown")}),tag.find(".identity_select").val(settings.global("connect_identity_type","forum")),setTimeout(()=>tag.find(".identity_select").trigger("change"),0),tag.find(".identity_file").change(function(){const reader=new FileReader;reader.onload=function(){connectIdentity=TSIdentityHelper.loadIdentityFromFileContains(reader.result),console.log(connectIdentity.uid()),connectIdentity?(tag.find(".identity_string").val(connectIdentity.exported()),settings.changeGlobal("connect_identity_teamspeak_identity",connectIdentity.exported())):tag.find(".error_message").text("Could not read identity! "+TSIdentityHelper.last_error()),(connectIdentity?tag.hide:tag.show).apply(tag.find(".error_message")),updateFields()},reader.onerror=(ev=>{tag.find(".error_message").text("Could not read identity file!").show(),updateFields()}),reader.readAsText(this.files[0])}),tag.find(".identity_string").on("change",function(){0==this.value.length?tag.find(".error_message").text("Please select an identity!"):(connectIdentity=TSIdentityHelper.loadIdentity(this.value))?settings.changeGlobal("connect_identity_teamspeak_identity",this.value):tag.find(".error_message").text("Could not parse identity! "+TSIdentityHelper.last_error()),(connectIdentity?tag.hide:tag.show).apply(tag.find(".error_message")),tag.find(".identity_file").val(""),updateFields()}),tag.find(".identity_string").val(settings.global("connect_identity_teamspeak_identity","")),tag.find(".identity_config_teamspeak").on("shown",ev=>{tag.find(".identity_string").trigger("change")}),forumIdentity||tag.find(".identity_config_forum").html("You cant use your TeaSpeak forum account.
You're not connected!"),tag.find(".identity_config_forum").on("shown",ev=>{connectIdentity=forumIdentity,updateFields()}),tag},footer:function(){let tag=$.spawn("div");tag.css("text-align","right"),tag.css("margin-top","3px"),tag.css("margin-bottom","6px"),tag.addClass("modal-button-group");let button=$.spawn("button");return button.addClass("connect_connect_button"),button.text("Connect"),button.on("click",function(){connectModal.close();let address=tag.parents(".modal-content").find(".connect_address").val().toString();globalClient.startConnection(address,connectIdentity,tag.parents(".modal-content").find(".connect_nickname").val().toString())}),tag.append(button),tag},width:600});connectModal.open()};let Regex={DOMAIN:/^(localhost|((([a-zA-Z0-9_-]{0,63}\.){0,253})?[a-zA-Z0-9_-]{0,63}\.[a-zA-Z]{2,5}))(|:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[0-5]?[0-9]{1,4}))$/,IP_V4:/(^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(|:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[0-5]?[0-9]{1,4}))$/,IP_V6:/(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/,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])$|^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$|^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/}}(Modals||(Modals={}));class BasicCodec{constructor(codecSampleRate){this.on_encoded_data=($=>{}),this.channelCount=1,this.samplesPerUnit=960,this.channelCount=1,this.samplesPerUnit=960,this._audioContext=new OfflineAudioContext(1,1024,44100),this._codecSampleRate=codecSampleRate,this._decodeResampler=new AudioResampler(AudioController.globalContext.sampleRate),this._encodeResampler=new AudioResampler(codecSampleRate)}encodeSamples(cache,pcm){this._encodeResampler.resample(pcm).then(buffer=>this.encodeSamples0(cache,buffer)).catch(error=>console.error("Could not resample PCM data for codec. Error:"+error))}encodeSamples0(cache,buffer){for(cache._chunks.push(new BufferChunk(buffer));cache.bufferedSamples(this.samplesPerUnit)>=this.samplesPerUnit;){let buffer=this._audioContext.createBuffer(this.channelCount,this.samplesPerUnit,this._codecSampleRate),index=0;for(;index{result instanceof Uint8Array?((new Date).getTime()-20>encodeBegin&&console.error("Required time: %d",(new Date).getTime()-encodeBegin),this.on_encoded_data(result)):console.error("[Codec]["+this.name()+"] Could not encode buffer. Result: "+result)})}return!0}decodeSamples(cache,data){return this.decode(data).then(buffer=>this._decodeResampler.resample(buffer))}}!function(CodecWorkerType){CodecWorkerType[CodecWorkerType.WORKER_OPUS=0]="WORKER_OPUS"}(CodecWorkerType||(CodecWorkerType={}));class CodecWrapper extends BasicCodec{constructor(type,channelCount){super(48e3),this._workerListener=[],this._workerCallbackToken="callback_token",this._workerTokeIndex=0,this._initialized=!1,this.type=type,this.channelCount=channelCount}name(){return"Worker for "+CodecWorkerType[this.type]+" Channels "+this.channelCount}initialise(){return this._initializePromise?this._initializePromise:this._initializePromise=this.spawnWorker().then(()=>new Promise((resolve,reject)=>{const token=this.generateToken();this.sendWorkerMessage({command:"initialise",type:this.type,channelCount:this.channelCount,token:token}),this._workerListener.push({token:token,resolve:data=>{console.log("Init result: %o",data),this._initialized=1==data.success,1==data.success?resolve():reject(data.message)}})}))}initialized(){return this._initialized}deinitialise(){this.sendWorkerMessage({command:"deinitialise"})}decode(data){let token=this.generateToken(),result=new Promise((resolve,reject)=>{this._workerListener.push({token:token,resolve:data=>{if(data.success){let array=new Float32Array(data.dataLength);for(let index=0;index{this._workerListener.push({token:token,resolve:data=>{if(data.success){let array=new Uint8Array(data.dataLength);for(let index=0;index{this._workerCallbackReject=reject,this._workerCallbackResolve=resolve,this._worker=new Worker(settings.static("worker_directory","js/workers/")+"WorkerCodec.js"),this._worker.onmessage=(event=>this.onWorkerMessage(JSON.parse(event.data)))})}}let settings,globalClient,chat,forumIdentity;function main(){AudioController.initializeAudioController(),TSIdentityHelper.setup()?(settings=new Settings,globalClient=new TSClient,settings.static("forum_user_data")&&(forumIdentity=new TeaForumIdentity(settings.static("forum_user_data"),settings.static("forum_user_sign"))),chat=new ChatBox($("#chat")),globalClient.setup(),settings.static(Settings.KEY_DISABLE_UNLOAD_DIALOG,!1)||window.addEventListener("beforeunload",function(event){globalClient.serverConnection&&globalClient.serverConnection.connected&&(event.returnValue="Are you really sure?
You're still connected!")}),settings.static("default_connect_url")&&(settings.static("default_connect_type","forum")?globalClient.startConnection(settings.static("default_connect_url"),forumIdentity):Modals.spawnConnectModal(settings.static("default_connect_url")))):console.error("Could not setup the TeamSpeak identity parser!")}app.loadedListener.push(()=>main());class RawCodec extends BasicCodec{constructor(codecSampleRate){super(codecSampleRate),this.bufferSize=16384}name(){return"raw"}initialise(){return this.converterRaw=Module._malloc(this.bufferSize),this.converter=new Uint8Array(Module.HEAPU8.buffer,this.converterRaw,this.bufferSize),new Promise(resolve=>resolve())}initialized(){return!0}deinitialise(){}decode(data){return new Promise((resolve,reject)=>{this.converter.set(data);let buf=Module.HEAPF32.slice(this.converter.byteOffset/4,this.converter.byteOffset/4+data.length/4),audioBuf=this._audioContext.createBuffer(1,data.length/4,this._codecSampleRate);audioBuf.copyToChannel(buf,0),resolve(audioBuf)})}encode(data){return new Promise(resolve=>resolve(new Uint8Array(data.getChannelData(0))))}reset(){return!0}}var hex;!function(hex){hex.encode=function(buffer){let hexCodes=[],view=new DataView(buffer);for(let i=0;i"+this.properties.virtualserver_name+"");const serverIcon=$("");return serverIcon.append("
"),tag.append(serverIcon),this._htmlTag=tag}initializeListener(){const _this=this;this._htmlTag.click(function(){_this.channelTree.onSelect(_this)}),settings.static(Settings.KEY_DISABLE_CONTEXT_MENU,!1)||this.htmlTag.on("contextmenu",function(event){event.preventDefault(),_this.channelTree.onSelect(_this),_this.spawnContextMenu(event.pageX,event.pageY,()=>{_this.channelTree.onSelect(void 0)})})}spawnContextMenu(x,y,on_close=(()=>{})){spawnMenu(x,y,{type:MenuEntryType.ENTRY,icon:"",name:"test",callback:()=>{}},MenuEntry.CLOSE(on_close))}updateProperty(key,value){console.log("Updating property "+key+" => '"+value+"' for the server"),this.properties[key]=value,"virtualserver_name"==key?this.htmlTag.find(".name").text(value):"virtualserver_icon_id"==key&&this.channelTree.client.fileManager&&this.channelTree.client.fileManager.icons&&this.htmlTag.find(".icon_property").replaceWith(this.channelTree.client.fileManager.icons.generateTag(this.properties.virtualserver_icon_id).addClass("icon_property"))}updateProperties(){this.lastInfoRequest=(new Date).getTime(),this.nextInfoRequest=this.lastInfoRequest+1e4,this.channelTree.client.serverConnection.sendCommand("servergetvariables")}shouldUpdateProperties(){return this.nextInfoRequest<(new Date).getTime()}calculateUptime(){return 0==this.properties.virtualserver_uptime||0==this.lastInfoRequest?Number.parseInt(this.properties.virtualserver_uptime):Number.parseInt(this.properties.virtualserver_uptime)+((new Date).getTime()-this.lastInfoRequest)/1e3}}class AudioResampler{constructor(targetSampleRate=44100){if(this.targetSampleRate=targetSampleRate,this.targetSampleRate<3e3||this.targetSampleRate>384e3)throw"The target sample rate is outside the range [3000, 384000]."}resample(buffer){if(buffer.sampleRate==this.targetSampleRate)return new Promise(resolve=>resolve(buffer));let context,source=(context=new OfflineAudioContext(buffer.numberOfChannels,Math.ceil(buffer.length*this.targetSampleRate/buffer.sampleRate),this.targetSampleRate)).createBufferSource();return source.buffer=buffer,source.connect(context.destination),source.start(0),context.startRendering()}} \ No newline at end of file +var PlayerState;!function(PlayerState){PlayerState[PlayerState.PREBUFFERING=0]="PREBUFFERING",PlayerState[PlayerState.PLAYING=1]="PLAYING",PlayerState[PlayerState.BUFFERING=2]="BUFFERING",PlayerState[PlayerState.STOPPING=3]="STOPPING",PlayerState[PlayerState.STOPPED=4]="STOPPED"}(PlayerState||(PlayerState={}));class AudioController{constructor(){this.playerState=PlayerState.STOPPED,this.audioCache=[],this.playingAudioCache=[],this._volume=1,this._codecCache=[],this._timeIndex=0,this._latencyBufferLength=3,this.allowBuffering=!0,this.speakerContext=AudioController.globalContext,this.onSpeaking=function(){},this.onSilence=function(){}}static get globalContext(){return this._globalContext?this._globalContext:(this._globalContext=new AudioContext,this._globalContext)}static initializeAudioController(){}initialize(){AudioController._audioInstances.push(this)}close(){AudioController._audioInstances.remove(this)}playBuffer(buffer){switch(buffer.sampleRate!=this.speakerContext.sampleRate&&console.warn("[AudioController] Source sample rate isn't equal to playback sample rate! ("+buffer.sampleRate+" | "+this.speakerContext.sampleRate+")"),this.applyVolume(buffer),this.audioCache.push(buffer),this.playerState!=PlayerState.STOPPED&&this.playerState!=PlayerState.STOPPING||(console.log("[Audio] Starting new playback"),this.playerState=PlayerState.PREBUFFERING),this.playerState){case PlayerState.PREBUFFERING:case PlayerState.BUFFERING:if(this.audioCache.length<=this._latencyBufferLength){if(this.playerState!=PlayerState.BUFFERING)break;if(this.allowBuffering)break}this.playerState==PlayerState.PREBUFFERING?(console.log("[Audio] Prebuffering succeeded (Replaying now)"),this.onSpeaking()):this.allowBuffering&&console.log("[Audio] Buffering succeeded (Replaying now)"),this.playerState=PlayerState.PLAYING;case PlayerState.PLAYING:this.playQueue()}}playQueue(){let buffer;for(;buffer=this.audioCache.pop_front();){this._timeIndexthis.removeNode(player)),this.playingAudioCache.push(player),player.connect(this.speakerContext.destination),player.start(this._timeIndex),this._timeIndex+=buffer.duration}}removeNode(node){this.playingAudioCache.remove(node),this.testBufferQueue()}stopAudio(now=!1){if(this.playerState=PlayerState.STOPPING,now){this.playerState=PlayerState.STOPPED,this.audioCache=[];for(let entry of this.playingAudioCache)entry.stop(0);this.playingAudioCache=[]}this.testBufferQueue()}testBufferQueue(){0==this.audioCache.length&&0==this.playingAudioCache.length&&(this.playerState!=PlayerState.STOPPING?(this.playerState=PlayerState.BUFFERING,this.allowBuffering||console.warn("[Audio] Detected a buffer underflow!")):(this.playerState=PlayerState.STOPPED,this.onSilence()))}get volume(){return this._volume}set volume(val){if(this._volume!=val){this._volume=val;for(let buffer of this.audioCache)this.applyVolume(buffer)}}applyVolume(buffer){for(let channel=0;channel0&&(result+=years+" years "),(years>0||days>0)&&(result+=days+" days "),(years>0||days>0||hours>0)&&(result+=hours+" hours "),(years>0||days>0||hours>0||minutes>0)&&(result+=minutes+" minutes "),years>0||days>0||hours>0||minutes>0||seconds>0?result+=seconds+" seconds ":result="now ",result.substr(0,result.length-1)}AudioController._audioInstances=[],AudioController._timeIndex=0,Array.prototype.remove||(Array.prototype.remove=function(elem){const index=this.indexOf(elem,0);return index>-1&&(this.splice(index,1),!0)}),Array.prototype.pop_front||(Array.prototype.pop_front=function(){if(0!=this.length)return this.splice(0,1)[0]}),Array.prototype.last||(Array.prototype.last=function(){if(0!=this.length)return this[this.length-1]}),"undefined"!=typeof $&&($.spawn||($.spawn=function(tagName){return $(document.createElement(tagName))})),String.prototype.format||(String.prototype.format=function(){const args=arguments;let array=1==args.length&&$.isArray(args[0]);return this.replace(/\{\{|\}\}|\{(\d+)\}/g,function(m,n){return"{{"==m?"{":"}}"==m?"}":array?args[0][n]:args[n]})});class BufferChunk{constructor(buffer){this.buffer=buffer,this.index=0}copyRangeTo(target,maxLength,offset){let copy=Math.min(this.buffer.length-this.index,maxLength);for(let channel=0;channel1?$.spawn("div").append(val):val},jqueriefy:function(val){switch($.isFunction(val)&&(val=val()),typeof val){case"string":return $("
"+val+"
");case"object":return val;case"undefined":return console.warn("Got undefined type!"),$.spawn("div");default:return console.error("Invalid type "+typeof val),$()}},warpProperties(data){if(data instanceof ModalProperties)return data;{let props=new ModalProperties;for(let key in data)props[key]=data[key];return props}}};class ModalProperties{constructor(){this.header=(()=>"HEADER"),this.body=(()=>"BODY"),this.footer=(()=>"FOOTER"),this.closeListener=(()=>{}),this.width="60%",this.hight="auto",this.closeable=!0}registerCloseListener(listener){return this.closeListener?$.isArray(this.closeListener)?this.closeListener.push(listener):this.closeListener=[this.closeListener,listener]:this.closeListener=listener,this}triggerClose(){if($.isArray(this.closeListener))for(let listener of this.closeListener)listener();else this.closeListener()}}class Modal{constructor(props){this.properties=props}get htmlTag(){return this._htmlTag||this._create(),this._htmlTag}_create(){let modal=$.spawn("div");modal.addClass("modal");let content=$.spawn("div");content.addClass("modal-content"),content.css("width",this.properties.width);let header=ModalFunctions.divify(ModalFunctions.jqueriefy(this.properties.header)).addClass("modal-header");this.properties.closeable&&header.append('×');let body=ModalFunctions.divify(ModalFunctions.jqueriefy(this.properties.body)).addClass("modal-body"),footer=ModalFunctions.divify(ModalFunctions.jqueriefy(this.properties.footer)).addClass("modal-footer");content.append(header),content.append(body),content.append(footer),modal.append(content),modal.find(".close").click(function(){this.properties.closeable&&this.close()}.bind(this)),this._htmlTag=modal}open(){this.htmlTag.appendTo($("body")),this.htmlTag.show()}close(){const _this=this;this.htmlTag.animate({opacity:0},()=>{_this.htmlTag.detach()}),this.properties.triggerClose()}}function createModal(data){return new Modal(ModalFunctions.warpProperties(data))}class InputModalProperties extends ModalProperties{}function createInputModal(headMessage,question,validator,callback,props={}){props=ModalFunctions.warpProperties(props);let head=$.spawn("div");head.css("border-bottom","grey solid"),head.css("border-width","1px"),ModalFunctions.jqueriefy(headMessage).appendTo(head);let body=$.spawn("div");ModalFunctions.divify(ModalFunctions.jqueriefy(question)).appendTo(body);let input=$.spawn("input");input.css("width","100%"),input.appendTo(body),console.log(input);let footer=$.spawn("div");footer.addClass("modal-button-group"),footer.css("margin-top","5px");let buttonCancel=$.spawn("button");buttonCancel.text("Cancel");let buttonOk=$.spawn("button");buttonOk.text("Ok"),footer.append(buttonCancel),footer.append(buttonOk),input.on("keydown",function(event){13==event.keyCode&&buttonOk.trigger("click")});input.on("keyup",function(){let text=input.val().toString();(!props.maxLength||text.length<=props.maxLength)&&validator(text)?(input.removeClass("invalid_input"),buttonOk.removeAttr("disabled")):(input.hasClass("invalid_input")||input.addClass("invalid_input"),buttonOk.attr("disabled","true"))});let modal,callbackCalled=!1,wrappedCallback=function(flag){callbackCalled||(callbackCalled=!0,callback(flag))};return buttonOk.on("click",()=>{wrappedCallback(input.val().toString()),modal.close()}),buttonCancel.on("click",()=>{wrappedCallback(!1),modal.close()}),props.header=head,props.body=body,props.footer=footer,props.closeListener=(()=>wrappedCallback(!1)),modal=createModal(props)}function createErrorModal(header,message,props={footer:""}){props=ModalFunctions.warpProperties(props);let head=$.spawn("div");return head.addClass("modal-head-error"),ModalFunctions.divify(ModalFunctions.jqueriefy(header)).appendTo(head),props.header=head,props.body=ModalFunctions.divify(ModalFunctions.jqueriefy(message)),props.footer=ModalFunctions.divify(ModalFunctions.jqueriefy("")),createModal(props)}class VoiceActivityDetector{initialise(){}finalize(){}initialiseNewStream(old,_new){}changeHandle(handle,triggerNewStream){const oldStream=this.handle?this.handle.getMicrophoneStream():void 0;this.handle=handle,triggerNewStream&&this.initialiseNewStream(oldStream,handle?handle.getMicrophoneStream():void 0)}}class VoiceRecorder{constructor(handle){this.on_data=(data=>{}),this.on_end=(()=>{}),this._recording=!1,this.microphoneStream=void 0,this.mediaStream=void 0,this._chunkCount=0,this.handle=handle,this.userMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia,this._deviceId=settings.global("microphone_id","default"),this.audioContext=AudioController.globalContext,this.processor=this.audioContext.createScriptProcessor(VoiceRecorder.BUFFER_SIZE,VoiceRecorder.CHANNELS,VoiceRecorder.CHANNELS),this.processor.addEventListener("audioprocess",ev=>{this.microphoneStream&&this.vadHandler.shouldRecord(ev.inputBuffer)?this.on_data(ev.inputBuffer,0==this._chunkCount++):(0!=this._chunkCount&&this.on_end(),this._chunkCount=0)}),this.mute=this.audioContext.createGain(),this.mute.gain.setValueAtTime(0,0),this.processor.connect(this.mute),this.mute.connect(this.audioContext.destination),this.setVADHander(new PassThroughVAD)}avariable(){return!!this.userMedia}recording(){return this._recording}getMediaStream(){return this.mediaStream}getDestinationContext(){return this.mute}getMicrophoneStream(){return this.microphoneStream}reinitialiseVAD(){let type=settings.global("vad_type","vad");if("ppt"==type){let keyCode=parseInt(settings.global("vad_ppt_key",84..toString()));this.getVADHandler()instanceof PushToTalkVAD?this.getVADHandler().key=keyCode:this.setVADHander(new PushToTalkVAD(keyCode))}else if("pt"==type)this.getVADHandler()instanceof PassThroughVAD||this.setVADHander(new PassThroughVAD);else if("vad"==type){this.getVADHandler()instanceof VoiceActivityDetectorVAD||this.setVADHander(new VoiceActivityDetectorVAD);let threshold=parseInt(settings.global("vad_threshold","50"));this.getVADHandler().percentageThreshold=threshold}else console.warn("Invalid VAD handler! ("+type+")")}setVADHander(handler){this.vadHandler&&(this.vadHandler.changeHandle(null,!0),this.vadHandler.finalize()),this.vadHandler=handler,this.vadHandler.changeHandle(this,!1),this.vadHandler.initialise(),this.vadHandler.initialiseNewStream(void 0,this.microphoneStream)}getVADHandler(){return this.vadHandler}update(flag){this._recording!=flag&&(flag?this.start(this._deviceId):this.stop())}changeDevice(device){this._deviceId!=device&&(this._deviceId=device,settings.changeGlobal("microphone_id",device),this._recording&&(this.stop(),this.start(device)))}start(device){this._deviceId=device,console.log("Attempt recording!"),this._recording=!0,this.userMedia({audio:!0,deviceId:device},this.on_microphone.bind(this),error=>{createErrorModal("Could not resolve microphone!","Could not resolve microphone!
Message: "+error).open(),console.error("Could not get microphone!"),console.error(error)})}stop(){console.log("Stop recording!"),this._recording=!1,this.microphoneStream&&this.microphoneStream.disconnect(),this.microphoneStream=void 0,this.mediaStream&&(this.mediaStream.stop?this.mediaStream.stop():this.mediaStream.getTracks().forEach(value=>{value.stop()})),this.mediaStream=void 0}on_microphone(stream){this.microphoneStream&&this.stop(),console.log("Start recording!"),this.mediaStream=stream;const oldStream=this.microphoneStream;this.microphoneStream=this.audioContext.createMediaStreamSource(stream),this.microphoneStream.connect(this.processor),this.vadHandler.initialiseNewStream(oldStream,this.microphoneStream)}}VoiceRecorder.CHANNEL=0,VoiceRecorder.CHANNELS=1,VoiceRecorder.BUFFER_SIZE=1024;class MuteVAD extends VoiceActivityDetector{shouldRecord(buffer){return!1}}class PassThroughVAD extends VoiceActivityDetector{shouldRecord(buffer){return!0}}class VoiceActivityDetectorVAD extends VoiceActivityDetector{constructor(){super(...arguments),this.continuesCount=0,this.maxContinuesCount=12,this.percentageThreshold=50,this.percentage_listener=($=>{})}initialise(){return this.analyzer=AudioController.globalContext.createAnalyser(),this.analyzer.smoothingTimeConstant=1,this.buffer=new Uint8Array(this.analyzer.fftSize),super.initialise()}initialiseNewStream(old,_new){this.analyzer&&this.analyzer.disconnect(),_new&&_new.connect(this.analyzer)}shouldRecord(buffer){let usage=this.calculateUsage();return $.isFunction(this.percentage_listener)&&this.percentage_listener(usage),usage>=this.percentageThreshold?this.continuesCount=0:this.continuesCount++,this.continuesCount{e.key==String.fromCharCode(this._key)&&(this.pushed=!0)}),this._evListenerUp=(e=>{e.key==String.fromCharCode(this._key)&&(this.pushed=!1)}),this._key=key}initialise(){return document.addEventListener("keydown",this._evListenerDown),document.addEventListener("keyup",this._evListenerUp),super.initialise()}finalize(){return document.removeEventListener("keydown",this._evListenerDown),document.removeEventListener("keyup",this._evListenerUp),super.finalize()}set pushed(flag){this._pushed=flag}set key(key){this._key=key,this._pushed=!1}shouldRecord(buffer){return this._pushed}}class CodecPoolEntry{}class CodecPool{constructor(handle,index,name,creator){this.entries=[],this.maxInstances=2,this._supported=!0,this.creator=creator,this.handle=handle,this.codecIndex=index,this.name=name}initialize(cached){for(let i=0;i{console.log("Release again! (%o)",codec),this.releaseCodec(i+1)}).catch(error=>{this._supported&&createErrorModal("Could not load codec driver","Could not load or initialize codec "+this.name+"
Error: "+JSON.stringify(error)+"").open(),this._supported=!1,console.error(error)})}supported(){return null!=this.creator&&this._supported}ownCodec(clientId,create=!0){return new Promise((resolve,reject)=>{if(!this.creator||!this._supported)return void reject("unsupported codec!");let freeSlot=0;for(let index=0;index{this.ownCodec(clientId,!1).then(resolve).catch(reject)}).catch(error=>{console.error("Could not initialize codec!\nError: %o",error),reject("Could not initialize codec!")}));0==freeSlot&&0==this.entries[index].owner&&(freeSlot=index)}if(create){if(0==freeSlot){freeSlot=this.entries.length;let entry=new CodecPoolEntry;entry.instance=this.creator(),entry.instance.on_encoded_data=(buffer=>this.handle.sendVoicePacket(buffer,this.codecIndex)),this.entries.push(entry)}this.entries[freeSlot].owner=clientId,this.entries[freeSlot].last_access=(new Date).getTime(),this.entries[freeSlot].instance.initialized()?(this.entries[freeSlot].instance.reset(),resolve(this.entries[freeSlot].instance)):this.ownCodec(clientId,!1).then(resolve).catch(reject)}else resolve(void 0)})}releaseCodec(clientId){for(let index=0;indexnew CodecWrapper(CodecWorkerType.WORKER_OPUS,1)),new CodecPool(this,5,"Opus Music",()=>new CodecWrapper(CodecWorkerType.WORKER_OPUS,2))],this.vpacketId=0,this.chunkVPacketId=0,this.client=client,this.voiceRecorder=new VoiceRecorder(this),this.voiceRecorder.on_data=this.handleVoiceData.bind(this),this.voiceRecorder.on_end=this.handleVoiceEnded.bind(this),this.voiceRecorder.reinitialiseVAD(),this.codecPool[4].initialize(2),this.codecPool[5].initialize(2)}codecSupported(type){return this.codecPool.length>type&&this.codecPool[type].supported()}sendVoicePacket(data,codec){if(this.dataChannel){this.vpacketId++,this.vpacketId>65535&&(this.vpacketId=0);let packet=new Uint8Array(data.byteLength+2+3);packet[0]=this.chunkVPacketId++<5?1:0,packet[1]=0,packet[2]=this.vpacketId>>8&255,packet[3]=this.vpacketId>>0&255,packet[4]=codec,packet.set(data,5),this.dataChannel.send(packet)}else console.warn("Could not transfer audio (not connected)")}createSession(){this.rtcPeerConnection=new RTCPeerConnection({});this.dataChannel=this.rtcPeerConnection.createDataChannel("main",{ordered:!1,maxRetransmits:0}),this.dataChannel.onmessage=this.onDataChannelMessage.bind(this),this.dataChannel.onopen=this.onDataChannelOpen.bind(this),this.dataChannel.binaryType="arraybuffer";let sdpConstraints={offerToReceiveAudio:0,offerToReceiveVideo:0};this.rtcPeerConnection.onicecandidate=this.onIceCandidate.bind(this),this.rtcPeerConnection.createOffer(this.onOfferCreated.bind(this),()=>{console.error("Could not create ice offer!")},sdpConstraints)}dropSession(){this.dataChannel&&this.dataChannel.close(),this.rtcPeerConnection&&this.rtcPeerConnection.close()}handleControlPacket(json){"create"===json.request?this.rtcPeerConnection.setRemoteDescription(new RTCSessionDescription({type:"answer",sdp:json.sdp})):"ice"===json.request&&this.rtcPeerConnection.addIceCandidate(new RTCIceCandidate({candidate:json.candidate,sdpMid:json.session,sdpMLineIndex:json.line}))}onIceCandidate(event){console.log("Got ice candidate! Event:"),console.log(event),event&&event.candidate&&this.client.serverConnection.sendData(JSON.stringify({type:"WebRTC",request:"ice",candidate:event.candidate.candidate,line:event.candidate.sdpMLineIndex,session:event.candidate.sdpMid}))}onOfferCreated(localSession){console.log("Offer created and accepted"),this.rtcPeerConnection.setLocalDescription(localSession),this.client.serverConnection.sendData(JSON.stringify({type:"WebRTC",request:"create",session:localSession}))}onDataChannelOpen(channel){console.log("Got new data channel!")}onDataChannelMessage(message){if(this.client.controlBar.muteOutput)return;let bin=new Uint8Array(message.data),clientId=bin[2]<<8|bin[3],codec=(bin[0],bin[1],bin[4]),client=this.client.channelTree.findClient(clientId);if(!client)return void console.error("Having voice from unknown client? (ClientID: "+clientId+")");let encodedData,codecPool=this.codecPool[codec];codecPool?0==(encodedData=message.data.subarray?message.data.subarray(5):new Uint8Array(message.data,5)).length?(client.getAudioController().stopAudio(),codecPool.releaseCodec(clientId)):codecPool.ownCodec(clientId).then(decoder=>decoder.decodeSamples(client.getAudioController().codecCache(codec),encodedData)).then(buffer=>client.getAudioController().playBuffer(buffer)).catch(error=>{console.error("Could not playback client's ("+clientId+") audio ("+error+")")}):console.error("Could not playback codec "+codec)}handleVoiceData(data,head){if(this.voiceRecorder)return!!this.client.connected&&void(this.client.controlBar.muteInput||(head&&(this.chunkVPacketId=0,this.client.getClient().speaking=!0),this.codecPool[4].ownCodec(this.client.getClientId()).then(encoder=>encoder.encodeSamples(this.client.getClient().getAudioController().codecCache(4),data))))}handleVoiceEnded(){this.voiceRecorder&&(console.log("Voice ended"),this.client.getClient().speaking=!1,this.sendVoicePacket(new Uint8Array(0),4))}}$(document).bind("mousedown",function(e){0==$(e.target).parents(".contextMenu").length&&despawnContextMenu()});let contextMenuCloseFn=void 0;function despawnContextMenu(){let menue=$(".contextMenu");menue.is(":visible")&&(menue.hide(100),contextMenuCloseFn&&contextMenuCloseFn())}var MenuEntryType,sha,helpers,ChannelType,PermissionType,GroupType,GroupTarget;!function(MenuEntryType){MenuEntryType[MenuEntryType.CLOSE=0]="CLOSE",MenuEntryType[MenuEntryType.ENTRY=1]="ENTRY",MenuEntryType[MenuEntryType.HR=2]="HR",MenuEntryType[MenuEntryType.EMPTY=3]="EMPTY"}(MenuEntryType||(MenuEntryType={}));class MenuEntry{static HR(){return{callback:()=>{},type:MenuEntryType.HR,name:"",icon:""}}static EMPTY(){return{callback:()=>{},type:MenuEntryType.EMPTY,name:"",icon:""}}static CLOSE(callback){return{callback:callback,type:MenuEntryType.EMPTY,name:"",icon:""}}}function spawnMenu(x,y,...entries){const menu=$("#contextMenu");menu.empty(),menu.hide(),contextMenuCloseFn=void 0;for(let entry of entries)if(entry.type==MenuEntryType.HR)menu.append("
");else if(entry.type==MenuEntryType.CLOSE)contextMenuCloseFn=entry.callback;else if(entry.type==MenuEntryType.ENTRY){let icon=$.isFunction(entry.icon)?entry.icon():entry.icon;icon=0==icon.length?"icon_empty":"icon "+icon;let tag=$.spawn("li");tag.append("
"),tag.append("
"+($.isFunction(entry.name)?entry.name():entry.name)+"
"),menu.append(tag),entry.disabled||entry.invalidPermission?tag.addClass("disabled"):tag.click(function(){$.isFunction(entry.callback)&&entry.callback(),despawnContextMenu()})}menu.show(100),menu.css({top:y+"px",left:x+"px"})}!function(sha){sha.sha1=function(message){let buffer=message instanceof ArrayBuffer?message:(new TextEncoder).encode(message);return crypto.subtle.digest("SHA-1",buffer)}}(sha||(sha={})),function(helpers){helpers.hashPassword=function(password){return new Promise((resolve,reject)=>{sha.sha1(password).then(result=>{resolve(btoa(String.fromCharCode.apply(null,new Uint8Array(result))))})})}}(helpers||(helpers={})),function(ChannelType){ChannelType[ChannelType.PERMANENT=0]="PERMANENT",ChannelType[ChannelType.SEMI_PERMANENT=1]="SEMI_PERMANENT",ChannelType[ChannelType.TEMPORARY=2]="TEMPORARY"}(ChannelType||(ChannelType={})),function(ChannelType){ChannelType.normalize=function(mode){let value=ChannelType[mode];return(value=value.toLowerCase())[0].toUpperCase()+value.substr(1)}}(ChannelType||(ChannelType={}));class ChannelProperties{constructor(){this.channel_order=0,this.channel_name="",this.channel_topic="",this.channel_password="",this.channel_description="",this.channel_codec=4,this.channel_codec_quality=0,this.channel_codec_is_unencrypted=!1,this.channel_maxclients=-1,this.channel_maxfamilyclients=-1,this.channel_needed_talk_power=1,this.channel_flag_permanent=!1,this.channel_flag_semi_permanent=!1,this.channel_flag_default=!1,this.channel_flag_password=!1,this.channel_flag_maxclients_unlimited=!1,this.channel_flag_maxfamilyclients_inherited=!1,this.channel_flag_maxfamilyclients_unlimited=!1}}class ChannelEntry{constructor(channelId,channelName,parent=null,prevChannel=null){this.properties=new ChannelProperties,this.properties=new ChannelProperties,this.channelId=channelId,this._formatedChannelName=channelName,this.parent=parent,this.prevChannel=prevChannel,this.channelTree=null,this.initializeTag(),this.__updateChannelName()}channelName(){return this.properties.channel_name}formatedChannelName(){return this._formatedChannelName?this._formatedChannelName:this.properties.channel_name}parentChannel(){return this.parent}hasParent(){return null!=this.parent}getChannelId(){return this.channelId}channelClass(){return"channel_full"}siblings(deep=!1){const result=[];if(null==this.channelTree)return[];const self=this;return this.channelTree.channels.forEach(function(entry){let current=entry;if(deep)for(;current;){if(current.parentChannel()==self){result.push(entry);break}current=current.parentChannel()}else current.parentChannel()==self&&result.push(entry)}),result}clients(deep=!1){const result=[];if(null==this.channelTree)return[];const self=this;return this.channelTree.clients.forEach(function(entry){let current=entry.currentChannel();if(deep)for(;current;){if(current.parentChannel()==self){result.push(entry);break}current=current.parentChannel()}else current==self&&result.push(entry)}),result}initializeTag(){let rootTag=$.spawn("div");rootTag.attr("id","channel_"+this.getChannelId()),rootTag.addClass("channel"),this._tag_channel=$.spawn("div"),this._tag_channel.addClass("channelLine"),this._tag_channel.addClass(this._channelAlign);let channelType=$.spawn("div");channelType.addClass("channel_only_normal channel_type icon client-channel_green_subscribed"),this._tag_channel.append(channelType),this._tag_channel.append($.spawn("div").addClass("channel_name_container").append($.spawn("a").addClass("channel_name").text(this.channelName())));let iconTag=$.spawn("span").addClass("icons");iconTag.appendTo(this._tag_channel),iconTag.append($.spawn("div").addClass("channel_only_normal").append($.spawn("div").addClass("icon_entry icon_default icon client-channel_default").attr("title","Default channel"))),iconTag.append($.spawn("div").addClass("channel_only_normal").append($.spawn("div").addClass("icon_entry icon_password icon client-register").attr("title","The channel is password protected"))),iconTag.append($.spawn("div").addClass("channel_only_normal").append($.spawn("div").addClass("icon_entry icon_music icon client-music").attr("title","Music quality"))),iconTag.append($.spawn("div").addClass("channel_only_normal").addClass("icon_entry channel_icon").attr("title","Channel icon"));let container=$.spawn("div"),noSound=$.spawn("div").addClass("icon_entry icon_no_sound icon client-conflict-icon").attr("title","You don't support the channel codec");$.spawn("div").width(10).height(14).css("background","red").css("position","absolute").css("top","1px").css("left","3px").appendTo(container),noSound.appendTo(container),iconTag.append(container),this._tag_siblings=$.spawn("div").addClass("siblings");let tag_siblings_box=$.spawn("div").css("position","absolute").css("width","calc(100% - 16px)").css("margin","0px");this._tag_siblings.appendTo(tag_siblings_box),this._tag_clients=$.spawn("div").addClass("clients");let tag_clients_box=$.spawn("div").css("position","absolute").css("width","calc(100% - 16px)").css("margin","0px");this._tag_clients.appendTo(tag_clients_box),this._tag_root=rootTag,tag_clients_box.appendTo(this._tag_root),tag_siblings_box.appendTo(this._tag_root),this._tag_channel.appendTo(this._tag_root)}rootTag(){return this._tag_root}channelTag(){return this._tag_channel}siblingTag(){return this._tag_siblings}clientTag(){return this._tag_clients}adjustSize(parent=!0){const size=this.originalHeight;let subSize=0,clientSize=0;this.siblings(!1).forEach(function(e){subSize+=e.rootTag().outerHeight(!0)}),this.clients(!1).forEach(function(e){clientSize+=e.tag.outerHeight(!0)}),this._tag_root.css({height:size+subSize+clientSize}),this._tag_siblings.css("margin-top",clientSize+16+"px"),this._tag_clients.css({height:clientSize}),parent&&this.parentChannel()&&this.parentChannel().adjustSize(parent)}initializeListener(){const _this=this;this.channelTag().click(function(){_this.channelTree.onSelect(_this)}),this.channelTag().dblclick(()=>this.joinChannel()),settings.static(Settings.KEY_DISABLE_CONTEXT_MENU,!1)||this.channelTag().on("contextmenu",function(event){event.preventDefault(),_this.channelTree.onSelect(_this),_this.showContextMenu(event.pageX,event.pageY,()=>{_this.channelTree.onSelect(void 0)})})}showContextMenu(x,y,on_close){let channelCreate=this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_TEMPORARY).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_SEMI_PERMANENT).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_PERMANENT).granted(1),channelModify=this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_MAKE_DEFAULT).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_MAKE_PERMANENT).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_MAKE_SEMI_PERMANENT).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_MAKE_TEMPORARY).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_NAME).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_TOPIC).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_DESCRIPTION).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_PASSWORD).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_CODEC).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_CODEC_QUALITY).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_CODEC_LATENCY_FACTOR).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_MAXCLIENTS).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_MAXFAMILYCLIENTS).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_SORTORDER).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_NEEDED_TALK_POWER).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_MAKE_CODEC_ENCRYPTED).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_TEMP_DELETE_DELAY).granted(1)||this.channelTree.client.permissions.neededPermission(PermissionType.B_ICON_MANAGE).granted(1),flagDelete=!0;this.clients(!0).length>0&&(flagDelete=this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_DELETE_FLAG_FORCE).granted(1)),flagDelete&&(flagDelete=this.properties.channel_flag_permanent?this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_DELETE_PERMANENT).granted(1):this.properties.channel_flag_semi_permanent?this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_DELETE_PERMANENT).granted(1):this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_DELETE_TEMPORARY).granted(1)),spawnMenu(x,y,{type:MenuEntryType.ENTRY,icon:"client-channel_switch",name:"Switch to channel",callback:()=>{this.joinChannel()}},MenuEntry.HR(),{type:MenuEntryType.ENTRY,icon:"client-channel_edit",name:"Edit channel",invalidPermission:!channelModify,callback:()=>{Modals.createChannelModal(this,void 0,changes=>{changes&&(changes.cid=this.channelId,log.info(LogCategory.CHANNEL,"Changed channel properties of channel %s: %o",this.channelName(),changes))})}},{type:MenuEntryType.ENTRY,icon:"client-channel_delete",name:"Delete channel",invalidPermission:!flagDelete,callback:()=>this.channelTree.client.serverConnection.sendCommand("channeldelete",{cid:this.channelId})},MenuEntry.HR(),{type:MenuEntryType.ENTRY,icon:"client-channel_create_sub",name:"Create sub channel",invalidPermission:!(channelCreate&&this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_CHILD).granted(1)),callback:()=>this.channelTree.spawnCreateChannel(this)},{type:MenuEntryType.ENTRY,icon:"client-channel_create",name:"Create channel",invalidPermission:!channelCreate,callback:()=>this.channelTree.spawnCreateChannel()},MenuEntry.CLOSE(on_close))}__updateChannelName(){this._formatedChannelName=void 0;parseType:if(null==this.parentChannel()&&"["==this.properties.channel_name.charAt(0)){let end=this.properties.channel_name.indexOf("]");if(-1==end)break parseType;let options=this.properties.channel_name.substr(1,end-1);if(-1==options.indexOf("spacer"))break parseType;if(options=options.substr(0,options.indexOf("spacer")),console.log("Channel options: '"+options+"'"),0==options.length?options="l":options.length>1&&(options=options[0]),"r"!=options&&"l"!=options&&"c"!=options&&"*"!=options)break parseType;this._channelAlign=options,this._formatedChannelName=this.properties.channel_name.substr(end+1),console.log("Got channel name: "+this._formatedChannelName)}let self=this.channelTag(),channelName=self.find(".channel_name");if(channelName.text(this.formatedChannelName()),channelName.parent().removeClass("l r c *"),(this._formatedChannelName?$.fn.hide:$.fn.show).apply(self.find(".channel_only_normal")),this._formatedChannelName&&(channelName.parent().addClass(this._channelAlign),"*"==this._channelAlign)){let lastSuccess="",index=0;do{channelName.text((lastSuccess=channelName.text())+this.formatedChannelName()),console.log(channelName.parent().width()+" : "+channelName.width()+" : "+channelName.innerWidth()+" : "+channelName.outerWidth())}while(channelName.parent().width()>=channelName.width()&&++index<255);255==index&&console.warn(LogCategory.CHANNEL,"Repeating spacer took too much repeats!"),lastSuccess.length>0&&(channelName.text(lastSuccess),self.addClass("c"))}console.log("Align: "+this._channelAlign)}updateVariables(...variables){let group=log.group(log.LogType.DEBUG,LogCategory.CHANNEL,"Update properties (%i) of %s (%i)",variables.length,this.channelName(),this.getChannelId());for(let variable of variables){let key=variable.key,value=variable.value;if("number"==typeof this.properties[key]&&(this.properties[key]=parseInt(value)),"boolean"==typeof this.properties[key]?this.properties[key]="true"==value||"1"==value:this.properties[key]=value,group.log("Updating property "+key+" = '%s' -> %o",value,this.properties[key]),"channel_name"==key)this.__updateChannelName();else if("channel_order"==key){let order=this.channelTree.findChannel(this.properties.channel_order);this.channelTree.moveChannel(this,order,this.parent)}else if("channel_icon_id"==key){let tag=this.channelTag().find(".icons .channel_icon");(this.properties.channel_icon_id>0?$.fn.show:$.fn.hide).apply(tag),this.properties.channel_icon_id>0&&(tag.children().detach(),this.channelTree.client.fileManager.icons.generateTag(this.properties.channel_icon_id).appendTo(tag))}else"channel_codec"==key?((5==this.properties.channel_codec||3==this.properties.channel_codec?$.fn.show:$.fn.hide).apply(this.channelTag().find(".icons .icon_music")),(this.channelTree.client.voiceConnection.codecSupported(this.properties.channel_codec)?$.fn.hide:$.fn.show).apply(this.channelTag().find(".icons .icon_no_sound"))):"channel_flag_default"==key?(this.properties.channel_flag_default?$.fn.show:$.fn.hide).apply(this.channelTag().find(".icons .icon_default")):"channel_flag_password"==key&&(this.properties.channel_flag_password?$.fn.show:$.fn.hide).apply(this.channelTag().find(".icons .icon_password"));"channel_maxclients"!=key&&"channel_maxfamilyclients"!=key&&"channel_flag_private"!=key&&"channel_flag_password"!=key||this.updateChannelTypeIcon()}group.end()}updateChannelTypeIcon(){let type,tag=this.channelTag().find(".channel_type");tag.removeAttr("class"),tag.addClass("channel_only_normal channel_type icon"),type=1!=this.properties.channel_flag_password||this._cachedPassword?!this.properties.channel_flag_maxclients_unlimited&&this.clients().length>=this.properties.channel_maxclients||!this.properties.channel_flag_maxfamilyclients_unlimited&&this.properties.channel_maxfamilyclients>=0&&this.clients(!0).length>=this.properties.channel_maxfamilyclients?"red":"green":"yellow",tag.addClass("client-channel_"+type+"_subscribed")}createChatTag(braces=!1){let tag=$.spawn("div");return tag.css("display","inline-block"),tag.css("cursor","pointer"),tag.css("font-weight","bold"),tag.css("color","darkblue"),braces?tag.text('"'+this.channelName()+'"'):tag.text(this.channelName()),tag.contextmenu(event=>{event.isDefaultPrevented()||(event.preventDefault(),this.showContextMenu(event.pageX,event.pageY))}),tag.attr("channelId",this.channelId),tag.attr("channelName",this.channelName()),tag}channelType(){return 1==this.properties.channel_flag_permanent?ChannelType.PERMANENT:1==this.properties.channel_flag_semi_permanent?ChannelType.SEMI_PERMANENT:ChannelType.TEMPORARY}joinChannel(){1!=this.properties.channel_flag_password||this._cachedPassword||this.channelTree.client.permissions.neededPermission(PermissionType.B_CHANNEL_JOIN_IGNORE_PASSWORD).granted(1)?this.channelTree.client.getServerConnection().joinChannel(this,this._cachedPassword).catch(error=>{error instanceof CommandResult&&781==error.id&&(this._cachedPassword=void 0,this.updateChannelTypeIcon())}):createInputModal("Channel password","Channel password:",()=>!0,text=>{typeof text!=typeof!0&&helpers.hashPassword(text).then(result=>{this._cachedPassword=result,this.joinChannel(),this.updateChannelTypeIcon()})}).open()}}function chat_channel_contextmenu(_element,event){event.preventDefault();let element=$(_element);console.log("Context menue for "+element.attr("channelName"));let chid=Number.parseInt(element.attr("channelId")),channel=globalClient.channelTree.findChannel(chid);channel&&channel.showContextMenu(event.pageX,event.pageY)}!function(Modals){Modals.spawnChangeVolume=function(current,callback){let updateCallback;const connectModal=createModal({header:function(){let header=$.spawn("div");return header.text("Change volume"),header},body:function(){let tag=$("#tmpl_change_volume").tmpl();return tag.find(".volume_slider").on("change",_=>updateCallback(tag.find(".volume_slider").val())),tag.find(".volume_slider").on("input",_=>updateCallback(tag.find(".volume_slider").val())),tag},footer:function(){let tag=$.spawn("div");tag.css("text-align","right"),tag.css("margin-top","3px"),tag.css("margin-bottom","6px"),tag.addClass("modal-button-group");let buttonReset=$.spawn("button");buttonReset.text("Reset"),buttonReset.on("click",function(){updateCallback(100)}),tag.append(buttonReset);let buttonCancel=$.spawn("button");buttonCancel.text("Cancel"),buttonCancel.on("click",function(){updateCallback(100*current),connectModal.close()}),tag.append(buttonCancel);let buttonOk=$.spawn("button");return buttonOk.text("OK"),buttonOk.on("click",function(){connectModal.close()}),tag.append(buttonOk),tag},width:600});updateCallback=(value=>{connectModal.htmlTag.find(".volume_slider").val(value);let number=value-100;connectModal.htmlTag.find(".display_volume").html((0==number?"±":number>0?"+":"")+number+" %"),callback(value/100)}),connectModal.open(),updateCallback(100*current)}}(Modals||(Modals={}));class ClientProperties{constructor(){this.client_version="",this.client_platform="",this.client_nickname="unknown",this.client_unique_identifier="unknown",this.client_description="",this.client_servergroups="",this.client_channel_group_id=0,this.client_lastconnected=0,this.client_flag_avatar="",this.client_output_muted=!1,this.client_away_message="",this.client_away=!1,this.client_input_hardware=!1,this.client_input_muted=!1,this.client_is_channel_commander=!1,this.client_teaforum_id=0,this.client_teaforum_name=""}}class ClientEntry{constructor(clientId,clientName){this.properties=new ClientProperties,this.lastVariableUpdate=0,this._speaking=!1,this._clientId=clientId,this.properties.client_nickname=clientName,this.channelTree=null,this._channel=null,this.audioController=new AudioController;const _this=this;this.audioController.onSpeaking=function(){_this.speaking=!0},this.audioController.onSilence=function(){_this.speaking=!1},this.audioController.initialize()}currentChannel(){return this._channel}clientNickName(){return this.properties.client_nickname}clientUid(){return this.properties.client_unique_identifier}clientId(){return this._clientId}getAudioController(){return this.audioController}initializeListener(){const _this=this;this.tag.click(event=>{_this.channelTree.onSelect(_this)}),settings.static(Settings.KEY_DISABLE_CONTEXT_MENU,!1)||this.tag.on("contextmenu",function(event){return event.preventDefault(),_this.channelTree.onSelect(_this),_this.showContextMenu(event.pageX,event.pageY,()=>{_this.channelTree.onSelect(void 0)}),!1})}showContextMenu(x,y,on_close){const _this=this;spawnMenu(x,y,{type:MenuEntryType.ENTRY,icon:"client-change_nickname",name:"Open text chat",callback:function(){chat.activeChat=_this.chat(!0),chat.focus()}},{type:MenuEntryType.ENTRY,icon:"client-poke",name:"Poke client",callback:function(){createInputModal("Poke client","Poke message:
",text=>!0,result=>{result&&(console.log("Poking client "+_this.clientNickName()+" with message "+result),_this.channelTree.client.serverConnection.sendCommand("clientpoke",{clid:_this.clientId(),msg:result}))},{width:400,maxLength:512}).open()}},{type:MenuEntryType.ENTRY,icon:"client-edit",name:"Change description",callback:function(){createInputModal("Change client description","New description:
",text=>!0,result=>{result&&(console.log("Changing "+_this.clientNickName()+"'s description to "+result),_this.channelTree.client.serverConnection.sendCommand("clientedit",{clid:_this.clientId(),client_description:result}))},{width:400,maxLength:1024}).open()}},MenuEntry.HR(),{type:MenuEntryType.ENTRY,icon:"client-move_client_to_own_channel",name:"Move client to your channel",callback:()=>{this.channelTree.client.serverConnection.sendCommand("clientmove",{clid:this.clientId(),cid:this.channelTree.client.getClient().currentChannel().getChannelId()})}},{type:MenuEntryType.ENTRY,icon:"client-kick_channel",name:"Kick client from channel",callback:function(){createInputModal("Kick client from channel","Kick reason:
",text=>!0,result=>{result&&(console.log("Kicking client "+_this.clientNickName()+" from channel with reason "+result),_this.channelTree.client.serverConnection.sendCommand("clientkick",{clid:_this.clientId(),reasonid:ViewReasonId.VREASON_CHANNEL_KICK,reasonmsg:result}))},{width:400,maxLength:255}).open()}},{type:MenuEntryType.ENTRY,icon:"client-kick_server",name:"Kick client fom server",callback:function(){createInputModal("Kick client from server","Kick reason:
",text=>!0,result=>{result&&(console.log("Kicking client "+_this.clientNickName()+" from server with reason "+result),_this.channelTree.client.serverConnection.sendCommand("clientkick",{clid:_this.clientId(),reasonid:ViewReasonId.VREASON_SERVER_KICK,reasonmsg:result}))},{width:400,maxLength:255}).open()}},{type:MenuEntryType.ENTRY,icon:"client-ban_client",name:"Ban client",invalidPermission:!this.channelTree.client.permissions.neededPermission(PermissionType.I_CLIENT_BAN_MAX_BANTIME).granted(1),callback:()=>{Modals.spawnBanClient(this.properties.client_nickname,(duration,reason)=>{this.channelTree.client.serverConnection.sendCommand("banclient",{uid:this.properties.client_unique_identifier,banreason:reason,time:duration})})}},MenuEntry.HR(),{type:MenuEntryType.ENTRY,icon:"client-volume",name:"Change Volume",callback:()=>{Modals.spawnChangeVolume(this.audioController.volume,volume=>{settings.changeServer("volume_client_"+this.clientUid(),volume),this.audioController.volume=volume,globalClient.selectInfo.currentSelected==this&&globalClient.selectInfo.update()})}},MenuEntry.CLOSE(on_close))}get tag(){if(this._tag)return this._tag;let tag=$.spawn("div");tag.attr("id","client_"+this.clientId()),tag.addClass("client"),tag.append($.spawn("div").addClass("icon_empty")),tag.append($.spawn("div").addClass("icon_client_state").attr("title","Client state")),tag.append($.spawn("div").addClass("name").text(this.clientNickName())),tag.append($.spawn("div").addClass("away").text(this.clientNickName()));let clientIcons=$.spawn("span");return tag.append(clientIcons),this._tag=tag}static chatTag(id,name,uid,braces=!1){let tag=$.spawn("div");return tag.css("cursor","pointer").css("font-weight","bold").css("color","darkblue").css("display","inline-block").css("margin",0),braces?tag.text('"'+name+'"'):tag.text(name),tag.contextmenu(event=>{if(event.isDefaultPrevented())return;event.preventDefault();let client=globalClient.channelTree.findClient(id);client&&client.properties.client_unique_identifier==uid&&client.showContextMenu(event.pageX,event.pageY)}),tag.attr("clientId",id),tag.attr("clientUid",uid),tag.attr("clientName",name),tag}createChatTag(braces=!1){return ClientEntry.chatTag(this.clientId(),this.clientNickName(),this.clientUid(),braces)}set speaking(flag){flag!=this._speaking&&(this._speaking=flag,this.updateClientIcon())}updateClientIcon(){let icon="",clicon="";this.properties.client_away?icon="client-away":this.properties.client_output_muted?icon="client-hardware_output_muted":this.properties.client_input_hardware?this.properties.client_input_muted?icon="client-input_muted":clicon=this._speaking?this.properties.client_is_channel_commander?"client_cc_talk":"client_talk":this.properties.client_is_channel_commander?"client_cc_idle":"client_idle":icon="client-hardware_input_muted",clicon.length>0?this.tag.find(".icon_client_state").attr("class","icon_client_state clicon "+clicon):icon.length>0?this.tag.find(".icon_client_state").attr("class","icon_client_state icon "+icon):this.tag.find(".icon_client_state").attr("class","icon_client_state icon_empty")}updateAwayMessage(){let tag=this.tag.find(".away");1==this.properties.client_away&&this.properties.client_away_message?(tag.text("["+this.properties.client_away_message+"]"),tag.show()):tag.hide()}updateVariables(...variables){let group=log.group(log.LogType.DEBUG,LogCategory.CLIENT,"Update properties (%i) of %s (%i)",variables.length,this.clientNickName(),this.clientId());for(let variable of variables){if("boolean"==typeof this.properties[variable.key]?this.properties[variable.key]="true"==variable.value||"1"==variable.value:"number"==typeof this.properties[variable.key]?this.properties[variable.key]=parseInt(variable.value):this.properties[variable.key]=variable.value,group.log("Updating client "+this.clientId()+". Key "+variable.key+" Value: '"+variable.value+"' ("+typeof this.properties[variable.key]+")"),"client_nickname"==variable.key){this.tag.find(".name").text(variable.value);let chat=this.chat(!1);chat&&(chat.name=variable.value)}"client_away"!=variable.key&&"client_output_muted"!=variable.key&&"client_input_hardware"!=variable.key&&"client_input_muted"!=variable.key&&"client_is_channel_commander"!=variable.key||this.updateClientIcon(),"client_away_message"!=variable.key&&"client_away"!=variable.key||this.updateAwayMessage(),"client_unique_identifier"==variable.key&&(this.audioController.volume=parseFloat(settings.server("volume_client_"+this.clientUid(),"1")),console.error("Updated volume from config "+this.audioController.volume+" - volume_client_"+this.clientUid()+" - "+settings.server("volume_client_"+this.clientUid(),"1")),console.log(this.avatarId()))}group.end()}updateClientVariables(){(0==this.lastVariableUpdate||(new Date).getTime()-6e5>this.lastVariableUpdate)&&(this.lastVariableUpdate=(new Date).getTime(),this.channelTree.client.serverConnection.sendCommand("clientgetvariables",{clid:this.clientId()}))}chat(create=!1){let chatName="client_"+this.clientUid()+":"+this.clientId(),c=chat.findChat(chatName);if(!c&&create){(c=chat.createChat(chatName)).closeable=!0,c.name=this.clientNickName();const _this=this;c.onMessageSend=function(text){_this.channelTree.client.serverConnection.sendMessage(text,ChatType.CLIENT,_this)},c.onClose=function(){return _this.channelTree.client.serverConnection.sendCommand("clientchatclosed",{clid:_this.clientId()}),!0}}return c}updateGroupIcon(group){this.tag.find(".icon_group_"+group.id).detach(),group.properties.iconid>0&&this.tag.find("span").append(this.channelTree.client.fileManager.icons.generateTag(group.properties.iconid).addClass("icon_group_"+group.id))}assignedServerGroupIds(){let result=[];for(let id of this.properties.client_servergroups.split(","))0!=id.length&&result.push(Number.parseInt(id));return result}assignedChannelGroup(){return this.properties.client_channel_group_id}groupAssigned(group){if(group.target==GroupTarget.SERVER){for(let id of this.assignedServerGroupIds())if(id==group.id)return!0;return!1}return group.id==this.assignedChannelGroup()}onDelete(){this.audioController.close(),this.audioController=void 0}calculateOnlineTime(){return Date.now()/1e3-this.properties.client_lastconnected}avatarId(){try{let raw=atob(this.properties.client_unique_identifier),input=hex.encode(function(str){let buf=new ArrayBuffer(str.length),bufView=new Uint8Array(buf);for(let i=0,strLen=str.length;i="0"&&c<="9"?offset=c.charCodeAt(0)-"0".charCodeAt(0):c>="A"&&c<="F"?offset=c.charCodeAt(0)-"A".charCodeAt(0)+10:c>="a"&&c<="f"&&(offset=c.charCodeAt(0)-"a".charCodeAt(0)+10),result+=String.fromCharCode("a".charCodeAt(0)+offset)}return result}catch(e){return}}}class LocalClientEntry extends ClientEntry{constructor(handle){super(0,"local client"),this.handle=handle}showContextMenu(x,y,on_close){const _self=this;spawnMenu(x,y,{name:"Change name",icon:"client-change_nickname",callback:()=>_self.openRename(),type:MenuEntryType.ENTRY},{name:"Change description",icon:"client-edit",callback:()=>{createInputModal("Change own description","New description:
",text=>!0,result=>{result&&(console.log("Changing own description to "+result),_self.channelTree.client.serverConnection.sendCommand("clientedit",{clid:_self.clientId(),client_description:result}))},{width:400,maxLength:1024}).open()},type:MenuEntryType.ENTRY},MenuEntry.CLOSE(on_close))}initializeListener(){super.initializeListener(),this.tag.find(".name").addClass("own_name");const _self=this;this.tag.dblclick(function(){_self.openRename()})}openRename(){const _self=this,elm=this.tag.find(".name");elm.attr("contenteditable","true"),elm.removeClass("own_name"),elm.css("background-color","white"),elm.focus(),_self.renaming=!0,elm.keypress(function(e){if(13==e.keyCode)return $(this).trigger("focusout"),!1}),elm.focusout(function(e){if(!_self.renaming)return;_self.renaming=!1,elm.css("background-color",""),elm.removeAttr("contenteditable"),elm.addClass("own_name");let text=elm.text().toString();_self.clientNickName()!=text&&(elm.text(_self.clientNickName()),_self.handle.serverConnection.updateClient("client_nickname",text).then(e=>{chat.serverChat().appendMessage("Nickname successfully changed")}).catch(e=>{chat.serverChat().appendError("Could not change nickname ("+e.extra_message+")"),_self.openRename()}))})}}function chat_client_contextmenu(_element,event){event.preventDefault();let element=$(_element);console.log("Context menue for "+element.attr("clientName"));let clid=Number.parseInt(element.attr("clientId")),client=globalClient.channelTree.findClient(clid);client&&client.clientUid()==element.attr("clientUid")&&client.showContextMenu(event.pageX,event.pageY)}!function(Modals){Modals.createChannelModal=function(channel,parent,callback){let properties={};const modal=createModal({header:channel?"Edit channel":"Create channel",body:()=>{let template=$("#tmpl_channel_edit").tmpl(channel?channel.properties:new ChannelProperties);return(template=$.spawn("div").append(template)).tabify()},footer:()=>{let footer=$.spawn("div");footer.addClass("modal-button-group"),footer.css("margin","5px");let buttonCancel=$.spawn("button");buttonCancel.text("Cancel").addClass("button_cancel");let buttonOk=$.spawn("button");return buttonOk.text("Ok").addClass("button_ok"),footer.append(buttonCancel),footer.append(buttonOk),footer},width:500});!function(properties,tag,button,create){let updateButton=()=>{0==tag.find(".input_error").length?button.removeAttr("disabled"):button.attr("disabled","true")};tag.find(".channel_name").change(function(){properties.channel_name=this.value,$(this).removeClass("input_error"),(this.value.length<1||this.value.length>40)&&$(this).addClass("input_error"),updateButton()}).prop("disabled",!create&&!globalClient.permissions.neededPermission(PermissionType.B_CHANNEL_MODIFY_NAME).granted(1)),tag.find(".channel_password").change(function(){properties.channel_flag_password=0!=this.value.length,properties.channel_flag_password&&helpers.hashPassword(this.value).then(pass=>properties.channel_password=pass),$(this).removeClass("input_error"),properties.channel_flag_password||globalClient.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_FORCE_PASSWORD).granted(1)&&$(this).addClass("input_error"),updateButton()}).prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_WITH_PASSWORD:PermissionType.B_CHANNEL_MODIFY_PASSWORD).granted(1)),tag.find(".channel_topic").change(function(){properties.channel_topic=this.value}).prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_WITH_TOPIC:PermissionType.B_CHANNEL_MODIFY_TOPIC).granted(1)),tag.find(".channel_description").change(function(){properties.channel_description=this.value}).prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_WITH_DESCRIPTION:PermissionType.B_CHANNEL_MODIFY_DESCRIPTION).granted(1)),create&&(tag.find(".channel_name").trigger("change"),tag.find(".channel_password").trigger("change"))}(properties,modal.htmlTag.find(".channel_general_properties"),modal.htmlTag.find(".button_ok"),!channel),function(properties,tag,button,parent,create){tag.find('input[name="channel_type"]').change(function(){switch(this.value){case"semi":properties.channel_flag_permanent=!1,properties.channel_flag_semi_permanent=!0;break;case"perm":properties.channel_flag_permanent=!0,properties.channel_flag_semi_permanent=!1;break;default:properties.channel_flag_permanent=!1,properties.channel_flag_semi_permanent=!1}}),tag.find('input[name="channel_type"][value="temp"]').prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_TEMPORARY:PermissionType.B_CHANNEL_MODIFY_MAKE_TEMPORARY).granted(1)),tag.find('input[name="channel_type"][value="semi"]').prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_SEMI_PERMANENT:PermissionType.B_CHANNEL_MODIFY_MAKE_SEMI_PERMANENT).granted(1)),tag.find('input[name="channel_type"][value="perm"]').prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_PERMANENT:PermissionType.B_CHANNEL_MODIFY_MAKE_PERMANENT).granted(1)),tag.find('input[name="channel_type"]:not(:disabled)').last().prop("checked",!0).trigger("change"),tag.find('input[name="channel_default"]').change(function(){console.log(this.checked),properties.channel_flag_default=this.checked;let elements=tag.find('input[name="channel_type"]');this.checked?(elements.prop("enabled",!1),elements.prop("checked",!1),tag.find('input[name="channel_type"][value="perm"]').prop("checked",!0).trigger("change")):elements.removeProp("enabled")}).prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_PERMANENT:PermissionType.B_CHANNEL_MODIFY_MAKE_PERMANENT).granted(1)||!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_WITH_DEFAULT:PermissionType.B_CHANNEL_MODIFY_MAKE_DEFAULT).granted(1)),tag.find('input[name="talk_power"]').change(function(){properties.channel_needed_talk_power=parseInt(this.value)}).prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_WITH_NEEDED_TALK_POWER:PermissionType.B_CHANNEL_MODIFY_NEEDED_TALK_POWER).granted(1));let orderTag=tag.find(".order_id");for(let channel of parent?parent.siblings():globalClient.channelTree.rootChannel())$.spawn("option").attr("channelId",channel.channelId.toString()).text(channel.channelName()).appendTo(orderTag);orderTag.change(function(){let selected=$(this.options.item(this.selectedIndex));properties.channel_order=parseInt(selected.attr("channelId"))}).prop("disabled",!globalClient.permissions.neededPermission(create?PermissionType.B_CHANNEL_CREATE_WITH_SORTORDER:PermissionType.B_CHANNEL_MODIFY_SORTORDER).granted(1)),orderTag.find("option").last().prop("selected",!0)}(properties,modal.htmlTag.find(".settings_standard"),modal.htmlTag.find(".button_ok"),parent,!channel),modal.htmlTag.find(".button_ok").click(()=>{modal.close(),callback(properties)}),modal.htmlTag.find(".button_cancel").click(()=>{modal.close(),callback()}),modal.open()}}(Modals||(Modals={}));class ChannelTree{constructor(client,htmlTree){if(this.client=client,this.htmlTree=htmlTree,this.reset(),!settings.static(Settings.KEY_DISABLE_CONTEXT_MENU,!1)){let _this=this;this.htmlTree.parent().on("contextmenu",function(event){event.isDefaultPrevented()||(event.preventDefault(),_this.onSelect(void 0),_this.showContextMenu(event.pageX,event.pageY))})}}showContextMenu(x,y,on_close){let channelCreate=this.client.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_TEMPORARY).granted(1)||this.client.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_SEMI_PERMANENT).granted(1)||this.client.permissions.neededPermission(PermissionType.B_CHANNEL_CREATE_PERMANENT).granted(1);spawnMenu(x,y,{type:MenuEntryType.ENTRY,icon:"client-channel_create",name:"Create channel",invalidPermission:!channelCreate,callback:()=>this.spawnCreateChannel()},MenuEntry.CLOSE(on_close))}initialiseHead(serverName){this.server=new ServerEntry(this,serverName),this.server.htmlTag.appendTo(this.htmlTree),this.server.initializeListener()}__deleteAnimation(element){let tag=element instanceof ChannelEntry?element.rootTag():element.tag;this.htmlTree.find(tag).fadeOut("slow",()=>{tag.remove(),element instanceof ChannelEntry?element.parentChannel()&&element.parentChannel().adjustSize(!0):element instanceof ClientEntry&&element.currentChannel().adjustSize(!0)})}rootChannel(){return this.channels.filter(e=>null==e.parent)}deleteChannel(channel){const _this=this;for(let index=0;index .channelLine").addClass("selected"):entry instanceof ClientEntry?entry.tag.addClass("selected"):entry instanceof ServerEntry&&entry.htmlTag.addClass("selected"),this.client.selectInfo.currentSelected=entry}clientsByGroup(group){let result=[];for(let client of this.clients)client.groupAssigned(group)&&result.push(client);return result}clientsByChannel(channel){let result=[];for(let client of this.clients)client.currentChannel()==channel&&result.push(client);return result}reset(){this.server=null,this.clients=[],this.channels=[],this.htmlTree.empty()}spawnCreateChannel(parent){Modals.createChannelModal(void 0,parent,properties=>{properties&&(properties.cpid=parent?parent.channelId:0,log.debug(LogCategory.CHANNEL,"Creating new channel with properties: %o",properties),this.client.serverConnection.sendCommand("channelcreate",properties))})}}class CommandResult{constructor(json){this.json=json,this.id=json.id,this.message=json.msg,this.extra_message="",json.extra_msg&&(this.extra_message=json.extra_msg),this.success=0==this.id}}class ReturnListener{}class ServerConnection{constructor(client){this._connectionState=ConnectionState.UNCONNECTED,this._connectTimeoutHandler=void 0,this._connected=!1,this.on_connect=(()=>{console.log("Socket connected"),chat.serverChat().appendMessage("Logging in..."),this._handshakeHandler.startHandshake()}),this._client=client,this._socket=null,this.commandHandler=new ConnectionCommandHandler(this),this._retCodeIdx=0,this._retListener=[]}generateReturnCode(){return(this._retCodeIdx++).toString()}startConnection(host,port,handshake,timeout=1e3){this._connectTimeoutHandler&&(clearTimeout(this._connectTimeoutHandler),this._connectTimeoutHandler=null,this.disconnect()),this.updateConnectionState(ConnectionState.CONNECTING),this._remoteHost=host,this._remotePort=port,this._handshakeHandler=handshake,this._handshakeHandler.setConnection(this),this._connected=!1,chat.serverChat().appendMessage("Connecting to "+host+":"+port);const self=this;try{let sockCpy;if(this._connectTimeoutHandler=setTimeout(()=>{this.disconnect(),this._client.handleDisconnect(DisconnectReason.CONNECT_FAILURE)},timeout),this._socket=sockCpy=new WebSocket("wss:"+this._remoteHost+":"+this._remotePort),clearTimeout(this._connectTimeoutHandler),this._connectTimeoutHandler=null,this._socket!=sockCpy)return;this._socket.onopen=(()=>{this._socket==sockCpy&&(this._connected=!0,this.on_connect())}),this._socket.onclose=(event=>{this._socket==sockCpy&&this._client.handleDisconnect(this._connected?DisconnectReason.CONNECTION_CLOSED:DisconnectReason.CONNECT_FAILURE,{code:event.code,reason:event.reason,event:event})}),this._socket.onerror=(e=>{this._socket==sockCpy&&(console.log("Got error: ("+self._socket.readyState+")"),console.log(e))}),this._socket.onmessage=(msg=>{this._socket==sockCpy&&self.handleWebSocketMessage(msg.data)}),this.updateConnectionState(ConnectionState.INITIALISING)}catch(e){this.disconnect(),this._client.handleDisconnect(DisconnectReason.CONNECT_FAILURE,e)}}updateConnectionState(state){this._connectionState=state}disconnect(){if(this._connectionState==ConnectionState.UNCONNECTED)return!1;this.updateConnectionState(ConnectionState.UNCONNECTED),this._socket&&this._socket.close(3255,"request disconnect"),this._socket=null;for(let future of this._retListener)future.reject("Connection closed");return this._retListener=[],this._retCodeIdx=0,this._connected=!1,!0}handleWebSocketMessage(data){if("string"==typeof data){let json;try{json=JSON.parse(data)}catch(e){return console.error("Could not parse message json!"),void alert(e)}if(void 0===json.type)return void console.log("Missing data type!");"command"===json.type?this.handleCommand(json):"WebRTC"===json.type?this._client.voiceConnection.handleControlPacket(json):console.log("Unknown command type "+json.type)}}handleCommand(json){let group=log.group(log.LogType.DEBUG,LogCategory.NETWORKING,"Handling command '%s'",json.command);group.log("Handling command '"+json.command+"'"),group.group(log.LogType.TRACE,"Json:").collapsed(!0).log("%o",json).end();try{let fn=this.commandHandler[json.command];if(void 0===fn)return void group.log("Missing command '"+json.command+"'");fn.call(this.commandHandler,json.data)}finally{group.end()}}sendData(data){this._socket.send(data)}commandiefy(input){return JSON.stringify(input,(key,value)=>{switch(typeof value){case"boolean":return 1==value?"1":"0";case"function":return value();default:return value}})}sendCommand(command,data={},logResult=!0){const _this=this;let result=new Promise((resolve,failed)=>{let _data=$.isArray(data)?data:[data],retCode=void 0!==_data[0].return_code?_data[0].return_code:_this.generateReturnCode();_data[0].return_code=retCode;let listener=new ReturnListener;listener.resolve=resolve,listener.reject=failed,listener.code=retCode,listener.timeout=setTimeout(()=>{_this._retListener.remove(listener),listener.reject("timeout")},1500),this._retListener.push(listener),this._socket.send(this.commandiefy({type:"command",command:command,data:_data}))});return new Promise((resolve,failed)=>{result.then(resolve).catch(ex=>{if(logResult)if(ex instanceof CommandResult){let res=ex;res.success||chat.serverChat().appendError(0==res.extra_message.length?res.message:res.extra_message)}else"string"==typeof ex?chat.serverChat().appendError("Command execution resuluts in "+ex):(console.error("Invalid promise result type: "+typeof ex+". Result:"),console.error(ex));failed(ex)})})}get connected(){return this._socket&&this._socket.readyState==WebSocket.OPEN}joinChannel(channel,password=""){return this.sendCommand("clientmove",[{clid:this._client.getClientId(),cid:channel.getChannelId(),cpw:password}])}sendMessage(message,type,target){return type==ChatType.SERVER?this.sendCommand("sendtextmessage",{targetmode:3,target:0,msg:message}):type==ChatType.CHANNEL?this.sendCommand("sendtextmessage",{targetmode:2,target:target.getChannelId(),msg:message}):type==ChatType.CLIENT?this.sendCommand("sendtextmessage",{targetmode:1,target:target.clientId(),msg:message}):void 0}updateClient(key,value){let data={};return data[key]=value,this.sendCommand("clientupdate",data)}}class HandshakeHandler{constructor(identity,name){this.identity=identity,this.name=name}setConnection(con){this.connection=con,this.connection.commandHandler.handshakeidentityproof=this.handleCommandHandshakeIdentityProof.bind(this)}startHandshake(){let data={intention:0,authentication_method:this.identity.type()};this.identity.type()==IdentitifyType.TEAMSPEAK?data.publicKey=this.identity.publicKey():this.identity.type()==IdentitifyType.TEAFORO&&(data.data=this.identity.identityDataJson),this.connection.sendCommand("handshakebegin",data).catch(error=>{console.log(error)})}handleCommandHandshakeIdentityProof(json){let proof;this.identity.type()==IdentitifyType.TEAMSPEAK?proof=this.identity.signMessage(json[0].message):this.identity.type()==IdentitifyType.TEAFORO&&(proof=this.identity.identitySign),this.connection.sendCommand("handshakeindentityproof",{proof:proof}).then(()=>{this.connection.sendCommand("clientinit",{client_nickname:this.name?this.name:this.identity.name(),client_platform:navigator.platform,client_version:navigator.userAgent,client_browser_engine:navigator.product})}).catch(error=>{console.error("Got login error"),console.log(error)})}}class ConnectionCommandHandler{constructor(connection){this.connection=connection,this.error=this.handleCommandResult,this.channellist=this.handleCommandChannelList,this.notifychannelcreated=this.handleCommandChannelCreate,this.notifychanneldeleted=this.handleCommandChannelDelete,this.notifycliententerview=this.handleCommandClientEnterView,this.notifyclientleftview=this.handleCommandClientLeftView,this.notifyclientmoved=this.handleNotifyClientMoved,this.initserver=this.handleCommandServerInit,this.notifychannelmoved=this.handleNotifyChannelMoved,this.notifychanneledited=this.handleNotifyChannelEdited,this.notifytextmessage=this.handleNotifyTextMessage,this.notifyclientupdated=this.handleNotifyClientUpdated,this.notifyserveredited=this.handleNotifyServerEdited,this.notifyserverupdated=this.handleNotifyServerUpdated}handleCommandResult(json){let code=(json=json[0]).return_code;if(0==code.length)return void console.log("Invalid return code! ("+json+")");let retListeners=this.connection._retListener;for(let e of retListeners){if(e.code!=code)continue;retListeners.remove(e);let result=new CommandResult(json);result.success?e.resolve(result):e.reject(result);break}}handleCommandServerInit(json){console.log("Setting up voice "),this.connection._client.voiceConnection.createSession(),json=json[0],this.connection._client.clientId=parseInt(json.aclid),this.connection._client.getClient().updateVariables({key:"client_nickname",value:json.acn});for(let key in json)"aclid"!==key&&"acn"!==key&&this.connection._client.channelTree.server.updateProperty(key,json[key]);chat.serverChat().name=this.connection._client.channelTree.server.properties.virtualserver_name,chat.serverChat().appendMessage("Connected as {0}",!0,this.connection._client.getClient().createChatTag(!0)),globalClient.onConnected()}createChannelFromJson(json,ignoreOrder=!1){let tree=this.connection._client.channelTree,channel=new ChannelEntry(parseInt(json.cid),json.channel_name,tree.findChannel(json.cpid));if(tree.insertChannel(channel),"0"!==json.channel_order){let prev=tree.findChannel(json.channel_order);if(!prev&&0!=json.channel_order&&!ignoreOrder)return void console.error("Invalid channel order id!");let parent=tree.findChannel(json.cpid);if(!parent&&0!=json.cpid)return void console.error("Invalid channel parent");tree.moveChannel(channel,prev,parent)}if(ignoreOrder)for(let ch of tree.channels)ch.properties.channel_order==channel.channelId&&tree.moveChannel(ch,channel,channel.parent);let updates=[];for(let key in json)"cid"!==key&&"cpid"!==key&&"invokerid"!==key&&"invokername"!==key&&"invokeruid"!==key&&"reasonid"!==key&&updates.push({key:key,value:json[key]});channel.updateVariables(...updates)}handleCommandChannelList(json){console.log("Got "+json.length+" new channels");for(let index=0;index> "+json.msg)}else 2==mode?chat.channelChat().appendMessage("{0} >> {1}",!0,ClientEntry.chatTag(json.invokerid,json.invokername,json.invokeruid,!0),json.msg):3==mode&&chat.serverChat().appendMessage("{0} >> {1}",!0,ClientEntry.chatTag(json.invokerid,json.invokername,json.invokeruid,!0),json.msg)}handleNotifyClientUpdated(json){json=json[0];let client=this.connection._client.channelTree.findClient(json.clid);if(!client)return void console.error("Tried to update an non existing client");let updates=[];for(let key in json)"clid"!=key&&updates.push({key:key,value:json[key]});client.updateVariables(...updates),this.connection._client.selectInfo.currentSelected==client&&this.connection._client.selectInfo.update()}handleNotifyServerEdited(json){json=json[0];for(let key in json)"invokerid"!==key&&"invokername"!==key&&"invokeruid"!==key&&"reasonid"!==key&&this.connection._client.channelTree.server.updateProperty(key,json[key])}handleNotifyServerUpdated(json){json=json[0];for(let key in json)"invokerid"!==key&&"invokername"!==key&&"invokeruid"!==key&&"reasonid"!==key&&this.connection._client.channelTree.server.updateProperty(key,json[key]);let info=this.connection._client.selectInfo;info.currentSelected instanceof ServerEntry&&info.update()}}if("undefined"!=typeof customElements){class X_Properties extends HTMLElement{}class X_Property extends HTMLElement{}customElements.define("x-properties",X_Properties,{extends:"div"}),customElements.define("x-property",X_Property,{extends:"div"})}class StaticSettings{static get instance(){return this._instance||(this._instance=new StaticSettings(!0)),this._instance}static transformStO(input,_default){return void 0===input?_default:"string"==typeof _default?input:"number"==typeof _default?parseInt(input):"boolean"==typeof _default?"1"==input||"true"==input:void 0===_default?input:JSON.parse(input)}static transformOtS(input){return"string"==typeof input?input:"number"==typeof input?input.toString():"boolean"==typeof input?input?"1":"0":void 0!==input?JSON.stringify(input):void 0}constructor(_reserved){_reserved&&!StaticSettings._instance?(this._staticPropsTag=$("#properties"),this.initializeStatic()):this._handle=StaticSettings.instance}initializeStatic(){location.search.substr(1).split("&").forEach(part=>{let item=part.split("=");$("").attr("key",item[0]).attr("value",item[1]).appendTo(this._staticPropsTag)})}static(key,_default){if(this._handle)return this._handle.static(key,_default);let result=this._staticPropsTag.find("[key='"+key+"']");return console.log("%d | %o",result.length,result),StaticSettings.transformStO(result.length>0?decodeURIComponent(result.last().attr("value")):void 0,_default)}deleteStatic(key){if(this._handle)return void this._handle.deleteStatic(key);let result=this._staticPropsTag.find("[key='"+key+"']");0!=result.length&&result.detach()}}class Settings extends StaticSettings{constructor(){super(),this.cacheGlobal={},this.cacheServer={},this.updated=!1,this.cacheGlobal=JSON.parse(localStorage.getItem("settings.global")),this.cacheGlobal||(this.cacheGlobal={}),this.saveWorker=setInterval(()=>{this.updated&&this.save()},5e3)}global(key,_default){let result=this.cacheGlobal[key];return StaticSettings.transformStO(result,_default)}server(key,_default){let result=this.cacheServer[key];return StaticSettings.transformStO(result,_default)}changeGlobal(key,value){this.cacheGlobal[key]!=value&&(this.updated=!0,this.cacheGlobal[key]=StaticSettings.transformOtS(value),Settings.UPDATE_DIRECT&&this.save())}changeServer(key,value){this.cacheServer[key]!=value&&(this.updated=!0,this.cacheServer[key]=StaticSettings.transformOtS(value),Settings.UPDATE_DIRECT&&this.save())}setServer(server){if(this.currentServer&&(this.save(),this.cacheServer={},this.currentServer=void 0),this.currentServer=server,this.currentServer){let serverId=this.currentServer.properties.virtualserver_unique_identifier;this.cacheServer=JSON.parse(localStorage.getItem("settings.server_"+serverId)),this.cacheServer||(this.cacheServer={})}}save(){if(this.updated=!1,this.currentServer){let serverId=this.currentServer.properties.virtualserver_unique_identifier,server=JSON.stringify(this.cacheServer);localStorage.setItem("settings.server_"+serverId,server)}let global=JSON.stringify(this.cacheGlobal);localStorage.setItem("settings.global",global)}}Settings.KEY_DISABLE_CONTEXT_MENU="disableContextMenu",Settings.KEY_DISABLE_UNLOAD_DIALOG="disableUnloadDialog",Settings.UPDATE_DIRECT=!0;class InfoBar{constructor(client,htmlTag){this.timers=[],this.intervals=[],this.handle=client,this._htmlTag=htmlTag}createInfoTable(infos){let table=$.spawn("table");for(let key in infos){console.log("Display info "+key);let entry=$.spawn("tr");entry.append($.spawn("td").addClass("info_key").html(key+":"));let value=$.spawn("td");console.log(infos[key]),console.log(MessageHelper.formatElement(infos[key])),MessageHelper.formatElement(infos[key]).forEach(e=>e.appendTo(value)),entry.append(value),table.append(entry)}return table}set currentSelected(entry){this._currentSelected!=entry&&(this._currentSelected=entry,this.buildBar())}get currentSelected(){return this._currentSelected}update(){this.buildBar()}updateServerTimings(){this._htmlTag.find(".uptime").text(formatDate(this._currentSelected.calculateUptime()))}updateClientTimings(){this._htmlTag.find(".online").text(formatDate(this._currentSelected.calculateOnlineTime()))}buildBar(){if(this._htmlTag.empty(),this._currentSelected){for(let timer of this.timers)clearTimeout(timer);for(let timer of this.intervals)clearInterval(timer);if(this._currentSelected instanceof ServerEntry){this._currentSelected.shouldUpdateProperties()&&this._currentSelected.updateProperties();let version=this._currentSelected.properties.virtualserver_version;version.startsWith("TeaSpeak ")&&(version=version.substr("TeaSpeak ".length)),this._htmlTag.append(this.createInfoTable({Name:this._currentSelected.properties.virtualserver_name,Address:"unknown",Type:"TeaSpeak",Version:version+" on "+this._currentSelected.properties.virtualserver_platform,Uptime:""+formatDate(this._currentSelected.calculateUptime())+"","Current Channels":this._currentSelected.properties.virtualserver_channelsonline,"Current Clients":this._currentSelected.properties.virtualserver_clientsonline,"Current Queries":this._currentSelected.properties.virtualserver_queryclientsonline})),this._htmlTag.append($.spawn("div").css("height","100%"));let requestUpdate=$.spawn("button");requestUpdate.css("min-height","16px"),requestUpdate.css("bottom",0),requestUpdate.text("update info"),this._currentSelected.shouldUpdateProperties()?requestUpdate.css("color","green"):(requestUpdate.attr("disabled","true"),requestUpdate.css("color","red")),this._htmlTag.append(requestUpdate);const _server=this._currentSelected,_this=this;requestUpdate.click(function(){_server.updateProperties(),_this.buildBar()}),this.timers.push(setTimeout(function(){requestUpdate.css("color","green"),requestUpdate.removeAttr("disabled")},_server.nextInfoRequest-(new Date).getTime())),this.intervals.push(setInterval(this.updateServerTimings.bind(this),1e3))}else if(this._currentSelected instanceof ChannelEntry){let props=this._currentSelected.properties;this._htmlTag.append(this.createInfoTable({Name:this._currentSelected.createChatTag(),Topic:this._currentSelected.properties.channel_topic,Codec:this._currentSelected.properties.channel_codec,"Codec Quality":this._currentSelected.properties.channel_codec_quality,Type:ChannelType.normalize(this._currentSelected.channelType()),"Current clients":this._currentSelected.channelTree.clientsByChannel(this._currentSelected).length+" / "+(-1==props.channel_maxclients?"Unlimited":props.channel_maxclients),"Subscription Status":"unknown","Voice Data Encryption":"unknown"}))}else if(this._currentSelected instanceof ClientEntry){this._currentSelected.updateClientVariables();let version=this._currentSelected.properties.client_version;version||(version="");let infos={Name:this._currentSelected.createChatTag(),Description:this._currentSelected.properties.client_description,Version:MessageHelper.formatMessage("{0} on {1}",$.spawn("a").attr("title",version).text(version.split(" ")[0]),this._currentSelected.properties.client_platform),"Online since":$.spawn("a").addClass("online").text(formatDate(this._currentSelected.calculateOnlineTime())),Volume:100*this._currentSelected.audioController.volume+" %"};this._currentSelected.properties.client_teaforum_id>0&&(infos["TeaSpeak Account"]=$.spawn("a").attr("href","//forum.teaspeak.de/index.php?members/"+this._currentSelected.properties.client_teaforum_id).attr("target","_blank").text(this._currentSelected.properties.client_teaforum_id)),this._htmlTag.append(this.createInfoTable(infos));{let serverGroups=$.spawn("div");serverGroups.css("display","flex").css("flex-direction","column");let header=$.spawn("div");header.css("display","flex").css("margin-top","5px").css("align-items","center"),$.spawn("div").addClass("icon client-permission_server_groups").appendTo(header),$.spawn("div").text("Server groups:").css("margin-left","3px").css("font-weight","bold").appendTo(header),header.appendTo(serverGroups);for(let groupId of this._currentSelected.assignedServerGroupIds()){let group=this.handle.groups.serverGroup(groupId);if(!group)continue;let groupTag=$.spawn("div");groupTag.css("display","flex").css("margin-top","1px").css("margin-left","10px").css("align-items","center"),this.handle.fileManager.icons.generateTag(group.properties.iconid).appendTo(groupTag),$.spawn("div").text(group.name).css("margin-left","3px").appendTo(groupTag),groupTag.appendTo(serverGroups)}this._htmlTag.append(serverGroups)}{let channelGroup=$.spawn("div");channelGroup.css("display","flex").css("flex-direction","column");let header=$.spawn("div");header.css("display","flex").css("margin-top","10px").css("align-items","center"),$.spawn("div").addClass("icon client-permission_channel").appendTo(header),$.spawn("div").text("Channel group:").css("margin-left","3px").css("font-weight","bold").appendTo(header),header.appendTo(channelGroup);let group=this.handle.groups.channelGroup(this._currentSelected.assignedChannelGroup());if(group){let groupTag=$.spawn("div");groupTag.css("display","flex").css("margin-top","1px").css("margin-left","10px").css("align-items","center"),this.handle.fileManager.icons.generateTag(group.properties.iconid).appendTo(groupTag),$.spawn("div").text(group.name).css("margin-left","3px").appendTo(groupTag),groupTag.appendTo(channelGroup)}this._htmlTag.append(channelGroup)}this._currentSelected.properties.client_flag_avatar.length>0&&this.handle.fileManager.avatars.generateTag(this._currentSelected).css("margin-top","20px").css("max-height","90%").css("max-width","100%").appendTo(this._htmlTag),this.intervals.push(setInterval(this.updateClientTimings.bind(this),1e3))}}}}!function(PermissionType){PermissionType.B_SERVERINSTANCE_HELP_VIEW="b_serverinstance_help_view",PermissionType.B_SERVERINSTANCE_VERSION_VIEW="b_serverinstance_version_view",PermissionType.B_SERVERINSTANCE_INFO_VIEW="b_serverinstance_info_view",PermissionType.B_SERVERINSTANCE_VIRTUALSERVER_LIST="b_serverinstance_virtualserver_list",PermissionType.B_SERVERINSTANCE_BINDING_LIST="b_serverinstance_binding_list",PermissionType.B_SERVERINSTANCE_PERMISSION_LIST="b_serverinstance_permission_list",PermissionType.B_SERVERINSTANCE_PERMISSION_FIND="b_serverinstance_permission_find",PermissionType.B_VIRTUALSERVER_CREATE="b_virtualserver_create",PermissionType.B_VIRTUALSERVER_DELETE="b_virtualserver_delete",PermissionType.B_VIRTUALSERVER_START_ANY="b_virtualserver_start_any",PermissionType.B_VIRTUALSERVER_STOP_ANY="b_virtualserver_stop_any",PermissionType.B_VIRTUALSERVER_CHANGE_MACHINE_ID="b_virtualserver_change_machine_id",PermissionType.B_VIRTUALSERVER_CHANGE_TEMPLATE="b_virtualserver_change_template",PermissionType.B_SERVERQUERY_LOGIN="b_serverquery_login",PermissionType.B_SERVERINSTANCE_TEXTMESSAGE_SEND="b_serverinstance_textmessage_send",PermissionType.B_SERVERINSTANCE_LOG_VIEW="b_serverinstance_log_view",PermissionType.B_SERVERINSTANCE_LOG_ADD="b_serverinstance_log_add",PermissionType.B_SERVERINSTANCE_STOP="b_serverinstance_stop",PermissionType.B_SERVERINSTANCE_MODIFY_SETTINGS="b_serverinstance_modify_settings",PermissionType.B_SERVERINSTANCE_MODIFY_QUERYGROUP="b_serverinstance_modify_querygroup",PermissionType.B_SERVERINSTANCE_MODIFY_TEMPLATES="b_serverinstance_modify_templates",PermissionType.B_VIRTUALSERVER_SELECT="b_virtualserver_select",PermissionType.B_VIRTUALSERVER_INFO_VIEW="b_virtualserver_info_view",PermissionType.B_VIRTUALSERVER_CONNECTIONINFO_VIEW="b_virtualserver_connectioninfo_view",PermissionType.B_VIRTUALSERVER_CHANNEL_LIST="b_virtualserver_channel_list",PermissionType.B_VIRTUALSERVER_CHANNEL_SEARCH="b_virtualserver_channel_search",PermissionType.B_VIRTUALSERVER_CLIENT_LIST="b_virtualserver_client_list",PermissionType.B_VIRTUALSERVER_CLIENT_SEARCH="b_virtualserver_client_search",PermissionType.B_VIRTUALSERVER_CLIENT_DBLIST="b_virtualserver_client_dblist",PermissionType.B_VIRTUALSERVER_CLIENT_DBSEARCH="b_virtualserver_client_dbsearch",PermissionType.B_VIRTUALSERVER_CLIENT_DBINFO="b_virtualserver_client_dbinfo",PermissionType.B_VIRTUALSERVER_PERMISSION_FIND="b_virtualserver_permission_find",PermissionType.B_VIRTUALSERVER_CUSTOM_SEARCH="b_virtualserver_custom_search",PermissionType.B_VIRTUALSERVER_START="b_virtualserver_start",PermissionType.B_VIRTUALSERVER_STOP="b_virtualserver_stop",PermissionType.B_VIRTUALSERVER_TOKEN_LIST="b_virtualserver_token_list",PermissionType.B_VIRTUALSERVER_TOKEN_ADD="b_virtualserver_token_add",PermissionType.B_VIRTUALSERVER_TOKEN_USE="b_virtualserver_token_use",PermissionType.B_VIRTUALSERVER_TOKEN_DELETE="b_virtualserver_token_delete",PermissionType.B_VIRTUALSERVER_LOG_VIEW="b_virtualserver_log_view",PermissionType.B_VIRTUALSERVER_LOG_ADD="b_virtualserver_log_add",PermissionType.B_VIRTUALSERVER_JOIN_IGNORE_PASSWORD="b_virtualserver_join_ignore_password",PermissionType.B_VIRTUALSERVER_NOTIFY_REGISTER="b_virtualserver_notify_register",PermissionType.B_VIRTUALSERVER_NOTIFY_UNREGISTER="b_virtualserver_notify_unregister",PermissionType.B_VIRTUALSERVER_SNAPSHOT_CREATE="b_virtualserver_snapshot_create",PermissionType.B_VIRTUALSERVER_SNAPSHOT_DEPLOY="b_virtualserver_snapshot_deploy",PermissionType.B_VIRTUALSERVER_PERMISSION_RESET="b_virtualserver_permission_reset",PermissionType.B_VIRTUALSERVER_MODIFY_NAME="b_virtualserver_modify_name",PermissionType.B_VIRTUALSERVER_MODIFY_WELCOMEMESSAGE="b_virtualserver_modify_welcomemessage",PermissionType.B_VIRTUALSERVER_MODIFY_MAXCLIENTS="b_virtualserver_modify_maxclients",PermissionType.B_VIRTUALSERVER_MODIFY_RESERVED_SLOTS="b_virtualserver_modify_reserved_slots",PermissionType.B_VIRTUALSERVER_MODIFY_PASSWORD="b_virtualserver_modify_password",PermissionType.B_VIRTUALSERVER_MODIFY_DEFAULT_SERVERGROUP="b_virtualserver_modify_default_servergroup",PermissionType.B_VIRTUALSERVER_MODIFY_DEFAULT_CHANNELGROUP="b_virtualserver_modify_default_channelgroup",PermissionType.B_VIRTUALSERVER_MODIFY_DEFAULT_CHANNELADMINGROUP="b_virtualserver_modify_default_channeladmingroup",PermissionType.B_VIRTUALSERVER_MODIFY_CHANNEL_FORCED_SILENCE="b_virtualserver_modify_channel_forced_silence",PermissionType.B_VIRTUALSERVER_MODIFY_COMPLAIN="b_virtualserver_modify_complain",PermissionType.B_VIRTUALSERVER_MODIFY_ANTIFLOOD="b_virtualserver_modify_antiflood",PermissionType.B_VIRTUALSERVER_MODIFY_FT_SETTINGS="b_virtualserver_modify_ft_settings",PermissionType.B_VIRTUALSERVER_MODIFY_FT_QUOTAS="b_virtualserver_modify_ft_quotas",PermissionType.B_VIRTUALSERVER_MODIFY_HOSTMESSAGE="b_virtualserver_modify_hostmessage",PermissionType.B_VIRTUALSERVER_MODIFY_HOSTBANNER="b_virtualserver_modify_hostbanner",PermissionType.B_VIRTUALSERVER_MODIFY_HOSTBUTTON="b_virtualserver_modify_hostbutton",PermissionType.B_VIRTUALSERVER_MODIFY_PORT="b_virtualserver_modify_port",PermissionType.B_VIRTUALSERVER_MODIFY_HOST="b_virtualserver_modify_host",PermissionType.B_VIRTUALSERVER_MODIFY_AUTOSTART="b_virtualserver_modify_autostart",PermissionType.B_VIRTUALSERVER_MODIFY_NEEDED_IDENTITY_SECURITY_LEVEL="b_virtualserver_modify_needed_identity_security_level",PermissionType.B_VIRTUALSERVER_MODIFY_PRIORITY_SPEAKER_DIMM_MODIFICATOR="b_virtualserver_modify_priority_speaker_dimm_modificator",PermissionType.B_VIRTUALSERVER_MODIFY_LOG_SETTINGS="b_virtualserver_modify_log_settings",PermissionType.B_VIRTUALSERVER_MODIFY_MIN_CLIENT_VERSION="b_virtualserver_modify_min_client_version",PermissionType.B_VIRTUALSERVER_MODIFY_ICON_ID="b_virtualserver_modify_icon_id",PermissionType.B_VIRTUALSERVER_MODIFY_WEBLIST="b_virtualserver_modify_weblist",PermissionType.B_VIRTUALSERVER_MODIFY_CODEC_ENCRYPTION_MODE="b_virtualserver_modify_codec_encryption_mode",PermissionType.B_VIRTUALSERVER_MODIFY_TEMPORARY_PASSWORDS="b_virtualserver_modify_temporary_passwords",PermissionType.B_VIRTUALSERVER_MODIFY_TEMPORARY_PASSWORDS_OWN="b_virtualserver_modify_temporary_passwords_own",PermissionType.B_VIRTUALSERVER_MODIFY_CHANNEL_TEMP_DELETE_DELAY_DEFAULT="b_virtualserver_modify_channel_temp_delete_delay_default",PermissionType.B_VIRTUALSERVER_MODIFY_MUSIC_BOT_LIMIT="b_virtualserver_modify_music_bot_limit",PermissionType.I_CHANNEL_MIN_DEPTH="i_channel_min_depth",PermissionType.I_CHANNEL_MAX_DEPTH="i_channel_max_depth",PermissionType.B_CHANNEL_GROUP_INHERITANCE_END="b_channel_group_inheritance_end",PermissionType.I_CHANNEL_PERMISSION_MODIFY_POWER="i_channel_permission_modify_power",PermissionType.I_CHANNEL_NEEDED_PERMISSION_MODIFY_POWER="i_channel_needed_permission_modify_power",PermissionType.B_CHANNEL_INFO_VIEW="b_channel_info_view",PermissionType.B_CHANNEL_CREATE_CHILD="b_channel_create_child",PermissionType.B_CHANNEL_CREATE_PERMANENT="b_channel_create_permanent",PermissionType.B_CHANNEL_CREATE_SEMI_PERMANENT="b_channel_create_semi_permanent",PermissionType.B_CHANNEL_CREATE_TEMPORARY="b_channel_create_temporary",PermissionType.B_CHANNEL_CREATE_PRIVATE="b_channel_create_private",PermissionType.B_CHANNEL_CREATE_WITH_TOPIC="b_channel_create_with_topic",PermissionType.B_CHANNEL_CREATE_WITH_DESCRIPTION="b_channel_create_with_description",PermissionType.B_CHANNEL_CREATE_WITH_PASSWORD="b_channel_create_with_password",PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_CODEC_SPEEX8="b_channel_create_modify_with_codec_speex8",PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_CODEC_SPEEX16="b_channel_create_modify_with_codec_speex16",PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_CODEC_SPEEX32="b_channel_create_modify_with_codec_speex32",PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_CODEC_CELTMONO48="b_channel_create_modify_with_codec_celtmono48",PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_CODEC_OPUSVOICE="b_channel_create_modify_with_codec_opusvoice",PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_CODEC_OPUSMUSIC="b_channel_create_modify_with_codec_opusmusic",PermissionType.I_CHANNEL_CREATE_MODIFY_WITH_CODEC_MAXQUALITY="i_channel_create_modify_with_codec_maxquality",PermissionType.I_CHANNEL_CREATE_MODIFY_WITH_CODEC_LATENCY_FACTOR_MIN="i_channel_create_modify_with_codec_latency_factor_min",PermissionType.B_CHANNEL_CREATE_WITH_MAXCLIENTS="b_channel_create_with_maxclients",PermissionType.B_CHANNEL_CREATE_WITH_MAXFAMILYCLIENTS="b_channel_create_with_maxfamilyclients",PermissionType.B_CHANNEL_CREATE_WITH_SORTORDER="b_channel_create_with_sortorder",PermissionType.B_CHANNEL_CREATE_WITH_DEFAULT="b_channel_create_with_default",PermissionType.B_CHANNEL_CREATE_WITH_NEEDED_TALK_POWER="b_channel_create_with_needed_talk_power",PermissionType.B_CHANNEL_CREATE_MODIFY_WITH_FORCE_PASSWORD="b_channel_create_modify_with_force_password",PermissionType.I_CHANNEL_CREATE_MODIFY_WITH_TEMP_DELETE_DELAY="i_channel_create_modify_with_temp_delete_delay",PermissionType.B_CHANNEL_MODIFY_PARENT="b_channel_modify_parent",PermissionType.B_CHANNEL_MODIFY_MAKE_DEFAULT="b_channel_modify_make_default",PermissionType.B_CHANNEL_MODIFY_MAKE_PERMANENT="b_channel_modify_make_permanent",PermissionType.B_CHANNEL_MODIFY_MAKE_SEMI_PERMANENT="b_channel_modify_make_semi_permanent",PermissionType.B_CHANNEL_MODIFY_MAKE_TEMPORARY="b_channel_modify_make_temporary",PermissionType.B_CHANNEL_MODIFY_NAME="b_channel_modify_name",PermissionType.B_CHANNEL_MODIFY_TOPIC="b_channel_modify_topic",PermissionType.B_CHANNEL_MODIFY_DESCRIPTION="b_channel_modify_description",PermissionType.B_CHANNEL_MODIFY_PASSWORD="b_channel_modify_password",PermissionType.B_CHANNEL_MODIFY_CODEC="b_channel_modify_codec",PermissionType.B_CHANNEL_MODIFY_CODEC_QUALITY="b_channel_modify_codec_quality",PermissionType.B_CHANNEL_MODIFY_CODEC_LATENCY_FACTOR="b_channel_modify_codec_latency_factor",PermissionType.B_CHANNEL_MODIFY_MAXCLIENTS="b_channel_modify_maxclients",PermissionType.B_CHANNEL_MODIFY_MAXFAMILYCLIENTS="b_channel_modify_maxfamilyclients",PermissionType.B_CHANNEL_MODIFY_SORTORDER="b_channel_modify_sortorder",PermissionType.B_CHANNEL_MODIFY_NEEDED_TALK_POWER="b_channel_modify_needed_talk_power",PermissionType.I_CHANNEL_MODIFY_POWER="i_channel_modify_power",PermissionType.I_CHANNEL_NEEDED_MODIFY_POWER="i_channel_needed_modify_power",PermissionType.B_CHANNEL_MODIFY_MAKE_CODEC_ENCRYPTED="b_channel_modify_make_codec_encrypted",PermissionType.B_CHANNEL_MODIFY_TEMP_DELETE_DELAY="b_channel_modify_temp_delete_delay",PermissionType.B_CHANNEL_DELETE_PERMANENT="b_channel_delete_permanent",PermissionType.B_CHANNEL_DELETE_SEMI_PERMANENT="b_channel_delete_semi_permanent",PermissionType.B_CHANNEL_DELETE_TEMPORARY="b_channel_delete_temporary",PermissionType.B_CHANNEL_DELETE_FLAG_FORCE="b_channel_delete_flag_force",PermissionType.I_CHANNEL_DELETE_POWER="i_channel_delete_power",PermissionType.I_CHANNEL_NEEDED_DELETE_POWER="i_channel_needed_delete_power",PermissionType.B_CHANNEL_JOIN_PERMANENT="b_channel_join_permanent",PermissionType.B_CHANNEL_JOIN_SEMI_PERMANENT="b_channel_join_semi_permanent",PermissionType.B_CHANNEL_JOIN_TEMPORARY="b_channel_join_temporary",PermissionType.B_CHANNEL_JOIN_IGNORE_PASSWORD="b_channel_join_ignore_password",PermissionType.B_CHANNEL_JOIN_IGNORE_MAXCLIENTS="b_channel_join_ignore_maxclients",PermissionType.I_CHANNEL_JOIN_POWER="i_channel_join_power",PermissionType.I_CHANNEL_NEEDED_JOIN_POWER="i_channel_needed_join_power",PermissionType.I_CHANNEL_SUBSCRIBE_POWER="i_channel_subscribe_power",PermissionType.I_CHANNEL_NEEDED_SUBSCRIBE_POWER="i_channel_needed_subscribe_power",PermissionType.I_CHANNEL_DESCRIPTION_VIEW_POWER="i_channel_description_view_power",PermissionType.I_CHANNEL_NEEDED_DESCRIPTION_VIEW_POWER="i_channel_needed_description_view_power",PermissionType.I_ICON_ID="i_icon_id",PermissionType.I_MAX_ICON_FILESIZE="i_max_icon_filesize",PermissionType.B_ICON_MANAGE="b_icon_manage",PermissionType.B_GROUP_IS_PERMANENT="b_group_is_permanent",PermissionType.I_GROUP_AUTO_UPDATE_TYPE="i_group_auto_update_type",PermissionType.I_GROUP_AUTO_UPDATE_MAX_VALUE="i_group_auto_update_max_value",PermissionType.I_GROUP_SORT_ID="i_group_sort_id",PermissionType.I_GROUP_SHOW_NAME_IN_TREE="i_group_show_name_in_tree",PermissionType.B_VIRTUALSERVER_SERVERGROUP_LIST="b_virtualserver_servergroup_list",PermissionType.B_VIRTUALSERVER_SERVERGROUP_PERMISSION_LIST="b_virtualserver_servergroup_permission_list",PermissionType.B_VIRTUALSERVER_SERVERGROUP_CLIENT_LIST="b_virtualserver_servergroup_client_list",PermissionType.B_VIRTUALSERVER_CHANNELGROUP_LIST="b_virtualserver_channelgroup_list",PermissionType.B_VIRTUALSERVER_CHANNELGROUP_PERMISSION_LIST="b_virtualserver_channelgroup_permission_list",PermissionType.B_VIRTUALSERVER_CHANNELGROUP_CLIENT_LIST="b_virtualserver_channelgroup_client_list",PermissionType.B_VIRTUALSERVER_CLIENT_PERMISSION_LIST="b_virtualserver_client_permission_list",PermissionType.B_VIRTUALSERVER_CHANNEL_PERMISSION_LIST="b_virtualserver_channel_permission_list",PermissionType.B_VIRTUALSERVER_CHANNELCLIENT_PERMISSION_LIST="b_virtualserver_channelclient_permission_list",PermissionType.B_VIRTUALSERVER_SERVERGROUP_CREATE="b_virtualserver_servergroup_create",PermissionType.B_VIRTUALSERVER_CHANNELGROUP_CREATE="b_virtualserver_channelgroup_create",PermissionType.I_SERVER_GROUP_MODIFY_POWER="i_server_group_modify_power",PermissionType.I_SERVER_GROUP_NEEDED_MODIFY_POWER="i_server_group_needed_modify_power",PermissionType.I_SERVER_GROUP_MEMBER_ADD_POWER="i_server_group_member_add_power",PermissionType.I_SERVER_GROUP_NEEDED_MEMBER_ADD_POWER="i_server_group_needed_member_add_power",PermissionType.I_SERVER_GROUP_MEMBER_REMOVE_POWER="i_server_group_member_remove_power",PermissionType.I_SERVER_GROUP_NEEDED_MEMBER_REMOVE_POWER="i_server_group_needed_member_remove_power",PermissionType.I_CHANNEL_GROUP_MODIFY_POWER="i_channel_group_modify_power",PermissionType.I_CHANNEL_GROUP_NEEDED_MODIFY_POWER="i_channel_group_needed_modify_power",PermissionType.I_CHANNEL_GROUP_MEMBER_ADD_POWER="i_channel_group_member_add_power",PermissionType.I_CHANNEL_GROUP_NEEDED_MEMBER_ADD_POWER="i_channel_group_needed_member_add_power",PermissionType.I_CHANNEL_GROUP_MEMBER_REMOVE_POWER="i_channel_group_member_remove_power",PermissionType.I_CHANNEL_GROUP_NEEDED_MEMBER_REMOVE_POWER="i_channel_group_needed_member_remove_power",PermissionType.I_GROUP_MEMBER_ADD_POWER="i_group_member_add_power",PermissionType.I_GROUP_NEEDED_MEMBER_ADD_POWER="i_group_needed_member_add_power",PermissionType.I_GROUP_MEMBER_REMOVE_POWER="i_group_member_remove_power",PermissionType.I_GROUP_NEEDED_MEMBER_REMOVE_POWER="i_group_needed_member_remove_power",PermissionType.I_GROUP_MODIFY_POWER="i_group_modify_power",PermissionType.I_GROUP_NEEDED_MODIFY_POWER="i_group_needed_modify_power",PermissionType.I_DISPLAYED_GROUP_MEMBER_ADD_POWER="i_displayed_group_member_add_power",PermissionType.I_DISPLAYED_GROUP_NEEDED_MEMBER_ADD_POWER="i_displayed_group_needed_member_add_power",PermissionType.I_DISPLAYED_GROUP_MEMBER_REMOVE_POWER="i_displayed_group_member_remove_power",PermissionType.I_DISPLAYED_GROUP_NEEDED_MEMBER_REMOVE_POWER="i_displayed_group_needed_member_remove_power",PermissionType.I_DISPLAYED_GROUP_MODIFY_POWER="i_displayed_group_modify_power",PermissionType.I_DISPLAYED_GROUP_NEEDED_MODIFY_POWER="i_displayed_group_needed_modify_power",PermissionType.I_PERMISSION_MODIFY_POWER="i_permission_modify_power",PermissionType.B_PERMISSION_MODIFY_POWER_IGNORE="b_permission_modify_power_ignore",PermissionType.B_VIRTUALSERVER_SERVERGROUP_DELETE="b_virtualserver_servergroup_delete",PermissionType.B_VIRTUALSERVER_CHANNELGROUP_DELETE="b_virtualserver_channelgroup_delete",PermissionType.I_CLIENT_PERMISSION_MODIFY_POWER="i_client_permission_modify_power",PermissionType.I_CLIENT_NEEDED_PERMISSION_MODIFY_POWER="i_client_needed_permission_modify_power",PermissionType.I_CLIENT_MAX_CLONES_UID="i_client_max_clones_uid",PermissionType.I_CLIENT_MAX_IDLETIME="i_client_max_idletime",PermissionType.I_CLIENT_MAX_AVATAR_FILESIZE="i_client_max_avatar_filesize",PermissionType.I_CLIENT_MAX_CHANNEL_SUBSCRIPTIONS="i_client_max_channel_subscriptions",PermissionType.B_CLIENT_IS_PRIORITY_SPEAKER="b_client_is_priority_speaker",PermissionType.B_CLIENT_SKIP_CHANNELGROUP_PERMISSIONS="b_client_skip_channelgroup_permissions",PermissionType.B_CLIENT_FORCE_PUSH_TO_TALK="b_client_force_push_to_talk",PermissionType.B_CLIENT_IGNORE_BANS="b_client_ignore_bans",PermissionType.B_CLIENT_IGNORE_ANTIFLOOD="b_client_ignore_antiflood",PermissionType.B_CLIENT_ISSUE_CLIENT_QUERY_COMMAND="b_client_issue_client_query_command",PermissionType.B_CLIENT_USE_RESERVED_SLOT="b_client_use_reserved_slot",PermissionType.B_CLIENT_USE_CHANNEL_COMMANDER="b_client_use_channel_commander",PermissionType.B_CLIENT_REQUEST_TALKER="b_client_request_talker",PermissionType.B_CLIENT_AVATAR_DELETE_OTHER="b_client_avatar_delete_other",PermissionType.B_CLIENT_IS_STICKY="b_client_is_sticky",PermissionType.B_CLIENT_IGNORE_STICKY="b_client_ignore_sticky",PermissionType.B_CLIENT_MUSIC_CHANNEL_LIST="b_client_music_channel_list",PermissionType.B_CLIENT_MUSIC_SERVER_LIST="b_client_music_server_list",PermissionType.I_CLIENT_MUSIC_INFO="i_client_music_info",PermissionType.I_CLIENT_MUSIC_NEEDED_INFO="i_client_music_needed_info",PermissionType.B_CLIENT_INFO_VIEW="b_client_info_view",PermissionType.B_CLIENT_PERMISSIONOVERVIEW_VIEW="b_client_permissionoverview_view",PermissionType.B_CLIENT_PERMISSIONOVERVIEW_OWN="b_client_permissionoverview_own",PermissionType.B_CLIENT_REMOTEADDRESS_VIEW="b_client_remoteaddress_view",PermissionType.I_CLIENT_SERVERQUERY_VIEW_POWER="i_client_serverquery_view_power",PermissionType.I_CLIENT_NEEDED_SERVERQUERY_VIEW_POWER="i_client_needed_serverquery_view_power",PermissionType.B_CLIENT_CUSTOM_INFO_VIEW="b_client_custom_info_view",PermissionType.I_CLIENT_KICK_FROM_SERVER_POWER="i_client_kick_from_server_power",PermissionType.I_CLIENT_NEEDED_KICK_FROM_SERVER_POWER="i_client_needed_kick_from_server_power",PermissionType.I_CLIENT_KICK_FROM_CHANNEL_POWER="i_client_kick_from_channel_power",PermissionType.I_CLIENT_NEEDED_KICK_FROM_CHANNEL_POWER="i_client_needed_kick_from_channel_power",PermissionType.I_CLIENT_BAN_POWER="i_client_ban_power",PermissionType.I_CLIENT_NEEDED_BAN_POWER="i_client_needed_ban_power",PermissionType.I_CLIENT_MOVE_POWER="i_client_move_power",PermissionType.I_CLIENT_NEEDED_MOVE_POWER="i_client_needed_move_power",PermissionType.I_CLIENT_COMPLAIN_POWER="i_client_complain_power",PermissionType.I_CLIENT_NEEDED_COMPLAIN_POWER="i_client_needed_complain_power",PermissionType.B_CLIENT_COMPLAIN_LIST="b_client_complain_list",PermissionType.B_CLIENT_COMPLAIN_DELETE_OWN="b_client_complain_delete_own",PermissionType.B_CLIENT_COMPLAIN_DELETE="b_client_complain_delete",PermissionType.B_CLIENT_BAN_LIST="b_client_ban_list",PermissionType.B_CLIENT_BAN_LIST_GLOBAL="b_client_ban_list_global",PermissionType.B_CLIENT_BAN_CREATE="b_client_ban_create",PermissionType.B_CLIENT_BAN_CREATE_GLOBAL="b_client_ban_create_global",PermissionType.B_CLIENT_BAN_EDIT="b_client_ban_edit",PermissionType.B_CLIENT_BAN_EDIT_GLOBAL="b_client_ban_edit_global",PermissionType.B_CLIENT_BAN_DELETE_OWN="b_client_ban_delete_own",PermissionType.B_CLIENT_BAN_DELETE="b_client_ban_delete",PermissionType.B_CLIENT_BAN_DELETE_OWN_GLOBAL="b_client_ban_delete_own_global",PermissionType.B_CLIENT_BAN_DELETE_GLOBAL="b_client_ban_delete_global",PermissionType.I_CLIENT_BAN_MAX_BANTIME="i_client_ban_max_bantime",PermissionType.I_CLIENT_PRIVATE_TEXTMESSAGE_POWER="i_client_private_textmessage_power",PermissionType.I_CLIENT_NEEDED_PRIVATE_TEXTMESSAGE_POWER="i_client_needed_private_textmessage_power",PermissionType.B_CLIENT_SERVER_TEXTMESSAGE_SEND="b_client_server_textmessage_send",PermissionType.B_CLIENT_CHANNEL_TEXTMESSAGE_SEND="b_client_channel_textmessage_send",PermissionType.B_CLIENT_OFFLINE_TEXTMESSAGE_SEND="b_client_offline_textmessage_send",PermissionType.I_CLIENT_TALK_POWER="i_client_talk_power",PermissionType.I_CLIENT_NEEDED_TALK_POWER="i_client_needed_talk_power",PermissionType.I_CLIENT_POKE_POWER="i_client_poke_power",PermissionType.I_CLIENT_NEEDED_POKE_POWER="i_client_needed_poke_power",PermissionType.B_CLIENT_SET_FLAG_TALKER="b_client_set_flag_talker",PermissionType.I_CLIENT_WHISPER_POWER="i_client_whisper_power",PermissionType.I_CLIENT_NEEDED_WHISPER_POWER="i_client_needed_whisper_power",PermissionType.B_CLIENT_MODIFY_DESCRIPTION="b_client_modify_description",PermissionType.B_CLIENT_MODIFY_OWN_DESCRIPTION="b_client_modify_own_description",PermissionType.B_CLIENT_MODIFY_DBPROPERTIES="b_client_modify_dbproperties",PermissionType.B_CLIENT_DELETE_DBPROPERTIES="b_client_delete_dbproperties",PermissionType.B_CLIENT_CREATE_MODIFY_SERVERQUERY_LOGIN="b_client_create_modify_serverquery_login",PermissionType.B_CLIENT_MUSIC_CREATE="b_client_music_create",PermissionType.I_CLIENT_MUSIC_LIMIT="i_client_music_limit",PermissionType.I_CLIENT_MUSIC_DELETE_POWER="i_client_music_delete_power",PermissionType.I_CLIENT_MUSIC_NEEDED_DELETE_POWER="i_client_music_needed_delete_power",PermissionType.I_CLIENT_MUSIC_PLAY_POWER="i_client_music_play_power",PermissionType.I_CLIENT_MUSIC_NEEDED_PLAY_POWER="i_client_music_needed_play_power",PermissionType.I_CLIENT_MUSIC_RENAME_POWER="i_client_music_rename_power",PermissionType.I_CLIENT_MUSIC_NEEDED_RENAME_POWER="i_client_music_needed_rename_power",PermissionType.B_FT_IGNORE_PASSWORD="b_ft_ignore_password",PermissionType.B_FT_TRANSFER_LIST="b_ft_transfer_list",PermissionType.I_FT_FILE_UPLOAD_POWER="i_ft_file_upload_power",PermissionType.I_FT_NEEDED_FILE_UPLOAD_POWER="i_ft_needed_file_upload_power",PermissionType.I_FT_FILE_DOWNLOAD_POWER="i_ft_file_download_power",PermissionType.I_FT_NEEDED_FILE_DOWNLOAD_POWER="i_ft_needed_file_download_power",PermissionType.I_FT_FILE_DELETE_POWER="i_ft_file_delete_power",PermissionType.I_FT_NEEDED_FILE_DELETE_POWER="i_ft_needed_file_delete_power",PermissionType.I_FT_FILE_RENAME_POWER="i_ft_file_rename_power",PermissionType.I_FT_NEEDED_FILE_RENAME_POWER="i_ft_needed_file_rename_power",PermissionType.I_FT_FILE_BROWSE_POWER="i_ft_file_browse_power",PermissionType.I_FT_NEEDED_FILE_BROWSE_POWER="i_ft_needed_file_browse_power",PermissionType.I_FT_DIRECTORY_CREATE_POWER="i_ft_directory_create_power",PermissionType.I_FT_NEEDED_DIRECTORY_CREATE_POWER="i_ft_needed_directory_create_power",PermissionType.I_FT_QUOTA_MB_DOWNLOAD_PER_CLIENT="i_ft_quota_mb_download_per_client",PermissionType.I_FT_QUOTA_MB_UPLOAD_PER_CLIENT="i_ft_quota_mb_upload_per_client"}(PermissionType||(PermissionType={}));class PermissionInfo{}class GrantedPermission{constructor(type,value){this.type=type,this.value=value}granted(requiredValue,required=!0){let result=!1;return-2==this.value&&(result=!required),result=-1==this.value||this.value>=requiredValue,log.trace(LogCategory.PERMISSIONS,"Test needed required: %o | %i | %o => "+result,this,requiredValue,required),result}hasValue(){return-2!=this.value}}class NeededGrantedPermission extends GrantedPermission{constructor(type,value){super(type,value),this.changeListener=[]}}class PermissionManager{constructor(client){this.permissionList=[],this.neededPermissions=[],this.initializedListener=[],this.handle=client,this.handle.serverConnection.commandHandler.notifyclientneededpermissions=this.onNeededPermissions.bind(this),this.handle.serverConnection.commandHandler.notifypermissionlist=this.onPermissionList.bind(this)}initialized(){return this.permissionList.length>0}requestPermissionList(){this.handle.serverConnection.sendCommand("permissionlist")}onPermissionList(json){this.permissionList=[];let group=log.group(log.LogType.TRACE,LogCategory.PERMISSIONS,"Permission mapping");for(let e of json){if(e.group_id_end)continue;let perm=new PermissionInfo;perm.name=e.permname,perm.id=parseInt(e.permid),perm.description=e.permdesc,group.log("%i <> %s -> %s",perm.id,perm.name,perm.description),this.permissionList.push(perm)}group.end(),log.info(LogCategory.PERMISSIONS,"Got %i permissions",this.permissionList.length),this._cacheNeededPermissions&&this.onNeededPermissions(this._cacheNeededPermissions);for(let listener of this.initializedListener)listener(!0)}onNeededPermissions(json){if(0==this.permissionList.length)return log.warn(LogCategory.PERMISSIONS,"Got needed permissions but don't have a permission list!"),void(this._cacheNeededPermissions=json);this._cacheNeededPermissions=void 0;let copy=this.neededPermissions.slice(),addcount=0,group=log.group(log.LogType.TRACE,LogCategory.PERMISSIONS,"Got "+json.length+" needed permissions.");for(let e of json){let entry=void 0;for(let p of copy)if(p.type.id==e.permid){entry=p,copy.remove(p);break}if(!entry){let info=this.resolveInfo(e.permid);if(!info){log.warn(LogCategory.PERMISSIONS,"Could not resolve perm for id %s (%o|%o)",e.permid,e,info);continue}entry=new NeededGrantedPermission(info,-2),this.neededPermissions.push(entry),addcount++}if(entry.value!=parseInt(e.permvalue)){entry.value=parseInt(e.permvalue),group.log("Update needed permission "+entry.type.name+" to "+entry.value);for(let listener of entry.changeListener)listener(entry.value)}}group.end(),log.debug(LogCategory.PERMISSIONS,"Dropping "+copy.length+" needed permissions and added "+addcount+" permissions.");for(let e of copy){e.value=-2;for(let listener of e.changeListener)listener(e.value)}}resolveInfo(key){for(let perm of this.permissionList)if(perm.id==key||perm.name==key)return perm}neededPermission(key){for(let perm of this.neededPermissions)if(perm.type.id==key||perm.type.name==key||perm.type==key)return perm;log.debug(LogCategory.PERMISSIONS,"Could not resolve grant permission %o. Creating a new one.",key);let info=key instanceof PermissionInfo?key:this.resolveInfo(key);if(!info)return void log.warn(LogCategory.PERMISSIONS,"Requested needed permission with invalid key! (%o)",key);let result=new NeededGrantedPermission(info,-2);return this.neededPermissions.push(result),result}}!function(GroupType){GroupType[GroupType.QUERY=0]="QUERY",GroupType[GroupType.TEMPLATE=1]="TEMPLATE",GroupType[GroupType.NORMAL=2]="NORMAL"}(GroupType||(GroupType={})),function(GroupTarget){GroupTarget[GroupTarget.SERVER=0]="SERVER",GroupTarget[GroupTarget.CHANNEL=1]="CHANNEL"}(GroupTarget||(GroupTarget={}));class Group{constructor(handle,id,target,type,name){this.properties={iconid:0},this.requiredModifyPower=0,this.requiredMemberAddPower=0,this.requiredMemberRemovePower=0,this.handle=handle,this.id=id,this.target=target,this.type=type,this.name=name}updateProperty(key,value){if(this.properties[key]=value,"iconid"==key){const _this=this;console.log("Icon id "+_this.properties.iconid),this.handle.handle.channelTree.clientsByGroup(this).forEach(client=>{client.updateGroupIcon(_this)})}}}class GroupManager{constructor(client){this.serverGroups=[],this.channelGroups=[],this.handle=client,this.handle.serverConnection.commandHandler.notifyservergrouplist=this.onServerGroupList.bind(this),this.handle.serverConnection.commandHandler.notifychannelgrouplist=this.onServerGroupList.bind(this)}requestGroups(){this.handle.serverConnection.sendCommand("servergrouplist"),this.handle.serverConnection.sendCommand("channelgrouplist")}serverGroup(id){for(let group of this.serverGroups)if(group.id==id)return group}channelGroup(id){for(let group of this.channelGroups)if(group.id==id)return group}onServerGroupList(json){let target;if(json[0].sgid)target=GroupTarget.SERVER;else{if(!json[0].cgid)return void console.error("Could not resolve group target! => "+json[0]);target=GroupTarget.CHANNEL}target==GroupTarget.SERVER?this.serverGroups=[]:this.channelGroups=[];for(let groupData of json){let type;switch(Number.parseInt(groupData.type)){case 0:type=GroupType.TEMPLATE;break;case 1:type=GroupType.NORMAL;break;case 2:type=GroupType.QUERY;break;default:console.error("Invalid group type: "+groupData.type+" for group "+groupData.name);continue}let group=new Group(this,target==GroupTarget.SERVER?groupData.sgid:groupData.cgid,target,type,groupData.name);for(let key in groupData)"sgid"!=key&&"cgid"!=key&&"type"!=key&&"name"!=key&&group.updateProperty(key,groupData[key]);group.requiredMemberRemovePower=groupData.n_member_removep,group.requiredMemberAddPower=groupData.n_member_addp,group.requiredModifyPower=groupData.n_modifyp,target==GroupTarget.SERVER?this.serverGroups.push(group):this.channelGroups.push(group)}console.log("Got "+json.length+" new "+target+" groups:")}}if("undefined"!=typeof customElements){class X_Tab extends HTMLElement{}class X_Entry extends HTMLElement{}class X_Tag extends HTMLElement{}class X_Content extends HTMLElement{}customElements.define("x-tab",X_Tab,{extends:"div"}),customElements.define("x-entry",X_Entry,{extends:"div"}),customElements.define("x-tag",X_Tag,{extends:"div"}),customElements.define("x-content",X_Content,{extends:"div"})}else console.warn("Could not defied tab customElements!");var DisconnectReason,ConnectionState,ViewReasonId,IdentitifyType,TSIdentityHelper,ChatType,MessageHelper,LogCategory,log,Modals,CodecWorkerType,TabFunctions={tabify(template){console.log("Tabify:"),console.log(template);let tag=$.spawn("div");tag.addClass("tab");let header=$.spawn("div");header.addClass("tab-header");let content=$.spawn("div");content.addClass("tab-content");let silentContent=$.spawn("div");return silentContent.addClass("tab-content-invisible"),template.find("x-entry").each(function(){let hentry=$.spawn("div");hentry.addClass("entry"),hentry.append($(this).find("x-tag").clone(!0,!0));const _entryContent=$(this).find("x-content").clone(!0,!0);silentContent.append(_entryContent),hentry.on("click",function(){hentry.hasClass("selected")||(tag.find(".tab-header .selected").removeClass("selected"),hentry.addClass("selected"),content.children().appendTo(silentContent),console.log(silentContent),content.empty(),content.append(_entryContent))}),console.log(this),header.append(hentry)}),header.find(".entry").first().trigger("click"),tag.append(header),tag.append(content),tag.append(silentContent),tag}};$.fn.asTabWidget||($.fn.asTabWidget=function(){if("X-TAB"==$(this).prop("tagName"))return TabFunctions.tabify($(this));throw"Invalid tag! "+$(this).prop("tagName")}),$.fn.tabify||($.fn.tabify=function(){try{let self=this.asTabWidget();this.replaceWith(self)}catch(object){}return this.find("x-tab").each(function(){$(this).replaceWith($(this).asTabWidget())}),this}),function(Modals){Modals.spawnSettingsModal=function(){let modal;(modal=createModal({header:"Settings",body:()=>{let template=$("#tmpl_settings").tmpl();return template=$.spawn("div").append(template),function(modal,tag){!function(modal,tag){let currentVAD=settings.global("vad_type");tag.find('input[type=radio][name="vad_type"]').change(function(){switch(tag.find(".vad_settings .vad_type").text($(this).attr("display")),tag.find(".vad_settings .vad_type_settings").hide(),tag.find(".vad_settings .vad_type_"+this.value).show(),settings.changeGlobal("vad_type",this.value),globalClient.voiceConnection.voiceRecorder.reinitialiseVAD(),this.value){case"ppt":let keyCode=parseInt(settings.global("vad_ppt_key",84..toString()));tag.find(".vat_ppt_key").text(String.fromCharCode(keyCode));break;case"vad":let slider=tag.find(".vad_vad_slider"),vad=globalClient.voiceConnection.voiceRecorder.getVADHandler();slider.val(vad.percentageThreshold),slider.trigger("change"),globalClient.voiceConnection.voiceRecorder.update(!0),vad.percentage_listener=(per=>{tag.find(".vad_vad_bar_filler").css("width",per+"%")})}}),currentVAD||(currentVAD="ppt");let elm=tag.find('input[type=radio][name="vad_type"][value="'+currentVAD+'"]');elm.attr("checked","true"),tag.find(".vat_ppt_key").click(function(){let modal=createModal({body:"",header:()=>{let head=$.spawn("div");return head.text("Type the key you wish"),head.css("background-color","blue"),head},footer:""});$(document).one("keypress",function(e){console.log("Got key "+e.keyCode),modal.close(),settings.changeGlobal("vad_ppt_key",e.keyCode.toString()),globalClient.voiceConnection.voiceRecorder.reinitialiseVAD(),tag.find(".vat_ppt_key").text(String.fromCharCode(e.keyCode))}),modal.open()});let slider=tag.find(".vad_vad_slider");slider.on("input change",()=>{settings.changeGlobal("vad_threshold",slider.val().toString());let vad=globalClient.voiceConnection.voiceRecorder.getVADHandler();vad instanceof VoiceActivityDetectorVAD&&(vad.percentageThreshold=slider.val()),tag.find(".vad_vad_slider_value").text(slider.val().toString())}),modal.properties.registerCloseListener(()=>{let vad=globalClient.voiceConnection.voiceRecorder.getVADHandler();vad instanceof VoiceActivityDetectorVAD&&(vad.percentage_listener=void 0)}),elm.trigger("change"),console.log(tag);let mselect=tag.find(".voice_microphone_select");console.log(mselect);let mselectError=tag.find(".voice_microphone_select_error");navigator.mediaDevices.enumerateDevices().then(devices=>{let currentDeviceId,currentStream=globalClient.voiceConnection.voiceRecorder.getMediaStream();if(currentStream){let audio=currentStream.getAudioTracks()[0];currentDeviceId=audio.getSettings().deviceId}console.log("Got "+devices.length+" devices:");for(let device of devices)if(console.log(device),"audioinput"==device.kind){let dtag=$.spawn("option");dtag.attr("device-id",device.deviceId),dtag.attr("device-group",device.groupId),dtag.text(device.label),mselect.append(dtag),currentDeviceId&&device.deviceId==currentDeviceId&&mselect.attr("selected","")}}).catch(error=>{console.error("Could not enumerate over devices!"),console.error(error),mselectError.text("Could not get device list!").show()}),mselect.change(event=>{let deviceSelected=mselect.find("option:selected"),deviceId=deviceSelected.attr("device-id");console.log("Selected device: "+deviceId),globalClient.voiceConnection.voiceRecorder.changeDevice(deviceId)})}(modal,tag.find(".settings_voice"))}(modal,template=template.tabify()),template},footer:()=>{let footer=$.spawn("div");footer.addClass("modal-button-group"),footer.css("margin-top","5px"),footer.css("margin-bottom","5px"),footer.css("text-align","right");let buttonOk=$.spawn("button");return buttonOk.text("Ok"),buttonOk.click(()=>modal.close()),footer.append(buttonOk),footer},width:750})).open()}}(Modals||(Modals={}));class ControlBar{constructor(handle,htmlTag){this.handle=handle,this.htmlTag=htmlTag}initialise(){this.htmlTag.find(".btn_connect").click(this.onConnect.bind(this)),this.htmlTag.find(".btn_client_away").click(this.onAway.bind(this)),this.htmlTag.find(".btn_mute_input").click(this.onInputMute.bind(this)),this.htmlTag.find(".btn_mute_output").click(this.onOutputMute.bind(this)),this.htmlTag.find(".btn_open_settings").click(this.onOpenSettings.bind(this)),this.muteInput="1"==settings.global("mute_input"),this.muteOutput="1"==settings.global("mute_output")}onAway(){this.away=!this._away}onInputMute(){this.muteInput=!this._muteInput}onOutputMute(){this.muteOutput=!this._muteOutput}set muteInput(flag){if(this._muteInput==flag)return;this._muteInput=flag;let tag=this.htmlTag.find(".btn_mute_input");flag?(tag.hasClass("activated")||tag.addClass("activated"),tag.find(".icon_x32").attr("class","icon_x32 client-input_muted")):(tag.hasClass("activated")&&tag.removeClass("activated"),tag.find(".icon_x32").attr("class","icon_x32 client-capture")),this.handle.serverConnection.connected&&this.handle.serverConnection.sendCommand("clientupdate",{client_input_muted:this._muteInput}),settings.changeGlobal("mute_input",this._muteInput),this.updateMicrophoneRecordState()}get muteOutput(){return this._muteOutput}set muteOutput(flag){if(this._muteOutput==flag)return;this._muteOutput=flag;let tag=this.htmlTag.find(".btn_mute_output");flag?(tag.hasClass("activated")||tag.addClass("activated"),tag.find(".icon_x32").attr("class","icon_x32 client-output_muted")):(tag.hasClass("activated")&&tag.removeClass("activated"),tag.find(".icon_x32").attr("class","icon_x32 client-volume")),this.handle.serverConnection.connected&&this.handle.serverConnection.sendCommand("clientupdate",{client_output_muted:this._muteOutput}),settings.changeGlobal("mute_output",this._muteOutput),this.updateMicrophoneRecordState()}set away(value){if("boolean"==typeof value){if(this._away==value)return;this._away=value,this._awayMessage=""}else this._awayMessage=value,this._away=!0;let tag=this.htmlTag.find(".btn_client_away");this._away?tag.hasClass("activated")||tag.addClass("activated"):tag.hasClass("activated")&&tag.removeClass("activated"),this.handle.serverConnection.connected&&this.handle.serverConnection.sendCommand("clientupdate",{client_away:this._away,client_away_message:this._awayMessage}),this.updateMicrophoneRecordState()}updateMicrophoneRecordState(){let enabled=!this._muteInput&&!this._muteOutput&&!this._away;this.handle.voiceConnection.voiceRecorder.update(enabled)}updateProperties(){this.handle.serverConnection.connected&&this.handle.serverConnection.sendCommand("clientupdate",{client_input_muted:this._muteInput,client_output_muted:this._muteOutput,client_away:this._away,client_away_message:this._awayMessage})}onOpenSettings(){Modals.spawnSettingsModal()}onConnect(){Modals.spawnConnectModal(settings.static("connect_default_host","ts.TeaSpeak.de"))}}!function(DisconnectReason){DisconnectReason[DisconnectReason.REQUESTED=0]="REQUESTED",DisconnectReason[DisconnectReason.CONNECT_FAILURE=1]="CONNECT_FAILURE",DisconnectReason[DisconnectReason.CONNECTION_CLOSED=2]="CONNECTION_CLOSED",DisconnectReason[DisconnectReason.CONNECTION_FATAL_ERROR=3]="CONNECTION_FATAL_ERROR",DisconnectReason[DisconnectReason.CONNECTION_PING_TIMEOUT=4]="CONNECTION_PING_TIMEOUT",DisconnectReason[DisconnectReason.CLIENT_KICKED=5]="CLIENT_KICKED",DisconnectReason[DisconnectReason.CLIENT_BANNED=6]="CLIENT_BANNED",DisconnectReason[DisconnectReason.SERVER_CLOSED=7]="SERVER_CLOSED",DisconnectReason[DisconnectReason.UNKNOWN=8]="UNKNOWN"}(DisconnectReason||(DisconnectReason={})),function(ConnectionState){ConnectionState[ConnectionState.UNCONNECTED=0]="UNCONNECTED",ConnectionState[ConnectionState.CONNECTING=1]="CONNECTING",ConnectionState[ConnectionState.INITIALISING=2]="INITIALISING",ConnectionState[ConnectionState.CONNECTED=3]="CONNECTED",ConnectionState[ConnectionState.DISCONNECTING=4]="DISCONNECTING"}(ConnectionState||(ConnectionState={})),function(ViewReasonId){ViewReasonId[ViewReasonId.VREASON_USER_ACTION=0]="VREASON_USER_ACTION",ViewReasonId[ViewReasonId.VREASON_MOVED=1]="VREASON_MOVED",ViewReasonId[ViewReasonId.VREASON_SYSTEM=2]="VREASON_SYSTEM",ViewReasonId[ViewReasonId.VREASON_TIMEOUT=3]="VREASON_TIMEOUT",ViewReasonId[ViewReasonId.VREASON_CHANNEL_KICK=4]="VREASON_CHANNEL_KICK",ViewReasonId[ViewReasonId.VREASON_SERVER_KICK=5]="VREASON_SERVER_KICK",ViewReasonId[ViewReasonId.VREASON_BAN=6]="VREASON_BAN",ViewReasonId[ViewReasonId.VREASON_SERVER_STOPPED=7]="VREASON_SERVER_STOPPED",ViewReasonId[ViewReasonId.VREASON_SERVER_LEFT=8]="VREASON_SERVER_LEFT",ViewReasonId[ViewReasonId.VREASON_CHANNEL_UPDATED=9]="VREASON_CHANNEL_UPDATED",ViewReasonId[ViewReasonId.VREASON_EDITED=10]="VREASON_EDITED",ViewReasonId[ViewReasonId.VREASON_SERVER_SHUTDOWN=11]="VREASON_SERVER_SHUTDOWN"}(ViewReasonId||(ViewReasonId={}));class TSClient{constructor(){this._clientId=0,this.selectInfo=new InfoBar(this,$("#select_info")),this.channelTree=new ChannelTree(this,$("#channelTree")),this.serverConnection=new ServerConnection(this),this.fileManager=new FileManager(this),this.permissions=new PermissionManager(this),this.groups=new GroupManager(this),this.voiceConnection=new VoiceConnection(this),this._ownEntry=new LocalClientEntry(this),this.controlBar=new ControlBar(this,$("#control_bar")),this.channelTree.registerClient(this._ownEntry)}setup(){this.controlBar.initialise()}startConnection(addr,identity,name){this.serverConnection&&this.handleDisconnect(DisconnectReason.REQUESTED);let port,host,idx=addr.lastIndexOf(":");-1!=idx?(port=parseInt(addr.substr(idx+1)),host=addr.substr(0,idx)):(host=addr,port=9987),console.log("Start connection to "+host+":"+port),this.channelTree.initialiseHead(addr),this.serverConnection.startConnection(host,port,new HandshakeHandler(identity,name))}getClient(){return this._ownEntry}getClientId(){return this._clientId}set clientId(id){this._clientId=id,this._ownEntry._clientId=id}get clientId(){return this._clientId}getServerConnection(){return this.serverConnection}onConnected(){console.log("Client connected!"),this.channelTree.registerClient(this._ownEntry),settings.setServer(this.channelTree.server),this.permissions.requestPermissionList(),this.serverConnection.sendCommand("channelsubscribeall"),0==this.groups.serverGroups.length&&this.groups.requestGroups(),this.controlBar.updateProperties()}get connected(){return!!this.serverConnection&&this.serverConnection.connected}handleDisconnect(type,data={}){switch(type){case DisconnectReason.REQUESTED:break;case DisconnectReason.CONNECT_FAILURE:console.error("Could not connect to remote host! Exception"),console.error(data),createErrorModal("Could not connect","Could not connect to remote host (Connection refused)
If you're shure that the remot host is up, than you may not allow unsigned certificates.
Click here to accept the remote certificate").open();break;case DisconnectReason.CONNECTION_CLOSED:console.error("Lost connection to remote server!"),createErrorModal("Connection closed","The connection was closed by remote host").open();break;case DisconnectReason.CONNECTION_PING_TIMEOUT:console.error("Connection ping timeout"),createErrorModal("Connection lost","Lost connection to remote host (Ping timeout)
Even possible?").open();break;case DisconnectReason.SERVER_CLOSED:chat.serverChat().appendError("Server closed ({0})",data.reasonmsg),createErrorModal("Server closed","The server is closed.
Reason: "+data.reasonmsg).open();break;default:console.error("Got uncaught disconnect!"),console.error("Type: "+type+" Data:"),console.error(data)}this.selectInfo.currentSelected=null,this.channelTree.reset(),this.voiceConnection.dropSession(),this.serverConnection&&this.serverConnection.disconnect()}}class FileEntry{}class FileListRequest{}class DownloadFileTransfer{constructor(handle,id){this.currentSize=0,this.on_start=(()=>{}),this.on_complete=(()=>{}),this.on_fail=(_=>{}),this.on_data=(_=>{}),this.transferId=id,this._handle=handle}startTransfer(){this.remoteHost&&this.remotePort&&this.transferKey&&this.totalSize?(console.debug("Create new file download to "+this.remoteHost+":"+this.remotePort+" (Key: "+this.transferKey+", Expect "+this.totalSize+" bytes)"),this._active=!0,this._socket=new WebSocket("wss://"+this.remoteHost+":"+this.remotePort),this._socket.onopen=this.onOpen.bind(this),this._socket.onclose=this.onClose.bind(this),this._socket.onmessage=this.onMessage.bind(this),this._socket.onerror=this.onError.bind(this)):this.on_fail("Missing data!")}onOpen(){this._active&&(this._socket.send(this.transferKey),this.on_start())}onMessage(data){if(!this._active)return void console.error("Got data, but socket closed?");this._parseActive=!0;let fileReader=new FileReader;fileReader.onload=(event=>{this.onBinaryData(new Uint8Array(event.target.result)),this._parseActive=!1}),fileReader.readAsArrayBuffer(data.data)}onBinaryData(data){this.currentSize+=data.length,this.on_data(data),this.currentSize==this.totalSize&&(this._succeed=!0,this.on_complete(),this.disconnect())}onError(){this._active&&(this.on_fail("an error occurent"),this.disconnect())}onClose(){this._active&&(this._parseActive||this.on_fail("unexpected close (remote closed)"),this.disconnect())}disconnect(){this._active=!1}}class FileManager{constructor(client){this.listRequests=[],this.pendingDownloadTransfers=[],this.downloadCounter=0,this.handle=client,this.icons=new IconManager(this),this.avatars=new AvatarManager(this),this.handle.serverConnection.commandHandler.notifyfilelist=this.notifyFileList.bind(this),this.handle.serverConnection.commandHandler.notifyfilelistfinished=this.notifyFileListFinished.bind(this),this.handle.serverConnection.commandHandler.notifystartdownload=this.notifyStartDownload.bind(this)}requestFileList(path,channel,password){const _this=this;return new Promise((accept,reject)=>{let req=new FileListRequest;req.path=path,req.entries=[],req.callback=accept,_this.listRequests.push(req),_this.handle.serverConnection.sendCommand("ftgetfilelist",{path:path,cid:channel?channel.channelId:"0",cpw:password||""}).then(()=>{}).catch(reason=>{_this.listRequests.remove(req),reason instanceof CommandResult&&1281==reason.id?accept([]):reject(reason)})})}notifyFileList(json){let entry=void 0;for(let e of this.listRequests)if(e.path==json[0].path){entry=e;break}if(entry)for(let e of json)entry.entries.push(e);else console.error("Invalid file list entry. Path: "+json[0].path)}notifyFileListFinished(json){let entry=void 0;for(let e of this.listRequests)if(e.path==json[0].path){entry=e,this.listRequests.remove(e);break}entry?entry.callback(entry.entries):console.error("Invalid file list entry finish. Path: "+json[0].path)}requestFileDownload(path,file,channel,password){const _this=this;let transfer=new DownloadFileTransfer(this,this.downloadCounter++);return this.pendingDownloadTransfers.push(transfer),new Promise((resolve,reject)=>{transfer._promiseCallback=resolve,_this.handle.serverConnection.sendCommand("ftinitdownload",{path:path,name:file,cid:channel?channel.channelId:"0",cpw:password||"",clientftfid:transfer.transferId}).catch(reason=>{_this.pendingDownloadTransfers.remove(transfer),reject(reason)})})}notifyStartDownload(json){let transfer;json=json[0];for(let e of this.pendingDownloadTransfers)if(e.transferId==json.clientftfid){transfer=e;break}transfer.serverTransferId=json.serverftfid,transfer.transferKey=json.ftkey,transfer.totalSize=json.size,transfer.remotePort=json.port,transfer.remoteHost=json.ip.replace(/,/g,""),"0.0.0.0"!=transfer.remoteHost&&"127.168.0.0"!=transfer.remoteHost||(transfer.remoteHost=this.handle.serverConnection._remoteHost),transfer._promiseCallback(transfer),this.pendingDownloadTransfers.remove(transfer)}}class Icon{}class IconManager{constructor(handle){this.handle=handle}iconList(){return this.handle.requestFileList("/icons")}downloadIcon(id){return this.handle.requestFileDownload("","/icon_"+id)}resolveCached(id){let icon=localStorage.getItem("icon_"+id);if(icon){let i=JSON.parse(icon);if(i.base64.length>0)return i}}loadIcon(id){const _this=this;return new Promise((resolve,reject)=>{let icon=this.resolveCached(id);icon?resolve(icon):_this.downloadIcon(id).then(ft=>{let array=new Uint8Array(0);ft.on_fail=(reason=>{console.error("Could not download icon "+id+" -> "+reason),chat.serverChat().appendError("Fail to download icon {0}. ({1})",id,JSON.stringify(reason)),reject(reason)}),ft.on_start=(()=>{}),ft.on_data=(data=>{array=concatenate(Uint8Array,array,data)}),ft.on_complete=(()=>{let base64=btoa(String.fromCharCode.apply(null,array)),icon=new Icon;icon.base64=base64,icon.id=id,icon.name="icon_"+id,localStorage.setItem("icon_"+id,JSON.stringify(icon)),resolve(icon)}),ft.startTransfer()}).catch(reason=>{console.error("Error while downloading icon! ("+JSON.stringify(reason)+")"),chat.serverChat().appendError("Failed to request download for icon {0}. ({1})",id,JSON.stringify(reason)),reject(reason)})})}generateTag(id){if(0==id)return $("
");if(id<1e3)return $("
");let tag=$.spawn("div");tag.addClass("icon_empty");let img=$.spawn("img");img.attr("width",16).attr("height",16).attr("alt","");let icon=this.resolveCached(id);if(icon)img.attr("src","data:image/png;base64,"+icon.base64),tag.append(img);else{img.attr("src","file://null");let loader=$.spawn("div");loader.addClass("icon_loading"),tag.append(loader),this.loadIcon(id).then(icon=>{img.attr("src","data:image/png;base64,"+icon.base64),console.debug("Icon "+id+" loaded :)"),img.css("opacity",0),tag.append(img),loader.animate({opacity:0},50,function(){$(this).detach(),img.animate({opacity:1},150)})}).catch(reason=>{console.error("Could not load icon "+id+". Reason: "+reason),loader.removeClass("icon_loading").addClass("icon client-warning").attr("tag","Could not load icon "+id)})}return tag}}class Avatar{}class AvatarManager{constructor(handle){this.handle=handle}downloadAvatar(client){return this.handle.requestFileDownload("","/avatar_"+client.avatarId())}resolveCached(client){let avatar=localStorage.getItem("avatar_"+client.properties.client_unique_identifier);if(avatar){let i=JSON.parse(avatar);if(i.base64.length>0&&i.avatarId==client.properties.client_flag_avatar)return i}}loadAvatar(client){const _this=this;return new Promise((resolve,reject)=>{let avatar=this.resolveCached(client);avatar?resolve(avatar):_this.downloadAvatar(client).then(ft=>{let array=new Uint8Array(0);ft.on_fail=(reason=>{console.error("Could not download avatar "+client.properties.client_flag_avatar+" -> "+reason),chat.serverChat().appendError("Fail to download avatar for {0}. ({1})",client.clientNickName(),JSON.stringify(reason)),reject(reason)}),ft.on_start=(()=>{}),ft.on_data=(data=>{array=concatenate(Uint8Array,array,data)}),ft.on_complete=(()=>{let base64=btoa(String.fromCharCode.apply(null,array)),avatar=new Avatar;avatar.base64=base64,avatar.clientUid=client.clientUid(),avatar.avatarId=client.properties.client_flag_avatar,localStorage.setItem("avatar_"+client.properties.client_unique_identifier,JSON.stringify(avatar)),resolve(avatar)}),ft.startTransfer()}).catch(reason=>{console.error("Error while downloading avatar! ("+JSON.stringify(reason)+")"),chat.serverChat().appendError("Failed to request avatar download for {0}. ({1})",client.clientNickName(),JSON.stringify(reason)),reject(reason)})})}generateTag(client){let tag=$.spawn("div"),img=$.spawn("img");img.attr("alt","");let avatar=this.resolveCached(client);avatar=void 0;{let loader=$.spawn("img");loader.attr("src","img/loading_image.svg").css("width","75%"),tag.append(loader),this.loadAvatar(client).then(avatar=>{img.attr("src","data:image/png;base64,"+avatar.base64),console.debug("Avatar "+client.clientNickName()+" loaded :)"),img.css("opacity",0),tag.append(img),loader.animate({opacity:0},50,function(){$(this).detach(),img.animate({opacity:1},150)})}).catch(reason=>{console.error("Could not load avatar for "+client.clientNickName()+". Reason: "+reason),loader.addClass("icon client-warning").attr("tag","Could not load avatar "+client.clientNickName())})}return tag}}!function(IdentitifyType){IdentitifyType[IdentitifyType.TEAFORO=0]="TEAFORO",IdentitifyType[IdentitifyType.TEAMSPEAK=1]="TEAMSPEAK"}(IdentitifyType||(IdentitifyType={})),function(TSIdentityHelper){var Pointer_stringify=Module.Pointer_stringify;let functionLastError,functionDestroyString,functionDestroyIdentity;function unwarpString(str){if(""==str)return"";let message=Pointer_stringify(str);return functionDestroyString(str),message}TSIdentityHelper.setup=function(){return functionDestroyString=Module.cwrap("destroy_string","pointer",[]),functionLastError=Module.cwrap("last_error_message",null,["string"]),TSIdentityHelper.funcationParseIdentity=Module.cwrap("parse_identity","pointer",["string"]),TSIdentityHelper.funcationParseIdentityByFile=Module.cwrap("parse_identity_file","pointer",["string"]),functionDestroyIdentity=Module.cwrap("delete_identity",null,["pointer"]),TSIdentityHelper.funcationCalculateSecurityLevel=Module.cwrap("identity_security_level","pointer",["pointer"]),TSIdentityHelper.funcationExportIdentity=Module.cwrap("identity_export","pointer",["pointer"]),TSIdentityHelper.funcationPublicKey=Module.cwrap("identity_key_public","pointer",["pointer"]),TSIdentityHelper.funcationSignMessage=Module.cwrap("identity_sign","pointer",["pointer","string","number"]),TSIdentityHelper.functionUid=Module.cwrap("identity_uid","pointer",["pointer"]),0==Module.cwrap("tomcrypt_initialize","number",[])()},TSIdentityHelper.last_error=function(){return unwarpString(functionLastError())},TSIdentityHelper.unwarpString=unwarpString,TSIdentityHelper.loadIdentity=function(key){let handle=TSIdentityHelper.funcationParseIdentity(key);if(handle)return new TeamSpeakIdentity(handle,"TeaWeb user")},TSIdentityHelper.loadIdentityFromFileContains=function(contains){let handle=TSIdentityHelper.funcationParseIdentityByFile(contains);if(handle)return new TeamSpeakIdentity(handle,"TeaWeb user")}}(TSIdentityHelper||(TSIdentityHelper={}));class TeamSpeakIdentity{constructor(handle,name){this.handle=handle,this._name=name}securityLevel(){return parseInt(TSIdentityHelper.unwarpString(TSIdentityHelper.funcationCalculateSecurityLevel(this.handle)))}name(){return this._name}uid(){return TSIdentityHelper.unwarpString(TSIdentityHelper.functionUid(this.handle))}type(){return IdentitifyType.TEAMSPEAK}signMessage(message){return TSIdentityHelper.unwarpString(TSIdentityHelper.funcationSignMessage(this.handle,message,message.length))}exported(){return TSIdentityHelper.unwarpString(TSIdentityHelper.funcationExportIdentity(this.handle))}publicKey(){return TSIdentityHelper.unwarpString(TSIdentityHelper.funcationPublicKey(this.handle))}}class TeaForumIdentity{constructor(data,sign){this.identityDataJson=data,this.identityData=JSON.parse(this.identityDataJson),this.identitySign=sign}name(){return this.identityData.user_name}uid(){return"TeaForo#"+this.identityData.user_id}type(){return IdentitifyType.TEAFORO}}!function(ChatType){ChatType[ChatType.GENERAL=0]="GENERAL",ChatType[ChatType.SERVER=1]="SERVER",ChatType[ChatType.CHANNEL=2]="CHANNEL",ChatType[ChatType.CLIENT=3]="CLIENT"}(ChatType||(ChatType={})),function(MessageHelper){MessageHelper.htmlEscape=function(message){const div=document.createElement("div");return div.innerText=message,(message=div.innerHTML).replace(/ /g," ")},MessageHelper.formatElement=function(object){if($.isArray(object)){let result=[];for(let element of object)result.push(...this.formatElement(element));return result}return"string"==typeof object?0==object.length?[]:[$.spawn("a").html(this.htmlEscape(object))]:"object"==typeof object?object instanceof jQuery?[object]:this.formatElement(""):"function"==typeof object?this.formatElement(object()):void 0===object?this.formatElement(""):this.formatElement("")},MessageHelper.formatMessage=function(pattern,...objects){let begin=0,found=0,result=[];do{if(-1==(found=pattern.indexOf("{",found))||pattern.length<=found+1){result.push(...this.formatElement(pattern.substr(begin)));break}if(found>0&&"\\"==pattern[found-1]){found++;continue}let number;result.push(...this.formatElement(pattern.substr(begin,found-begin)));let offset=0;for(;"0123456789".includes(pattern[found+1+offset]);)offset++;number=parseInt(offset>0?pattern.substr(found+1,offset):"0"),"}"==pattern[found+offset+1]?(objects.length "),dateTag.css("margin-right","4px"),dateTag.css("color","dodgerblue"),this._htmlTag=tag,tag.append(dateTag),this.message.forEach(e=>e.appendTo(tag)),tag.hide(),tag}}class ChatEntry{constructor(handle,type,key){this.handle=handle,this.type=type,this.key=key,this._name=key,this.history=[],this.onClose=function(){return!0}}appendError(message,...args){let entries=MessageHelper.formatMessage(message,...args);entries.forEach(e=>e.css("color","red")),this.pushChatMessage(new ChatMessage(entries))}appendMessage(message,fmt=!0,...args){this.pushChatMessage(new ChatMessage(MessageHelper.formatMessage(message,...args)))}pushChatMessage(entry){for(this.history.push(entry);this.history.length>100;){this.history.pop_front().htmlTag.animate({opacity:0},200,function(){$(this).detach()})}if(this.handle.activeChat===this){let box=$(this.handle.htmlTag).find(".messages"),mbox=$(this.handle.htmlTag).find(".message_box"),bottom=box.scrollTop()+box.height()+1>=mbox.height();mbox.append(entry.htmlTag),entry.htmlTag.show().css("opacity","0").animate({opacity:1},100),bottom&&box.scrollTop(mbox.height())}else this.unread=!0}displayHistory(){this.unread=!1;let box=$(this.handle.htmlTag).find(".messages"),mbox=$(this.handle.htmlTag).find(".message_box");mbox.empty();for(let e of this.history)mbox.append(e.htmlTag),e.htmlTag.is(":hidden")&&e.htmlTag.show();box.scrollTop(mbox.height())}get htmlTag(){if(this._htmlTag)return this._htmlTag;let tag=$.spawn("div");tag.addClass("chat"),tag.append('
'),tag.append(""+this._name+"");let closeTag=$.spawn("div");closeTag.addClass("btn_close icon client-tab_close_button"),this._closeable||closeTag.hide(),tag.append(closeTag);const _this=this;return tag.click(function(){_this.handle.activeChat=_this}),tag.on("contextmenu",function(e){e.preventDefault();let actions=[];actions.push({type:MenuEntryType.ENTRY,icon:"",name:"Clear",callback:()=>{_this.history=[],_this.displayHistory()}}),_this.closeable&&actions.push({type:MenuEntryType.ENTRY,icon:"client-tab_close_button",name:"Close",callback:()=>{chat.deleteChat(_this)}}),actions.push({type:MenuEntryType.ENTRY,icon:"client-tab_close_button",name:"Close all private tabs",callback:()=>{}}),spawnMenu(e.pageX,e.pageY,...actions)}),closeTag.click(function(){$.isFunction(_this.onClose)&&!_this.onClose()||_this.handle.deleteChat(_this)}),this._htmlTag=tag,tag}set name(newName){console.log("Change name!"),this._name=newName,this.htmlTag.find(".name").text(this._name)}set closeable(flag){this._closeable!=flag&&(this._closeable=flag,console.log("Set closeable: "+this._closeable),flag?this.htmlTag.find(".btn_close").show():this.htmlTag.find(".btn_close").hide())}set unread(flag){this._unread!=flag&&(this._unread=flag,this.htmlTag.find(".chatIcon").attr("class","chatIcon icon clicon "+this.chatIcon()),flag?this.htmlTag.find(".name").css("color","blue"):this.htmlTag.find(".name").css("color","black"))}chatIcon(){if(this._unread)switch(this.type){case ChatType.CLIENT:return"client-new_chat"}switch(this.type){case ChatType.SERVER:return"client-server_log";case ChatType.CHANNEL:return"client-channel_chat";case ChatType.CLIENT:return"client-player_chat";case ChatType.GENERAL:return"client-channel_chat"}return""}}class ChatBox{constructor(htmlTag){this.htmlTag=htmlTag,this.htmlTag.find(".input button").click(this.onSend.bind(this)),this.htmlTag.find(".input_box").keypress(event=>{if(13==event.keyCode&&!event.shiftKey)return this.onSend(),!1}).on("input",event=>{let text=$(event.target).val().toString();this.testMessage(text)?this.htmlTag.find(".input button").removeAttr("disabled"):this.htmlTag.find(".input button").attr("disabled","true")}).trigger("input"),this.chats=[],this._activeChat=void 0,this.createChat("chat_server",ChatType.SERVER).onMessageSend=(text=>{globalClient.serverConnection?globalClient.serverConnection.sendMessage(text,ChatType.SERVER):chat.serverChat().appendError("Could not send chant message (Not connected)")}),this.createChat("chat_channel",ChatType.CHANNEL).onMessageSend=(text=>{globalClient.serverConnection?globalClient.serverConnection.sendMessage(text,ChatType.CHANNEL,globalClient.getClient().currentChannel()):chat.channelChat().appendError("Could not send chant message (Not connected)")}),globalClient.permissions.initializedListener.push(flag=>{flag&&this.activeChat0(this._activeChat)})}createChat(key,type=ChatType.CLIENT){let chat=new ChatEntry(this,type,key);return this.chats.push(chat),this.htmlTag.find(".chats").append(chat.htmlTag),this._activeChat||(this.activeChat=chat),chat}findChat(key){for(let e of this.chats)if(e.key==key)return e}deleteChat(chat){this.chats.remove(chat),chat.htmlTag.detach(),this._activeChat===chat&&(this.chats.length>0?this.activeChat=this.chats.last():this.activeChat=void 0)}onSend(){let textBox=$(this.htmlTag).find(".input_box"),text=textBox.val().toString();this.testMessage(text)&&(textBox.val(""),$(this.htmlTag).find(".input_box").trigger("input"),this._activeChat&&$.isFunction(this._activeChat.onMessageSend)&&this._activeChat.onMessageSend(text))}set activeChat(chat){-1!==this.chats.indexOf(chat)&&this._activeChat!=chat&&this.activeChat0(chat)}activeChat0(chat){this._activeChat=chat;for(let e of this.chats)e.htmlTag.removeClass("active");let flagAllowSend=!1;if(this._activeChat&&(this._activeChat.htmlTag.addClass("active"),this._activeChat.displayHistory(),globalClient&&globalClient.permissions&&globalClient.permissions.initialized()))switch(this._activeChat.type){case ChatType.CLIENT:flagAllowSend=!0;break;case ChatType.SERVER:flagAllowSend=globalClient.permissions.neededPermission(PermissionType.B_CLIENT_SERVER_TEXTMESSAGE_SEND).granted(1);break;case ChatType.CHANNEL:flagAllowSend=globalClient.permissions.neededPermission(PermissionType.B_CLIENT_CHANNEL_TEXTMESSAGE_SEND).granted(1)}this.htmlTag.find(".input_box").prop("disabled",!flagAllowSend)}get activeChat(){return this._activeChat}channelChat(){return this.findChat("chat_channel")}serverChat(){return this.findChat("chat_server")}focus(){$(this.htmlTag).find(".input_box").focus()}testMessage(message){return(message=message.replace(/ /gi,"").replace(/
/gi,"").replace(/\n/gi,"").replace(//gi,"")).length>0}}!function(LogCategory){LogCategory[LogCategory.CHANNEL=0]="CHANNEL",LogCategory[LogCategory.CLIENT=1]="CLIENT",LogCategory[LogCategory.PERMISSIONS=2]="PERMISSIONS",LogCategory[LogCategory.GENERAL=3]="GENERAL",LogCategory[LogCategory.NETWORKING=4]="NETWORKING"}(LogCategory||(LogCategory={})),function(log_1){let LogType;!function(LogType){LogType[LogType.TRACE=0]="TRACE",LogType[LogType.DEBUG=1]="DEBUG",LogType[LogType.INFO=2]="INFO",LogType[LogType.WARNING=3]="WARNING",LogType[LogType.ERROR=4]="ERROR"}(LogType=log_1.LogType||(log_1.LogType={}));let category_mapping=new Map([[LogCategory.CHANNEL,"Channel "],[LogCategory.CLIENT,"Client "],[LogCategory.PERMISSIONS,"Permission "],[LogCategory.GENERAL,"General "],[LogCategory.NETWORKING,"Network "]]);function logDirect(type,message,...optionalParams){switch(type){case LogType.TRACE:case LogType.DEBUG:console.debug(message,...optionalParams);break;case LogType.INFO:console.log(message,...optionalParams);break;case LogType.WARNING:console.warn(message,...optionalParams);break;case LogType.ERROR:console.error(message,...optionalParams)}}function log(type,category,message,...optionalParams){optionalParams.unshift(category_mapping.get(category)),logDirect(type,message="[%s] "+message,...optionalParams)}log_1.log=log,log_1.trace=function(category,message,...optionalParams){log(LogType.TRACE,category,message,...optionalParams)},log_1.debug=function(category,message,...optionalParams){log(LogType.DEBUG,category,message,...optionalParams)},log_1.info=function(category,message,...optionalParams){log(LogType.INFO,category,message,...optionalParams)},log_1.warn=function(category,message,...optionalParams){log(LogType.WARNING,category,message,...optionalParams)},log_1.error=function(category,message,...optionalParams){log(LogType.ERROR,category,message,...optionalParams)},log_1.group=function(level,category,name,...optionalParams){return name="[%s] "+name,optionalParams.unshift(category_mapping.get(category)),new Group(level,category,name,optionalParams)};class Group{constructor(level,category,name,optionalParams,owner){this.owner=void 0,this._collapsed=!0,this.initialized=!1,this.level=level,this.category=category,this.name=name,this.optionalParams=optionalParams}group(level,name,...optionalParams){return new Group(level,this.category,name,optionalParams,this)}collapsed(flag=!0){return this._collapsed=flag,this}log(message,...optionalParams){return this.initialized||(this._collapsed&&console.groupCollapsed?console.groupCollapsed(this.name,...this.optionalParams):console.group(this.name,...this.optionalParams),this.initialized=!0),logDirect(this.level,message,...optionalParams),this}end(){this.initialized&&console.groupEnd()}}log_1.Group=Group}(log||(log={})),function(Modals){Modals.spawnConnectModal=function(defaultHost="ts.TeaSpeak.de"){let connectIdentity;const connectModal=createModal({header:function(){let header=$.spawn("div");return header.text("Create a new connection"),header},body:function(){let tag=$("#tmpl_connect").contents().clone(),updateFields=function(){connectIdentity?tag.find(".connect_nickname").attr("placeholder",connectIdentity.name()):tag.find(".connect_nickname").attr("");let button=tag.parents(".modal-content").find(".connect_connect_button"),field_address=tag.find(".connect_address"),address=field_address.val().toString(),flag_address=!!address.match(Regex.IP_V4)||!!address.match(Regex.DOMAIN),field_nickname=tag.find(".connect_nickname"),nickname=field_nickname.val().toString(),flag_nickname=0==nickname.length||nickname.length>=3&&nickname.length<=32;flag_address?field_address.hasClass("invalid_input")&&field_address.removeClass("invalid_input"):field_address.hasClass("invalid_input")||field_address.addClass("invalid_input"),flag_nickname?field_nickname.hasClass("invalid_input")&&field_nickname.removeClass("invalid_input"):field_nickname.hasClass("invalid_input")||field_nickname.addClass("invalid_input"),flag_nickname&&flag_address&&connectIdentity?button.removeAttr("disabled"):button.attr("disabled","true")};return tag.find(".connect_address").val(defaultHost),tag.find(".connect_address").on("keyup",()=>updateFields()),tag.find(".connect_nickname").on("keyup",()=>updateFields()),tag.find(".identity_select").on("change",function(){settings.changeGlobal("connect_identity_type",this.value),tag.find(".error_message").hide(),tag.find(".identity_config:not(.identity_config_"+this.value+")").hide(),tag.find(".identity_config_"+this.value).show().trigger("shown")}),tag.find(".identity_select").val(settings.global("connect_identity_type","forum")),setTimeout(()=>tag.find(".identity_select").trigger("change"),0),tag.find(".identity_file").change(function(){const reader=new FileReader;reader.onload=function(){connectIdentity=TSIdentityHelper.loadIdentityFromFileContains(reader.result),console.log(connectIdentity.uid()),connectIdentity?(tag.find(".identity_string").val(connectIdentity.exported()),settings.changeGlobal("connect_identity_teamspeak_identity",connectIdentity.exported())):tag.find(".error_message").text("Could not read identity! "+TSIdentityHelper.last_error()),(connectIdentity?tag.hide:tag.show).apply(tag.find(".error_message")),updateFields()},reader.onerror=(ev=>{tag.find(".error_message").text("Could not read identity file!").show(),updateFields()}),reader.readAsText(this.files[0])}),tag.find(".identity_string").on("change",function(){0==this.value.length?tag.find(".error_message").text("Please select an identity!"):(connectIdentity=TSIdentityHelper.loadIdentity(this.value))?settings.changeGlobal("connect_identity_teamspeak_identity",this.value):tag.find(".error_message").text("Could not parse identity! "+TSIdentityHelper.last_error()),(connectIdentity?tag.hide:tag.show).apply(tag.find(".error_message")),tag.find(".identity_file").val(""),updateFields()}),tag.find(".identity_string").val(settings.global("connect_identity_teamspeak_identity","")),tag.find(".identity_config_teamspeak").on("shown",ev=>{tag.find(".identity_string").trigger("change")}),forumIdentity||tag.find(".identity_config_forum").html("You cant use your TeaSpeak forum account.
You're not connected!"),tag.find(".identity_config_forum").on("shown",ev=>{connectIdentity=forumIdentity,updateFields()}),tag},footer:function(){let tag=$.spawn("div");tag.css("text-align","right"),tag.css("margin-top","3px"),tag.css("margin-bottom","6px"),tag.addClass("modal-button-group");let button=$.spawn("button");return button.addClass("connect_connect_button"),button.text("Connect"),button.on("click",function(){connectModal.close();let address=tag.parents(".modal-content").find(".connect_address").val().toString();globalClient.startConnection(address,connectIdentity,tag.parents(".modal-content").find(".connect_nickname").val().toString())}),tag.append(button),tag},width:600});connectModal.open()};let Regex={DOMAIN:/^(localhost|((([a-zA-Z0-9_-]{0,63}\.){0,253})?[a-zA-Z0-9_-]{0,63}\.[a-zA-Z]{2,5}))(|:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[0-5]?[0-9]{1,4}))$/,IP_V4:/(^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))(|:(6553[0-5]|655[0-2][0-9]|65[0-4][0-9]{2}|6[0-4][0-9]{3}|[0-5]?[0-9]{1,4}))$/,IP_V6:/(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))/,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])$|^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9\-]*[A-Za-z0-9])$|^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/}}(Modals||(Modals={})),function(Modals){Modals.spawnBanClient=function(name,callback){const connectModal=createModal({header:function(){return"Ban client"},body:function(){let tag=$("#tmpl_client_ban").tmpl({client_name:name}),maxTime=0,unlimited=0==maxTime||-1==maxTime;unlimited&&(maxTime=0);let banTag=tag.find(".ban_duration_type"),durationTag=tag.find(".ban_duration");return banTag.find('option[value="sec"]').prop("disabled",!unlimited&&1>maxTime).attr("duration-scale",1).attr("duration-max",maxTime),banTag.find('option[value="min"]').prop("disabled",!unlimited&&60>maxTime).attr("duration-scale",60).attr("duration-max",maxTime/60),banTag.find('option[value="hours"]').prop("disabled",!unlimited&&3600>maxTime).attr("duration-scale",3600).attr("duration-max",maxTime/3600),banTag.find('option[value="days"]').prop("disabled",!unlimited&&86400>maxTime).attr("duration-scale",86400).attr("duration-max",maxTime/86400),banTag.find('option[value="perm"]').prop("disabled",!unlimited).attr("duration-scale",0),durationTag.change(()=>banTag.trigger("change")),banTag.change(event=>{let element=$(event.target.selectedOptions.item(0));if("perm"!==element.val()){durationTag.prop("disabled",!1);let current=durationTag.val(),max=parseInt(element.attr("duration-max"));max>0&¤t>max?durationTag.val(max):current<=0&&durationTag.val(1),durationTag.attr("max",max)}else durationTag.prop("disabled",!0)}),tag},footer:function(){let tag=$.spawn("div");tag.css("text-align","right"),tag.css("margin-top","3px"),tag.css("margin-bottom","6px"),tag.addClass("modal-button-group");let buttonCancel=$.spawn("button");buttonCancel.text("Cancel"),buttonCancel.on("click",()=>connectModal.close()),tag.append(buttonCancel);let buttonOk=$.spawn("button");return buttonOk.text("OK").addClass("btn_success"),tag.append(buttonOk),tag},width:450});connectModal.open(),connectModal.htmlTag.find(".btn_success").on("click",()=>{connectModal.close();let length=connectModal.htmlTag.find(".ban_duration").val(),duration=connectModal.htmlTag.find(".ban_duration_type option:selected");console.log(duration),console.log(length+"*"+duration.attr("duration-scale")),callback(length*parseInt(duration.attr("duration-scale")),connectModal.htmlTag.find(".ban_reason").val())})}}(Modals||(Modals={}));class BasicCodec{constructor(codecSampleRate){this.on_encoded_data=($=>{}),this.channelCount=1,this.samplesPerUnit=960,this.channelCount=1,this.samplesPerUnit=960,this._audioContext=new OfflineAudioContext(1,1024,44100),this._codecSampleRate=codecSampleRate,this._decodeResampler=new AudioResampler(AudioController.globalContext.sampleRate),this._encodeResampler=new AudioResampler(codecSampleRate)}encodeSamples(cache,pcm){this._encodeResampler.resample(pcm).then(buffer=>this.encodeSamples0(cache,buffer)).catch(error=>console.error("Could not resample PCM data for codec. Error:"+error))}encodeSamples0(cache,buffer){for(cache._chunks.push(new BufferChunk(buffer));cache.bufferedSamples(this.samplesPerUnit)>=this.samplesPerUnit;){let buffer=this._audioContext.createBuffer(this.channelCount,this.samplesPerUnit,this._codecSampleRate),index=0;for(;index{result instanceof Uint8Array?((new Date).getTime()-20>encodeBegin&&console.error("Required time: %d",(new Date).getTime()-encodeBegin),this.on_encoded_data(result)):console.error("[Codec]["+this.name()+"] Could not encode buffer. Result: "+result)})}return!0}decodeSamples(cache,data){return this.decode(data).then(buffer=>this._decodeResampler.resample(buffer))}}!function(CodecWorkerType){CodecWorkerType[CodecWorkerType.WORKER_OPUS=0]="WORKER_OPUS"}(CodecWorkerType||(CodecWorkerType={}));class CodecWrapper extends BasicCodec{constructor(type,channelCount){super(48e3),this._workerListener=[],this._workerCallbackToken="callback_token",this._workerTokeIndex=0,this._initialized=!1,this.type=type,this.channelCount=channelCount}name(){return"Worker for "+CodecWorkerType[this.type]+" Channels "+this.channelCount}initialise(){return this._initializePromise?this._initializePromise:this._initializePromise=this.spawnWorker().then(()=>new Promise((resolve,reject)=>{const token=this.generateToken();this.sendWorkerMessage({command:"initialise",type:this.type,channelCount:this.channelCount,token:token}),this._workerListener.push({token:token,resolve:data=>{console.log("Init result: %o",data),this._initialized=1==data.success,1==data.success?resolve():reject(data.message)}})}))}initialized(){return this._initialized}deinitialise(){this.sendWorkerMessage({command:"deinitialise"})}decode(data){let token=this.generateToken(),result=new Promise((resolve,reject)=>{this._workerListener.push({token:token,resolve:data=>{if(data.success){let array=new Float32Array(data.dataLength);for(let index=0;index{this._workerListener.push({token:token,resolve:data=>{if(data.success){let array=new Uint8Array(data.dataLength);for(let index=0;index{this._workerCallbackReject=reject,this._workerCallbackResolve=resolve,this._worker=new Worker(settings.static("worker_directory","js/workers/")+"WorkerCodec.js"),this._worker.onmessage=(event=>this.onWorkerMessage(JSON.parse(event.data)))})}}let settings,globalClient,chat,forumIdentity;function main(){AudioController.initializeAudioController(),TSIdentityHelper.setup()?(settings=new Settings,globalClient=new TSClient,settings.static("forum_user_data")&&(forumIdentity=new TeaForumIdentity(settings.static("forum_user_data"),settings.static("forum_user_sign"))),chat=new ChatBox($("#chat")),globalClient.setup(),settings.static(Settings.KEY_DISABLE_UNLOAD_DIALOG,!1)||window.addEventListener("beforeunload",function(event){globalClient.serverConnection&&globalClient.serverConnection.connected&&(event.returnValue="Are you really sure?
You're still connected!")}),settings.static("default_connect_url")&&("forum"==settings.static("default_connect_type","forum")?globalClient.startConnection(settings.static("default_connect_url"),forumIdentity):Modals.spawnConnectModal(settings.static("default_connect_url")))):console.error("Could not setup the TeamSpeak identity parser!")}app.loadedListener.push(()=>main());class RawCodec extends BasicCodec{constructor(codecSampleRate){super(codecSampleRate),this.bufferSize=16384}name(){return"raw"}initialise(){return this.converterRaw=Module._malloc(this.bufferSize),this.converter=new Uint8Array(Module.HEAPU8.buffer,this.converterRaw,this.bufferSize),new Promise(resolve=>resolve())}initialized(){return!0}deinitialise(){}decode(data){return new Promise((resolve,reject)=>{this.converter.set(data);let buf=Module.HEAPF32.slice(this.converter.byteOffset/4,this.converter.byteOffset/4+data.length/4),audioBuf=this._audioContext.createBuffer(1,data.length/4,this._codecSampleRate);audioBuf.copyToChannel(buf,0),resolve(audioBuf)})}encode(data){return new Promise(resolve=>resolve(new Uint8Array(data.getChannelData(0))))}reset(){return!0}}var hex;!function(hex){hex.encode=function(buffer){let hexCodes=[],view=new DataView(buffer);for(let i=0;i");return serverIcon.append($.spawn("div").addClass("icon_property icon_empty")),tag.append(serverIcon),this._htmlTag=tag}initializeListener(){const _this=this;this._htmlTag.click(function(){_this.channelTree.onSelect(_this)}),settings.static(Settings.KEY_DISABLE_CONTEXT_MENU,!1)||this.htmlTag.on("contextmenu",function(event){event.preventDefault(),_this.channelTree.onSelect(_this),_this.spawnContextMenu(event.pageX,event.pageY,()=>{_this.channelTree.onSelect(void 0)})})}spawnContextMenu(x,y,on_close=(()=>{})){spawnMenu(x,y,{type:MenuEntryType.ENTRY,icon:"",name:"test",callback:()=>{}},MenuEntry.CLOSE(on_close))}updateProperty(key,value){console.log("Updating property "+key+" => '"+value+"' for the server"),this.properties[key]=value,"virtualserver_name"==key?this.htmlTag.find(".name").text(value):"virtualserver_icon_id"==key&&this.channelTree.client.fileManager&&this.channelTree.client.fileManager.icons&&this.htmlTag.find(".icon_property").replaceWith(this.channelTree.client.fileManager.icons.generateTag(this.properties.virtualserver_icon_id).addClass("icon_property"))}updateProperties(){this.lastInfoRequest=(new Date).getTime(),this.nextInfoRequest=this.lastInfoRequest+1e4,this.channelTree.client.serverConnection.sendCommand("servergetvariables")}shouldUpdateProperties(){return this.nextInfoRequest384e3)throw"The target sample rate is outside the range [3000, 384000]."}resample(buffer){if(buffer.sampleRate==this.targetSampleRate)return new Promise(resolve=>resolve(buffer));let context,source=(context=new OfflineAudioContext(buffer.numberOfChannels,Math.ceil(buffer.length*this.targetSampleRate/buffer.sampleRate),this.targetSampleRate)).createBufferSource();return source.buffer=buffer,source.connect(context.destination),source.start(0),context.startRendering()}} \ No newline at end of file diff --git a/generated/js/client.min.js.map b/generated/js/client.min.js.map index b5dd9829..cfdf025f 100644 --- a/generated/js/client.min.js.map +++ b/generated/js/client.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["generated/js/client.js"],"names":["PlayerState","AudioController","[object Object]","this","playerState","STOPPED","audioCache","playingAudioCache","_volume","_codecCache","_timeIndex","allowBuffering","speakerContext","globalContext","onSpeaking","onSilence","_globalContext","AudioContext","_audioInstances","push","remove","buffer","sampleRate","console","warn","applayVolume","STOPPING","log","PREBUFFERING","BUFFERING","length","PLAYING","playQueue","pop_front","currentTime","player","createBufferSource","onended","removeNode","connect","destination","start","duration","node","testBufferQueue","now","entry","stop","volume","val","channel","numberOfChannels","data","getChannelData","sample","lane","codec","CodecClientCache","concatenate","resultConstructor","arrays","totalLength","arr","result","offset","set","formatDate","secs","years","Math","floor","days","hours","minutes","seconds","substr","Array","prototype","elem","index","indexOf","splice","last","$","spawn","tagName","document","createElement","String","format","args","arguments","array","isArray","replace","m","n","BufferChunk","target","maxLength","copy","min","subarray","_chunks","max","value","i","on","e","parents","find","trigger","ModalFunctions","divify","append","jqueriefy","isFunction","error","ModalProperties","props","key","header","body","footer","closeListener","width","hight","closeable","listener","Modal","properties","htmlTag","_htmlTag","_create","modal","addClass","content","css","click","close","bind","appendTo","show","_this","animate","opacity","detach","triggerClose","createModal","warpProperties","InputModalProperties","createInputModal","headMessage","question","validator","callback","head","input","buttonCancel","text","buttonOk","event","keyCode","toString","removeClass","removeAttr","hasClass","attr","callbackCalled","wrappedCallback","flag","createErrorModal","message","VoiceActivityDetector","old","_new","handle","triggerNewStream","oldStream","getMicrophoneStream","undefined","initialiseNewStream","VoiceRecorder","on_data","on_end","_recording","microphoneStream","mediaStream","_chunkCount","userMedia","navigator","getUserMedia","webkitGetUserMedia","mozGetUserMedia","_deviceId","settings","global","audioContext","processor","createScriptProcessor","BUFFER_SIZE","CHANNELS","addEventListener","ev","vadHandler","shouldRecord","inputBuffer","mute","createGain","gain","setValueAtTime","setVADHander","PassThroughVAD","type","parseInt","getVADHandler","PushToTalkVAD","VoiceActivityDetectorVAD","threshold","percentageThreshold","handler","changeHandle","finalize","initialise","device","changeGlobal","audio","deviceId","on_microphone","open","disconnect","getTracks","forEach","stream","createMediaStreamSource","CHANNEL","MuteVAD","super","continuesCount","maxContinuesCount","percentage_listener","analyzer","createAnalyser","smoothingTimeConstant","Uint8Array","fftSize","usage","calculateUsage","float","rms","total","getByteTimeDomainData","sqrt","db","_pushed","_evListenerDown","fromCharCode","_key","pushed","_evListenerUp","removeEventListener","CodecPoolEntry","CodecPool","name","creator","entries","maxInstances","_supported","codecIndex","cached","ownCodec","then","releaseCodec","catch","JSON","stringify","clientId","create","Promise","resolve","reject","freeSlot","owner","last_access","Date","getTime","instance","initialized","on_encoded_data","sendVoicePacket","reset","VoiceConnection","client","codecPool","CodecWrapper","CodecWorkerType","WORKER_OPUS","vpacketId","chunkVPacketId","voiceRecorder","handleVoiceData","handleVoiceEnded","reinitialiseVAD","initialize","supported","dataChannel","packet","byteLength","send","rtcPeerConnection","RTCPeerConnection","createDataChannel","ordered","maxRetransmits","onmessage","onDataChannelMessage","onopen","onDataChannelOpen","binaryType","sdpConstraints","offerToReceiveAudio","offerToReceiveVideo","onicecandidate","onIceCandidate","createOffer","onOfferCreated","json","setRemoteDescription","RTCSessionDescription","sdp","addIceCandidate","RTCIceCandidate","candidate","sdpMid","sdpMLineIndex","serverConnection","sendData","request","line","session","localSession","setLocalDescription","controlBar","muteOutput","bin","channelTree","findClient","encodedData","getAudioController","stopAudio","decoder","decodeSamples","codecCache","playBuffer","connected","muteInput","getClient","speaking","getClientId","encoder","encodeSamples","despawnContextMenu","contextMenuCloseFn","menue","is","hide","MenuEntryType","sha","helpers","ChannelType","PermissionType","GroupType","GroupTarget","MenuEntry","HR","icon","EMPTY","spawnMenu","x","y","menu","empty","CLOSE","ENTRY","tag","disabled","invalidPermission","top","left","sha1","ArrayBuffer","TextEncoder","encode","crypto","subtle","digest","hashPassword","password","btoa","apply","normalize","mode","toLowerCase","toUpperCase","ChannelProperties","channel_order","channel_name","channel_topic","channel_password","channel_description","channel_codec","channel_codec_quality","channel_codec_is_unencrypted","channel_maxclients","channel_maxfamilyclients","channel_needed_talk_power","channel_flag_permanent","channel_flag_semi_permanent","channel_flag_default","channel_flag_password","channel_flag_maxclients_unlimited","channel_flag_maxfamilyclients_inherited","channel_flag_maxfamilyclients_unlimited","ChannelEntry","channelId","channelName","parent","prevChannel","_formatedChannelName","initializeTag","__updateChannelName","deep","self","channels","current","parentChannel","clients","currentChannel","rootTag","getChannelId","_tag_channel","_channelAlign","channelType","iconTag","container","noSound","height","_tag_siblings","tag_siblings_box","_tag_clients","tag_clients_box","_tag_root","size","originalHeight","subSize","clientSize","siblings","outerHeight","adjustSize","channelTag","onSelect","dblclick","joinChannel","static","Settings","KEY_DISABLE_CONTEXT_MENU","preventDefault","showContextMenu","pageX","pageY","on_close","channelCreate","permissions","neededPermission","B_CHANNEL_CREATE_TEMPORARY","granted","B_CHANNEL_CREATE_SEMI_PERMANENT","B_CHANNEL_CREATE_PERMANENT","channelModify","B_CHANNEL_MODIFY_MAKE_DEFAULT","B_CHANNEL_MODIFY_MAKE_PERMANENT","B_CHANNEL_MODIFY_MAKE_SEMI_PERMANENT","B_CHANNEL_MODIFY_MAKE_TEMPORARY","B_CHANNEL_MODIFY_NAME","B_CHANNEL_MODIFY_TOPIC","B_CHANNEL_MODIFY_DESCRIPTION","B_CHANNEL_MODIFY_PASSWORD","B_CHANNEL_MODIFY_CODEC","B_CHANNEL_MODIFY_CODEC_QUALITY","B_CHANNEL_MODIFY_CODEC_LATENCY_FACTOR","B_CHANNEL_MODIFY_MAXCLIENTS","B_CHANNEL_MODIFY_MAXFAMILYCLIENTS","B_CHANNEL_MODIFY_SORTORDER","B_CHANNEL_MODIFY_NEEDED_TALK_POWER","B_CHANNEL_MODIFY_MAKE_CODEC_ENCRYPTED","B_CHANNEL_MODIFY_TEMP_DELETE_DELAY","B_ICON_MANAGE","flagDelete","B_CHANNEL_DELETE_FLAG_FORCE","B_CHANNEL_DELETE_PERMANENT","B_CHANNEL_DELETE_TEMPORARY","Modals","createChannelModal","changes","info","LogCategory","sendCommand","cid","B_CHANNEL_CREATE_CHILD","spawnCreateChannel","parseType","charAt","end","options","formatedChannelName","fn","lastSuccess","innerWidth","outerWidth","variables","group","LogType","DEBUG","variable","order","findChannel","moveChannel","channel_icon_id","children","fileManager","icons","generateTag","voiceConnection","codecSupported","updateChannelTypeIcon","_cachedPassword","braces","wrap","PERMANENT","SEMI_PERMANENT","TEMPORARY","B_CHANNEL_JOIN_IGNORE_PASSWORD","getServerConnection","CommandResult","id","chat_channel_contextmenu","_element","element","chid","Number","globalClient","spawnChangeVolume","updateCallback","connectModal","tmpl","_","buttonReset","number","html","ClientProperties","client_version","client_platform","client_nickname","client_unique_identifier","client_description","client_servergroups","client_channel_group_id","client_lastconnected","client_flag_avatar","client_output_muted","client_away_message","client_away","client_input_hardware","client_input_muted","client_is_channel_commander","ClientEntry","clientName","lastVariableUpdate","_speaking","_clientId","_channel","audioController","chat","activeChat","focus","clientNickName","clid","msg","reasonid","ViewReasonId","VREASON_CHANNEL_KICK","reasonmsg","VREASON_SERVER_KICK","changeServer","clientUid","selectInfo","currentSelected","update","_tag","clientIcons","uid","chatTag","updateClientIcon","clicon","CLIENT","updateAwayMessage","parseFloat","server","avatarId","chatName","c","findChat","createChat","onMessageSend","sendMessage","ChatType","onClose","iconid","split","SERVER","assignedServerGroupIds","assignedChannelGroup","raw","atob","hex","str","buf","bufView","strLen","charCodeAt","str2ab","LocalClientEntry","_self","openRename","initializeListener","elm","renaming","keypress","focusout","updateClient","serverChat","appendMessage","appendError","extra_message","chat_client_contextmenu","template","tabify","button","updateButton","change","prop","pass","B_CHANNEL_CREATE_MODIFY_WITH_FORCE_PASSWORD","B_CHANNEL_CREATE_WITH_PASSWORD","B_CHANNEL_CREATE_WITH_TOPIC","B_CHANNEL_CREATE_WITH_DESCRIPTION","applyGeneralListener","checked","elements","removeProp","B_CHANNEL_CREATE_WITH_DEFAULT","B_CHANNEL_CREATE_WITH_NEEDED_TALK_POWER","orderTag","rootChannel","selected","item","selectedIndex","B_CHANNEL_CREATE_WITH_SORTORDER","applyStandardListener","ChannelTree","htmlTree","isDefaultPrevented","serverName","ServerEntry","fadeOut","filter","currentEntry","__deleteAnimation","hasParent","siblingTag","display","fadeIn","after","oldParent","onDelete","newClient","clientTag","oldChannel","each","idx","groupAssigned","debug","success","ReturnListener","ServerConnection","_connectionState","ConnectionState","UNCONNECTED","_connectTimeoutHandler","_connected","on_connect","_handshakeHandler","startHandshake","_client","_socket","commandHandler","ConnectionCommandHandler","_retCodeIdx","_retListener","host","port","handshake","timeout","clearTimeout","updateConnectionState","CONNECTING","_remoteHost","_remotePort","setConnection","sockCpy","setTimeout","handleDisconnect","DisconnectReason","CONNECT_FAILURE","WebSocket","onclose","CONNECTION_CLOSED","code","reason","onerror","readyState","handleWebSocketMessage","INITIALISING","state","future","parse","alert","handleCommand","handleControlPacket","NETWORKING","TRACE","collapsed","call","command","logResult","failed","_data","retCode","return_code","generateReturnCode","commandiefy","ex","res","OPEN","cpw","targetmode","HandshakeHandler","identity","con","connection","handleCommandHandshakeIdentityProof","intention","authentication_method","IdentitifyType","TEAMSPEAK","publicKey","TEAFORO","identityDataJson","proof","signMessage","identitySign","platform","userAgent","client_browser_engine","product","handleCommandResult","handleCommandChannelList","handleCommandChannelCreate","handleCommandChannelDelete","handleCommandClientEnterView","handleCommandClientLeftView","handleNotifyClientMoved","handleCommandServerInit","handleNotifyChannelMoved","handleNotifyChannelEdited","handleNotifyTextMessage","handleNotifyClientUpdated","handleNotifyServerEdited","handleNotifyServerUpdated","retListeners","createSession","updateVariables","updateProperty","createChatTag","onConnected","ignoreOrder","tree","insertChannel","prev","ch","updates","createChannelFromJson","deleteChannel","old_channel","channelChat","moveClient","insertClient","VREASON_USER_ACTION","VREASON_BAN","CLIENT_BANNED","CLIENT_KICKED","VREASON_SERVER_SHUTDOWN","SERVER_CLOSED","VREASON_SERVER_STOPPED","UNKNOWN","channel_from","channel_to","VREASON_SERVER_LEFT","deleteClient","clientsByChannel","VREASON_MOVED","invoker","X_Properties","HTMLElement","X_Property","customElements","define","extends","cacheGlobal","cacheServer","updated","_staticPropsTag","localStorage","getItem","saveWorker","setInterval","save","initializeStatic","location","search","part","_default","transformStO","decodeURIComponent","transformOtS","UPDATE_DIRECT","currentServer","serverId","virtualserver_unique_identifier","setItem","KEY_DISABLE_UNLOAD_DIALOG","InfoBar","timers","intervals","infos","table","_currentSelected","buildBar","calculateUptime","calculateOnlineTime","timer","clearInterval","shouldUpdateProperties","updateProperties","version","virtualserver_version","startsWith","createInfoTable","Name","virtualserver_name","Address","Type","Version","virtualserver_platform","Uptime","Current Channels","virtualserver_channelsonline","Current Clients","virtualserver_clientsonline","Current Queries","virtualserver_queryclientsonline","requestUpdate","_server","nextInfoRequest","updateServerTimings","Topic","Codec","Codec Quality","Current clients","Subscription Status","Voice Data Encryption","Description","ChatMessage","formatMessage","Online since","Volume","serverGroups","groupId","groups","serverGroup","groupTag","channelGroup","avatars","updateClientTimings","PermissionInfo","GrantedPermission","requiredValue","required","trace","PERMISSIONS","NeededGrantedPermission","changeListener","PermissionManager","permissionList","neededPermissions","initializedListener","onNeededPermissions","onPermissionList","perm","description","_cacheNeededPermissions","slice","addcount","p","resolveInfo","Group","requiredModifyPower","requiredMemberAddPower","requiredMemberRemovePower","clientsByGroup","updateGroupIcon","GroupManager","channelGroups","onServerGroupList","groupData","TEMPLATE","NORMAL","QUERY","X_Tab","X_Entry","X_Tag","X_Content","TSIdentityHelper","TabFunctions","silentContent","hentry","clone","_entryContent","first","asTabWidget","replaceWith","object","spawnSettingsModal","currentVAD","slider","vad","per","one","registerCloseListener","mselect","mselectError","mediaDevices","enumerateDevices","devices","currentDeviceId","currentStream","getMediaStream","getAudioTracks","getSettings","kind","dtag","label","deviceSelected","changeDevice","initialiseVoiceListeners","initialiseSettingListeners","ControlBar","onConnect","onAway","onInputMute","onOutputMute","onOpenSettings","away","_away","_muteInput","_muteOutput","updateMicrophoneRecordState","_awayMessage","enabled","spawnConnectModal","TSClient","FileManager","_ownEntry","registerClient","addr","REQUESTED","lastIndexOf","initialiseHead","startConnection","setServer","requestPermissionList","requestGroups","CONNECTION_PING_TIMEOUT","dropSession","FileEntry","FileListRequest","DownloadFileTransfer","currentSize","on_start","on_complete","on_fail","transferId","_handle","remoteHost","remotePort","transferKey","totalSize","_active","onOpen","onMessage","onError","_parseActive","fileReader","FileReader","onload","onBinaryData","readAsArrayBuffer","_succeed","listRequests","pendingDownloadTransfers","downloadCounter","IconManager","AvatarManager","notifyFileList","notifyFileListFinished","notifyStartDownload","path","accept","req","file","transfer","clientftfid","serverTransferId","Icon","requestFileList","requestFileDownload","base64","resolveCached","downloadIcon","ft","startTransfer","img","loader","loadIcon","Avatar","avatar","downloadAvatar","loadAvatar","Pointer_stringify","Module","functionLastError","functionDestroyString","functionDestroyIdentity","unwarpString","setup","cwrap","funcationParseIdentity","funcationParseIdentityByFile","funcationCalculateSecurityLevel","funcationExportIdentity","funcationPublicKey","funcationSignMessage","functionUid","last_error","loadIdentity","TeamSpeakIdentity","loadIdentityFromFileContains","contains","_name","TeaForumIdentity","sign","identityData","date","num","dateTag","getUTCHours","getUTCMinutes","getUTCSeconds","messageTag","div","innerText","innerHTML","ChatEntry","history","fmt","parms","jQuery","box","mbox","bottom","scrollTop","unread","chatIcon","closeTag","_closeable","actions","displayHistory","deleteChat","newName","_unread","GENERAL","ChatBox","onSend","shiftKey","testMessage","chats","_activeChat","activeChat0","textBox","flagAllowSend","B_CLIENT_SERVER_TEXTMESSAGE_SEND","B_CLIENT_CHANNEL_TEXTMESSAGE_SEND","log_1","category_mapping","Map","logDirect","optionalParams","INFO","WARNING","ERROR","category","unshift","get","level","_collapsed","groupCollapsed","groupEnd","defaultHost","connectIdentity","contents","updateFields","field_address","address","flag_address","match","Regex","IP_V4","DOMAIN","field_nickname","nickname","flag_nickname","reader","exported","readAsText","files","forumIdentity","IP_V6","IP","BasicCodec","codecSampleRate","channelCount","samplesPerUnit","_audioContext","OfflineAudioContext","_codecSampleRate","_decodeResampler","AudioResampler","_encodeResampler","cache","pcm","resample","encodeSamples0","bufferedSamples","createBuffer","cpyBytes","copyRangeTo","encodeBegin","decode","_workerListener","_workerCallbackToken","_workerTokeIndex","_initialized","_initializePromise","spawnWorker","token","generateToken","sendWorkerMessage","Float32Array","dataLength","audioBuf","transfare","_worker","postMessage","_workerCallbackResolve","_workerCallbackReject","Worker","onWorkerMessage","main","initializeAudioController","window","returnValue","app","loadedListener","RawCodec","bufferSize","converterRaw","_malloc","converter","HEAPU8","HEAPF32","byteOffset","copyToChannel","hexCodes","view","DataView","padding","paddedValue","getUint32","getUint8","join","virtualserver_icon_id","virtualserver_uptime","virtualserver_maxclients","lastInfoRequest","serverIcon","spawnContextMenu","targetSampleRate","context","source","ceil","startRendering"],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["generated/js/client.js"],"names":["PlayerState","AudioController","[object Object]","this","playerState","STOPPED","audioCache","playingAudioCache","_volume","_codecCache","_timeIndex","_latencyBufferLength","allowBuffering","speakerContext","globalContext","onSpeaking","onSilence","_globalContext","AudioContext","_audioInstances","push","remove","buffer","sampleRate","console","warn","applyVolume","STOPPING","log","PREBUFFERING","BUFFERING","length","PLAYING","playQueue","pop_front","currentTime","player","createBufferSource","onended","removeNode","connect","destination","start","duration","node","testBufferQueue","now","entry","stop","volume","val","channel","numberOfChannels","data","getChannelData","sample","lane","codec","CodecClientCache","concatenate","resultConstructor","arrays","totalLength","arr","result","offset","set","formatDate","secs","years","Math","floor","days","hours","minutes","seconds","substr","Array","prototype","elem","index","indexOf","splice","last","$","spawn","tagName","document","createElement","String","format","args","arguments","array","isArray","replace","m","n","BufferChunk","target","maxLength","copy","min","subarray","_chunks","max","value","i","on","e","parents","find","trigger","ModalFunctions","divify","append","jqueriefy","isFunction","error","ModalProperties","props","key","header","body","footer","closeListener","width","hight","closeable","listener","Modal","properties","htmlTag","_htmlTag","_create","modal","addClass","content","css","click","close","bind","appendTo","show","_this","animate","opacity","detach","triggerClose","createModal","warpProperties","InputModalProperties","createInputModal","headMessage","question","validator","callback","head","input","buttonCancel","text","buttonOk","event","keyCode","toString","removeClass","removeAttr","hasClass","attr","callbackCalled","wrappedCallback","flag","createErrorModal","message","VoiceActivityDetector","old","_new","handle","triggerNewStream","oldStream","getMicrophoneStream","undefined","initialiseNewStream","VoiceRecorder","on_data","on_end","_recording","microphoneStream","mediaStream","_chunkCount","userMedia","navigator","getUserMedia","webkitGetUserMedia","mozGetUserMedia","_deviceId","settings","global","audioContext","processor","createScriptProcessor","BUFFER_SIZE","CHANNELS","addEventListener","ev","vadHandler","shouldRecord","inputBuffer","mute","createGain","gain","setValueAtTime","setVADHander","PassThroughVAD","type","parseInt","getVADHandler","PushToTalkVAD","VoiceActivityDetectorVAD","threshold","percentageThreshold","handler","changeHandle","finalize","initialise","device","changeGlobal","audio","deviceId","on_microphone","open","disconnect","getTracks","forEach","stream","createMediaStreamSource","CHANNEL","MuteVAD","super","continuesCount","maxContinuesCount","percentage_listener","analyzer","createAnalyser","smoothingTimeConstant","Uint8Array","fftSize","usage","calculateUsage","float","rms","total","getByteTimeDomainData","sqrt","db","_pushed","_evListenerDown","fromCharCode","_key","pushed","_evListenerUp","removeEventListener","CodecPoolEntry","CodecPool","name","creator","entries","maxInstances","_supported","codecIndex","cached","ownCodec","then","releaseCodec","catch","JSON","stringify","clientId","create","Promise","resolve","reject","freeSlot","owner","last_access","Date","getTime","instance","initialized","on_encoded_data","sendVoicePacket","reset","VoiceConnection","client","codecPool","CodecWrapper","CodecWorkerType","WORKER_OPUS","vpacketId","chunkVPacketId","voiceRecorder","handleVoiceData","handleVoiceEnded","reinitialiseVAD","initialize","supported","dataChannel","packet","byteLength","send","rtcPeerConnection","RTCPeerConnection","createDataChannel","ordered","maxRetransmits","onmessage","onDataChannelMessage","onopen","onDataChannelOpen","binaryType","sdpConstraints","offerToReceiveAudio","offerToReceiveVideo","onicecandidate","onIceCandidate","createOffer","onOfferCreated","json","setRemoteDescription","RTCSessionDescription","sdp","addIceCandidate","RTCIceCandidate","candidate","sdpMid","sdpMLineIndex","serverConnection","sendData","request","line","session","localSession","setLocalDescription","controlBar","muteOutput","bin","channelTree","findClient","encodedData","getAudioController","stopAudio","decoder","decodeSamples","codecCache","playBuffer","connected","muteInput","getClient","speaking","getClientId","encoder","encodeSamples","despawnContextMenu","contextMenuCloseFn","menue","is","hide","MenuEntryType","sha","helpers","ChannelType","PermissionType","GroupType","GroupTarget","MenuEntry","HR","icon","EMPTY","spawnMenu","x","y","menu","empty","CLOSE","ENTRY","tag","disabled","invalidPermission","top","left","sha1","ArrayBuffer","TextEncoder","encode","crypto","subtle","digest","hashPassword","password","btoa","apply","normalize","mode","toLowerCase","toUpperCase","ChannelProperties","channel_order","channel_name","channel_topic","channel_password","channel_description","channel_codec","channel_codec_quality","channel_codec_is_unencrypted","channel_maxclients","channel_maxfamilyclients","channel_needed_talk_power","channel_flag_permanent","channel_flag_semi_permanent","channel_flag_default","channel_flag_password","channel_flag_maxclients_unlimited","channel_flag_maxfamilyclients_inherited","channel_flag_maxfamilyclients_unlimited","ChannelEntry","channelId","channelName","parent","prevChannel","_formatedChannelName","initializeTag","__updateChannelName","deep","self","channels","current","parentChannel","clients","currentChannel","rootTag","getChannelId","_tag_channel","_channelAlign","channelType","iconTag","container","noSound","height","_tag_siblings","tag_siblings_box","_tag_clients","tag_clients_box","_tag_root","size","originalHeight","subSize","clientSize","siblings","outerHeight","adjustSize","channelTag","onSelect","dblclick","joinChannel","static","Settings","KEY_DISABLE_CONTEXT_MENU","preventDefault","showContextMenu","pageX","pageY","on_close","channelCreate","permissions","neededPermission","B_CHANNEL_CREATE_TEMPORARY","granted","B_CHANNEL_CREATE_SEMI_PERMANENT","B_CHANNEL_CREATE_PERMANENT","channelModify","B_CHANNEL_MODIFY_MAKE_DEFAULT","B_CHANNEL_MODIFY_MAKE_PERMANENT","B_CHANNEL_MODIFY_MAKE_SEMI_PERMANENT","B_CHANNEL_MODIFY_MAKE_TEMPORARY","B_CHANNEL_MODIFY_NAME","B_CHANNEL_MODIFY_TOPIC","B_CHANNEL_MODIFY_DESCRIPTION","B_CHANNEL_MODIFY_PASSWORD","B_CHANNEL_MODIFY_CODEC","B_CHANNEL_MODIFY_CODEC_QUALITY","B_CHANNEL_MODIFY_CODEC_LATENCY_FACTOR","B_CHANNEL_MODIFY_MAXCLIENTS","B_CHANNEL_MODIFY_MAXFAMILYCLIENTS","B_CHANNEL_MODIFY_SORTORDER","B_CHANNEL_MODIFY_NEEDED_TALK_POWER","B_CHANNEL_MODIFY_MAKE_CODEC_ENCRYPTED","B_CHANNEL_MODIFY_TEMP_DELETE_DELAY","B_ICON_MANAGE","flagDelete","B_CHANNEL_DELETE_FLAG_FORCE","B_CHANNEL_DELETE_PERMANENT","B_CHANNEL_DELETE_TEMPORARY","Modals","createChannelModal","changes","info","LogCategory","sendCommand","cid","B_CHANNEL_CREATE_CHILD","spawnCreateChannel","parseType","charAt","end","options","formatedChannelName","fn","lastSuccess","innerWidth","outerWidth","variables","group","LogType","DEBUG","variable","order","findChannel","moveChannel","channel_icon_id","children","fileManager","icons","generateTag","voiceConnection","codecSupported","updateChannelTypeIcon","_cachedPassword","braces","contextmenu","isDefaultPrevented","PERMANENT","SEMI_PERMANENT","TEMPORARY","B_CHANNEL_JOIN_IGNORE_PASSWORD","getServerConnection","CommandResult","id","chat_channel_contextmenu","_element","element","chid","Number","globalClient","spawnChangeVolume","updateCallback","connectModal","tmpl","_","buttonReset","number","html","ClientProperties","client_version","client_platform","client_nickname","client_unique_identifier","client_description","client_servergroups","client_channel_group_id","client_lastconnected","client_flag_avatar","client_output_muted","client_away_message","client_away","client_input_hardware","client_input_muted","client_is_channel_commander","client_teaforum_id","client_teaforum_name","ClientEntry","clientName","lastVariableUpdate","_speaking","_clientId","_channel","audioController","chat","activeChat","focus","clientNickName","clid","msg","reasonid","ViewReasonId","VREASON_CHANNEL_KICK","reasonmsg","VREASON_SERVER_KICK","I_CLIENT_BAN_MAX_BANTIME","spawnBanClient","reason","uid","banreason","time","changeServer","clientUid","selectInfo","currentSelected","update","_tag","clientIcons","chatTag","updateClientIcon","clicon","CLIENT","updateAwayMessage","parseFloat","server","avatarId","chatName","c","findChat","createChat","onMessageSend","sendMessage","ChatType","onClose","iconid","split","SERVER","assignedServerGroupIds","assignedChannelGroup","raw","atob","hex","str","buf","bufView","strLen","charCodeAt","str2ab","LocalClientEntry","_self","openRename","initializeListener","elm","renaming","keypress","focusout","updateClient","serverChat","appendMessage","appendError","extra_message","chat_client_contextmenu","template","tabify","button","updateButton","change","prop","pass","B_CHANNEL_CREATE_MODIFY_WITH_FORCE_PASSWORD","B_CHANNEL_CREATE_WITH_PASSWORD","B_CHANNEL_CREATE_WITH_TOPIC","B_CHANNEL_CREATE_WITH_DESCRIPTION","applyGeneralListener","checked","elements","removeProp","B_CHANNEL_CREATE_WITH_DEFAULT","B_CHANNEL_CREATE_WITH_NEEDED_TALK_POWER","orderTag","rootChannel","selected","item","selectedIndex","B_CHANNEL_CREATE_WITH_SORTORDER","applyStandardListener","ChannelTree","htmlTree","serverName","ServerEntry","fadeOut","filter","currentEntry","__deleteAnimation","hasParent","siblingTag","display","fadeIn","after","oldParent","onDelete","newClient","clientTag","oldChannel","each","idx","groupAssigned","debug","success","ReturnListener","ServerConnection","_connectionState","ConnectionState","UNCONNECTED","_connectTimeoutHandler","_connected","on_connect","_handshakeHandler","startHandshake","_client","_socket","commandHandler","ConnectionCommandHandler","_retCodeIdx","_retListener","host","port","handshake","timeout","clearTimeout","updateConnectionState","CONNECTING","_remoteHost","_remotePort","setConnection","sockCpy","setTimeout","handleDisconnect","DisconnectReason","CONNECT_FAILURE","WebSocket","onclose","CONNECTION_CLOSED","code","onerror","readyState","handleWebSocketMessage","INITIALISING","state","future","parse","alert","handleCommand","handleControlPacket","NETWORKING","TRACE","collapsed","call","command","logResult","failed","_data","retCode","return_code","generateReturnCode","commandiefy","ex","res","OPEN","cpw","targetmode","HandshakeHandler","identity","con","connection","handleCommandHandshakeIdentityProof","intention","authentication_method","IdentitifyType","TEAMSPEAK","publicKey","TEAFORO","identityDataJson","proof","signMessage","identitySign","platform","userAgent","client_browser_engine","product","handleCommandResult","handleCommandChannelList","handleCommandChannelCreate","handleCommandChannelDelete","handleCommandClientEnterView","handleCommandClientLeftView","handleNotifyClientMoved","handleCommandServerInit","handleNotifyChannelMoved","handleNotifyChannelEdited","handleNotifyTextMessage","handleNotifyClientUpdated","handleNotifyServerEdited","handleNotifyServerUpdated","retListeners","createSession","updateVariables","updateProperty","createChatTag","onConnected","ignoreOrder","tree","insertChannel","prev","ch","updates","createChannelFromJson","deleteChannel","old_channel","channelChat","moveClient","insertClient","VREASON_USER_ACTION","VREASON_BAN","CLIENT_BANNED","CLIENT_KICKED","VREASON_SERVER_SHUTDOWN","SERVER_CLOSED","VREASON_SERVER_STOPPED","UNKNOWN","channel_from","channel_to","VREASON_SERVER_LEFT","deleteClient","clientsByChannel","VREASON_MOVED","invoker","X_Properties","HTMLElement","X_Property","customElements","define","extends","StaticSettings","_instance","_default","_reserved","_staticPropsTag","initializeStatic","_handle","location","search","part","transformStO","decodeURIComponent","deleteStatic","cacheGlobal","cacheServer","updated","localStorage","getItem","saveWorker","setInterval","save","transformOtS","UPDATE_DIRECT","currentServer","serverId","virtualserver_unique_identifier","setItem","KEY_DISABLE_UNLOAD_DIALOG","InfoBar","timers","intervals","infos","table","MessageHelper","formatElement","_currentSelected","buildBar","calculateUptime","calculateOnlineTime","timer","clearInterval","shouldUpdateProperties","updateProperties","version","virtualserver_version","startsWith","createInfoTable","Name","virtualserver_name","Address","Type","Version","virtualserver_platform","Uptime","Current Channels","virtualserver_channelsonline","Current Clients","virtualserver_clientsonline","Current Queries","virtualserver_queryclientsonline","requestUpdate","_server","nextInfoRequest","updateServerTimings","Topic","Codec","Codec Quality","Current clients","Subscription Status","Voice Data Encryption","updateClientVariables","Description","formatMessage","Online since","Volume","serverGroups","groupId","groups","serverGroup","groupTag","channelGroup","avatars","updateClientTimings","PermissionInfo","GrantedPermission","requiredValue","required","trace","PERMISSIONS","NeededGrantedPermission","changeListener","PermissionManager","permissionList","neededPermissions","initializedListener","onNeededPermissions","onPermissionList","perm","description","_cacheNeededPermissions","slice","addcount","p","resolveInfo","Group","requiredModifyPower","requiredMemberAddPower","requiredMemberRemovePower","clientsByGroup","updateGroupIcon","GroupManager","channelGroups","onServerGroupList","groupData","TEMPLATE","NORMAL","QUERY","X_Tab","X_Entry","X_Tag","X_Content","TSIdentityHelper","TabFunctions","silentContent","hentry","clone","_entryContent","first","asTabWidget","replaceWith","object","spawnSettingsModal","currentVAD","slider","vad","per","one","registerCloseListener","mselect","mselectError","mediaDevices","enumerateDevices","devices","currentDeviceId","currentStream","getMediaStream","getAudioTracks","getSettings","kind","dtag","label","deviceSelected","changeDevice","initialiseVoiceListeners","initialiseSettingListeners","ControlBar","onConnect","onAway","onInputMute","onOutputMute","onOpenSettings","away","_away","_muteInput","_muteOutput","updateMicrophoneRecordState","_awayMessage","enabled","spawnConnectModal","TSClient","FileManager","_ownEntry","registerClient","addr","REQUESTED","lastIndexOf","initialiseHead","startConnection","setServer","requestPermissionList","requestGroups","CONNECTION_PING_TIMEOUT","dropSession","FileEntry","FileListRequest","DownloadFileTransfer","currentSize","on_start","on_complete","on_fail","transferId","remoteHost","remotePort","transferKey","totalSize","_active","onOpen","onMessage","onError","_parseActive","fileReader","FileReader","onload","onBinaryData","readAsArrayBuffer","_succeed","listRequests","pendingDownloadTransfers","downloadCounter","IconManager","AvatarManager","notifyFileList","notifyFileListFinished","notifyStartDownload","path","accept","req","file","transfer","clientftfid","serverTransferId","Icon","requestFileList","requestFileDownload","base64","resolveCached","downloadIcon","ft","startTransfer","img","loader","loadIcon","Avatar","avatar","downloadAvatar","loadAvatar","Pointer_stringify","Module","functionLastError","functionDestroyString","functionDestroyIdentity","unwarpString","setup","cwrap","funcationParseIdentity","funcationParseIdentityByFile","funcationCalculateSecurityLevel","funcationExportIdentity","funcationPublicKey","funcationSignMessage","functionUid","last_error","loadIdentity","TeamSpeakIdentity","loadIdentityFromFileContains","contains","_name","TeaForumIdentity","sign","identityData","htmlEscape","div","innerText","innerHTML","jQuery","pattern","objects","begin","found","includes","ChatMessage","date","num","dateTag","getUTCHours","getUTCMinutes","getUTCSeconds","ChatEntry","history","pushChatMessage","fmt","box","mbox","bottom","scrollTop","unread","chatIcon","closeTag","_closeable","actions","displayHistory","deleteChat","newName","_unread","GENERAL","ChatBox","onSend","shiftKey","testMessage","chats","_activeChat","activeChat0","textBox","flagAllowSend","B_CLIENT_SERVER_TEXTMESSAGE_SEND","B_CLIENT_CHANNEL_TEXTMESSAGE_SEND","log_1","category_mapping","Map","logDirect","optionalParams","INFO","WARNING","ERROR","category","unshift","get","level","_collapsed","groupCollapsed","groupEnd","defaultHost","connectIdentity","contents","updateFields","field_address","address","flag_address","match","Regex","IP_V4","DOMAIN","field_nickname","nickname","flag_nickname","reader","exported","readAsText","files","forumIdentity","IP_V6","IP","client_name","maxTime","unlimited","banTag","durationTag","selectedOptions","BasicCodec","codecSampleRate","channelCount","samplesPerUnit","_audioContext","OfflineAudioContext","_codecSampleRate","_decodeResampler","AudioResampler","_encodeResampler","cache","pcm","resample","encodeSamples0","bufferedSamples","createBuffer","cpyBytes","copyRangeTo","encodeBegin","decode","_workerListener","_workerCallbackToken","_workerTokeIndex","_initialized","_initializePromise","spawnWorker","token","generateToken","sendWorkerMessage","Float32Array","dataLength","audioBuf","transfare","_worker","postMessage","_workerCallbackResolve","_workerCallbackReject","Worker","onWorkerMessage","main","initializeAudioController","window","returnValue","app","loadedListener","RawCodec","bufferSize","converterRaw","_malloc","converter","HEAPU8","HEAPF32","byteOffset","copyToChannel","hexCodes","view","DataView","padding","paddedValue","getUint32","getUint8","join","virtualserver_icon_id","virtualserver_uptime","virtualserver_maxclients","lastInfoRequest","serverIcon","spawnContextMenu","targetSampleRate","context","source","ceil","startRendering"],"mappings":"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"} \ No newline at end of file diff --git a/img/loading_image.svg b/img/loading_image.svg index ff796424..8f33a2b7 100644 --- a/img/loading_image.svg +++ b/img/loading_image.svg @@ -103,4 +103,5 @@ id="path13674" /> \ No newline at end of file + id="path13676" /> + \ No newline at end of file diff --git a/index.php b/index.php index 2f5746a0..0c055044 100644 --- a/index.php +++ b/index.php @@ -30,6 +30,7 @@ + @@ -105,6 +106,7 @@
+
@@ -117,9 +119,7 @@
-
-
TeaSpeak web!
-
+
@@ -136,7 +136,7 @@
-
+
@@ -148,6 +148,9 @@
+ +
+
diff --git a/js/FileManager.ts b/js/FileManager.ts index 462e17b3..d7b0f91d 100644 --- a/js/FileManager.ts +++ b/js/FileManager.ts @@ -425,14 +425,13 @@ class AvatarManager { img.attr("alt", ""); let avatar = this.resolveCached(client); + avatar = undefined; if(avatar) { img.attr("src", "data:image/png;base64," + avatar.base64); tag.append(img); } else { - img.attr("src", "file://null"); - - let loader = $.spawn("div"); - loader.addClass("avatar_loading"); + let loader = $.spawn("img"); + loader.attr("src", "img/loading_image.svg").css("width", "75%"); tag.append(loader); this.loadAvatar(client).then(avatar => { @@ -448,7 +447,7 @@ class AvatarManager { }).catch(reason => { console.error("Could not load avatar for " + client.clientNickName() + ". Reason: " + reason); //TODO Broken image - loader.removeClass("avatar_loading").addClass("icon client-warning").attr("tag", "Could not load avatar " + client.clientNickName()); + loader.addClass("icon client-warning").attr("tag", "Could not load avatar " + client.clientNickName()); }); } diff --git a/js/InfoBar.ts b/js/InfoBar.ts index c91263d1..c9392eb9 100644 --- a/js/InfoBar.ts +++ b/js/InfoBar.ts @@ -16,13 +16,17 @@ class InfoBar { private createInfoTable(infos: any) : JQuery { - let table = $("
"+e+":"+infos[e]+"
"); + let table = $.spawn("table"); - for(let e in infos) { - console.log("Display info " + e); - let entry = $(""); - entry.append(""); - entry.append(""); + for(let key in infos) { + console.log("Display info " + key); + let entry = $.spawn("tr"); + entry.append($.spawn("td").addClass("info_key").html(key + ":")); + let value = $.spawn("td"); + console.log(infos[key]); + console.log( MessageHelper.formatElement(infos[key])); + MessageHelper.formatElement(infos[key]).forEach(e => e.appendTo(value)); + entry.append(value); table.append(entry); } @@ -106,7 +110,7 @@ class InfoBar { } else if(this._currentSelected instanceof ChannelEntry) { let props = this._currentSelected.properties; this._htmlTag.append(this.createInfoTable({ - "Name": this._currentSelected.createChatTag().html(), + "Name": this._currentSelected.createChatTag(), "Topic": this._currentSelected.properties.channel_topic, "Codec": this._currentSelected.properties.channel_codec, "Codec Quality": this._currentSelected.properties.channel_codec_quality, @@ -115,20 +119,35 @@ class InfoBar { "Subscription Status": "unknown", "Voice Data Encryption": "unknown" })); - } else if(this._currentSelected instanceof ClientEntry) { - this._currentSelected.updateVariables(); + } else if(this._currentSelected instanceof MusicClientEntry) { + this._htmlTag.append("Im a music bot!"); + let frame = $("#tmpl_music_frame" + (this._currentSelected.properties.music_track_id == 0 ? "_empty" : "")).tmpl({ + thumbnail: "img/loading_image.svg" + }).css("align-self", "center"); + if(this._currentSelected.properties.music_track_id == 0) { + + } else { + + } + + this._htmlTag.append(frame); + //TODO + } else if(this._currentSelected instanceof ClientEntry) { this._currentSelected.updateClientVariables(); let version: string = this._currentSelected.properties.client_version; if(!version) version = ""; let infos = { - "Name": this._currentSelected.createChatTag().html(), + "Name": this._currentSelected.createChatTag(), "Description": this._currentSelected.properties.client_description, - "Version": "" + version.split(" ")[0] + "" + " on " + this._currentSelected.properties.client_platform, - "Online since": "" + formatDate(this._currentSelected.calculateOnlineTime()) + "", + "Version": MessageHelper.formatMessage("{0} on {1}", $.spawn("a").attr("title", version).text(version.split(" ")[0]), this._currentSelected.properties.client_platform), + "Online since": $.spawn("a").addClass("online").text(formatDate(this._currentSelected.calculateOnlineTime())), "Volume": this._currentSelected.audioController.volume * 100 + " %" }; - if(this._currentSelected.properties["client_teaforum_id"] > 0) { - infos["TeaSpeak Account"] = "{0}".format(this._currentSelected.properties["client_teaforum_name"], this._currentSelected.properties["client_teaforum_id"]); + if(this._currentSelected.properties.client_teaforum_id > 0) { + infos["TeaSpeak Account"] = $.spawn("a") + .attr("href", "//forum.teaspeak.de/index.php?members/" + this._currentSelected.properties.client_teaforum_id) + .attr("target", "_blank") + .text(this._currentSelected.properties.client_teaforum_id); } this._htmlTag.append(this.createInfoTable(infos)); @@ -169,7 +188,8 @@ class InfoBar { let channelGroup = $.spawn("div"); channelGroup .css("display", "flex") - .css("flex-direction", "column"); + .css("flex-direction", "column") + .css("margin-bottom", "20px"); let header = $.spawn("div"); header @@ -189,15 +209,42 @@ class InfoBar { .css("margin-left", "10px") .css("align-items", "center"); this.handle.fileManager.icons.generateTag(group.properties.iconid).appendTo(groupTag); - $.spawn("div").text(group.name).css("margin-left", "3px").appendTo(groupTag); + $.spawn("div").text(group.name) + .css("margin-left", "3px").appendTo(groupTag); groupTag.appendTo(channelGroup); } this._htmlTag.append(channelGroup); } - if(this._currentSelected.properties.client_flag_avatar.length > 0) - this.handle.fileManager.avatars.generateTag(this._currentSelected).appendTo(this._htmlTag); + { + if(this._currentSelected.properties.client_flag_avatar.length > 0) + this.handle.fileManager.avatars.generateTag(this._currentSelected) + .css("max-height", "90%") + .css("max-width", "100%").appendTo(this._htmlTag); + } + + { + let spawnTag = (type: string, description: string) : JQuery => { + return $.spawn("div").css("display", "inline-flex") + .append($.spawn("div").addClass("icon_x32 client-" + type).css("margin-right", "5px")) + .append($.spawn("a").text(description).css("align-self", "center")); + }; + + if(!this._currentSelected.properties.client_output_hardware) + spawnTag("hardware_output_muted", "Speakers/Headphones disabled").appendTo(this._htmlTag); + + + if(!this._currentSelected.properties.client_input_hardware) + spawnTag("hardware_input_muted", "Microphone disabled").appendTo(this._htmlTag); + + if(this._currentSelected.properties.client_output_muted) + spawnTag("output_muted", "Speakers/Headphones Muted").appendTo(this._htmlTag); + + if(this._currentSelected.properties.client_input_muted) + spawnTag("input_muted", "Microphone Muted").appendTo(this._htmlTag); + } + this.intervals.push(setInterval(this.updateClientTimings.bind(this),1000)); } } diff --git a/js/chat.ts b/js/chat.ts index 6d46b0a0..6d884fb2 100644 --- a/js/chat.ts +++ b/js/chat.ts @@ -5,12 +5,79 @@ enum ChatType { CLIENT } +namespace MessageHelper { + export function htmlEscape(message: string) : string { + const div = document.createElement('div'); + div.innerText = message; + message = div.innerHTML; + return message.replace(/ /g, ' '); + } + + export function formatElement(object: any) : JQuery[] { + if($.isArray(object)) { + let result = []; + for(let element of object) + result.push(...this.formatElement(element)); + return result; + } else if(typeof(object) == "string") { + if(object.length == 0) return []; + return [$.spawn("a").html(this.htmlEscape(object))]; + } else if(typeof(object) === "object") { + if(object instanceof jQuery) + return [object]; + return this.formatElement(""); + } else if(typeof(object) === "function") return this.formatElement(object()); + else if(typeof(object) === "undefined") return this.formatElement(""); + return this.formatElement(""); + } + + export function formatMessage(pattern: string, ...objects: any[]) : JQuery[] { + let begin = 0, found = 0; + + let result: JQuery[] = []; + do { + found = pattern.indexOf('{', found); + if(found == -1 || pattern.length <= found + 1) { + result.push(...this.formatElement(pattern.substr(begin))); + break; + } + + if(found > 0 && pattern[found - 1] == '\\') { + //TODO remove the escape! + found++; + continue; + } + + result.push(...this.formatElement(pattern.substr(begin, found - begin))); //Append the text + + let number; + let offset = 0; + while ("0123456789".includes(pattern[found + 1 + offset])) offset++; + number = parseInt(offset > 0 ? pattern.substr(found + 1, offset) : "0"); + + if(pattern[found + offset + 1] != '}') { + found++; + continue; + } + + if(objects.length < number) + console.warn("Message to format contains invalid index (" + number + ")"); + + result.push(...this.formatElement(objects[number])); + begin = found = found + 2 + offset; + console.log("Offset: " + offset + " Number: " + number); + } while(found++); + + return result; + } +} + class ChatMessage { date: Date; - message: string; + message: JQuery[]; private _htmlTag: JQuery; - constructor(message) { + constructor(message: JQuery[]) { this.date = new Date(); this.message = message; } @@ -32,29 +99,12 @@ class ChatMessage { dateTag.css("margin-right", "4px"); dateTag.css("color", "dodgerblue"); - let messageTag = $.spawn("div"); - messageTag.html(this.message); - messageTag.css("color", "blue"); - this._htmlTag = tag; tag.append(dateTag); - tag.append(messageTag); + this.message.forEach(e => e.appendTo(tag)); tag.hide(); return tag; } - - static formatMessage(message: string) : string { - /* - message = message - .replace(/ /g, ' ') - .replace(/\n/g, "
"); - */ - const div = document.createElement('div'); - div.innerText = message; - message = div.innerHTML; - console.log(message + "->" + div.innerHTML); - return message; - } } class ChatEntry { @@ -81,24 +131,17 @@ class ChatEntry { } appendError(message: string, ...args) { - this.appendMessage("{0}".format(ChatMessage.formatMessage(message).format(...args)), false); + let entries = MessageHelper.formatMessage(message, ...args); + entries.forEach(e => e.css("color", "red")); + this.pushChatMessage(new ChatMessage(entries)); } appendMessage(message : string, fmt: boolean = true, ...args) { - let parms: any[] = []; - for(let index = 2; index < arguments.length; index++) { - if(typeof arguments[index] == "string") arguments[index] = ChatMessage.formatMessage(arguments[index]); - else if(arguments[index] instanceof jQuery) arguments[index] = arguments[index].html(); - else { - console.error("Invalid type " + typeof arguments[index] + "|" + arguments[index].prototype); - arguments[index] = arguments[index].toString(); - } - parms.push(arguments[index]); - } - let msg : string = fmt ? ChatMessage.formatMessage(message) : message; - msg = msg.format(parms); - let elm = new ChatMessage(msg); - this.history.push(elm); + this.pushChatMessage(new ChatMessage(MessageHelper.formatMessage(message, ...args))); + } + + private pushChatMessage(entry: ChatMessage) { + this.history.push(entry); while(this.history.length > 100) { let elm = this.history.pop_front(); elm.htmlTag.animate({opacity: 0}, 200, function () { @@ -109,8 +152,8 @@ class ChatEntry { let box = $(this.handle.htmlTag).find(".messages"); let mbox = $(this.handle.htmlTag).find(".message_box"); let bottom : boolean = box.scrollTop() + box.height() + 1 >= mbox.height(); - mbox.append(elm.htmlTag); - elm.htmlTag.show().css("opacity", "0").animate({opacity: 1}, 100); + mbox.append(entry.htmlTag); + entry.htmlTag.show().css("opacity", "0").animate({opacity: 1}, 100); if(bottom) box.scrollTop(mbox.height()); } else { this.unread = true; diff --git a/js/connection.ts b/js/connection.ts index 80f281b9..803d1c8d 100644 --- a/js/connection.ts +++ b/js/connection.ts @@ -1,5 +1,6 @@ /// /// +/// class CommandResult { success: boolean; @@ -466,7 +467,11 @@ class ConnectionCommandHandler { client = tree.findClient(json["clid"]); if(!client) { - client = new ClientEntry(parseInt(json["clid"]), json["client_nickname"]); + if(parseInt(json["client_type_exact"]) == ClientType.CLIENT_MUSIC) { + client = new MusicClientEntry(parseInt(json["clid"]), json["client_nickname"]); + } else { + client = new ClientEntry(parseInt(json["clid"]), json["client_nickname"]); + } client = tree.insertClient(client, channel); } else { if(client == this.connection._client.getClient()) @@ -500,6 +505,9 @@ class ConnectionCommandHandler { } client.updateVariables(...updates); + + if(client instanceof LocalClientEntry) + this.connection._client.controlBar.updateVoice(); } handleCommandClientLeftView(json) { @@ -575,22 +583,24 @@ class ConnectionCommandHandler { if(!channel_from) //Not critical console.error("Unknown client move (Channel from)!"); - if(client instanceof LocalClientEntry) { + let self = client instanceof LocalClientEntry; + if(self) { chat.channelChat().name = channel_to.channelName(); for(let entry of client.channelTree.clientsByChannel(client.currentChannel())) if(entry !== client) entry.getAudioController().stopAudio(true); + this.connection._client.controlBar.updateVoice(channel_to); } tree.moveClient(client, channel_to); if(json["reasonid"] == ViewReasonId.VREASON_MOVED) { - chat.serverChat().appendMessage("{0} was moved from channel {1} to {2} by {3}", true, + chat.serverChat().appendMessage(self ? "You was moved by {3} from channel {1} to {2}" : "{0} was moved from channel {1} to {2} by {3}", true, client.createChatTag(true), channel_from ? channel_from.createChatTag(true) : undefined, channel_to.createChatTag(true), ClientEntry.chatTag(json["invokerid"], json["invokername"], json["invokeruid"]) ); } else if(json["reasonid"] == ViewReasonId.VREASON_USER_ACTION) { - chat.serverChat().appendMessage("{0} switched from channel {1} to {2}", true, + chat.serverChat().appendMessage(self ? "You switched from channel {1} to {2}" : "{0} switched from channel {1} to {2}", true, client.createChatTag(true), channel_from ? channel_from.createChatTag(true) : undefined, channel_to.createChatTag(true) diff --git a/js/load.ts b/js/load.ts index b541b338..79e52670 100644 --- a/js/load.ts +++ b/js/load.ts @@ -145,8 +145,10 @@ function loadDebug() { "js/ui/modal/ModalCreateChannel.js", "js/ui/modal/ModalConnect.js", "js/ui/modal/ModalChangeVolume.js", + "js/ui/modal/ModalBanClient.js", "js/ui/channel.js", "js/ui/client.js", + "js/ui/MusicClient.js", "js/ui/server.js", "js/ui/view.js", "js/ui/ControlBar.js", diff --git a/js/main.ts b/js/main.ts index ab9a48e1..3e94ba4a 100644 --- a/js/main.ts +++ b/js/main.ts @@ -4,6 +4,7 @@ /// /// /// +/// /// /// /// @@ -16,6 +17,7 @@ let forumIdentity: TeaForumIdentity; function main() { //localhost:63343/Web-Client/index.php?disableUnloadDialog=1&default_connect_type=forum&default_connect_url=localhost + //disableUnloadDialog=1&default_connect_type=forum&default_connect_url=localhost&loader_ignore_age=1 AudioController.initializeAudioController(); if(!TSIdentityHelper.setup()) { console.error("Could not setup the TeamSpeak identity parser!"); return; } @@ -43,11 +45,19 @@ function main() { //Modals.createChannelModal(undefined); if(settings.static("default_connect_url")) { - if(settings.static("default_connect_type", "forum")) { + if(settings.static("default_connect_type", "forum") == "forum") { globalClient.startConnection(settings.static("default_connect_url"), forumIdentity); } else Modals.spawnConnectModal(settings.static("default_connect_url")); } + + /* + $("#music-test").replaceWith($("#tmpl_music_frame_empty").tmpl({ + thumbnail: "img/loading_image.svg" + })); + */ + + Modals.spawnSettingsModal(); } app.loadedListener.push(() => main()); \ No newline at end of file diff --git a/js/ui/ControlBar.ts b/js/ui/ControlBar.ts index f5cbfa84..7f95ef22 100644 --- a/js/ui/ControlBar.ts +++ b/js/ui/ControlBar.ts @@ -17,6 +17,8 @@ class ControlBar { private _away: boolean; private _awayMessage: string; + private _codecNotSupported: boolean = true; + readonly handle: TSClient; htmlTag: JQuery; @@ -142,6 +144,24 @@ class ControlBar { }); } + updateVoice(targetChannel?: ChannelEntry) { + if(!targetChannel) + targetChannel = this.handle.getClient().currentChannel(); + let voiceSupport = this.handle.voiceConnection.codecSupported(targetChannel.properties.channel_codec); + if(voiceSupport == this._codecNotSupported) return; + this._codecNotSupported = voiceSupport; + + this.htmlTag.find(".btn_mute_input").prop("disabled", !this._codecNotSupported); + this.htmlTag.find(".btn_mute_output").prop("disabled", !this._codecNotSupported); + this.handle.serverConnection.sendCommand("clientupdate", { + client_input_hardware: this._codecNotSupported, + client_output_hardware: this._codecNotSupported + }); + + if(!this._codecNotSupported) + createErrorModal("Channel codec unsupported", "This channel has an unsupported codec.
You cant speak or listen to anybody!").open(); + } + private onOpenSettings() { Modals.spawnSettingsModal(); } diff --git a/js/ui/MusicClient.ts b/js/ui/MusicClient.ts index e69de29b..a61c985c 100644 --- a/js/ui/MusicClient.ts +++ b/js/ui/MusicClient.ts @@ -0,0 +1,53 @@ +/// + +class MusicClientProperties extends ClientProperties { + music_volume: number = 0; + music_track_id: number = 0; +} + +class MusicClientEntry extends ClientEntry { + constructor(clientId, clientName) { + super(clientId, clientName, new MusicClientProperties()); + } + + get properties() : MusicClientProperties { + return this._properties as MusicClientProperties; + } + + showContextMenu(x: number, y: number, on_close: () => void = undefined): void { + spawnMenu(x, y, + { + name: "Change bot name", + icon: "client-change_nickname", + disabled: true, + callback: () => {}, + type: MenuEntryType.ENTRY + }, { + name: "Change bot description", + icon: "client-edit", + disabled: true, + callback: () => {}, + type: MenuEntryType.ENTRY + }, { + name: "Open music panel", + icon: "client-edit", + disabled: true, + callback: () => {}, + type: MenuEntryType.ENTRY + }, + MenuEntry.HR(), + { + name: "Delete bot", + icon: "client-delete", + disabled: true, + callback: () => {}, + type: MenuEntryType.ENTRY + }, + MenuEntry.CLOSE(on_close) + ); + } + + initializeListener(): void { + super.initializeListener(); + } +} \ No newline at end of file diff --git a/js/ui/channel.ts b/js/ui/channel.ts index c35093e5..d8868209 100644 --- a/js/ui/channel.ts +++ b/js/ui/channel.ts @@ -447,7 +447,7 @@ class ChannelEntry { createChatTag(braces: boolean = false) : JQuery { let tag = $.spawn("div"); - tag.css("display", "table"); + tag.css("display", "inline-block"); tag.css("cursor", "pointer"); tag.css("font-weight", "bold"); tag.css("color", "darkblue"); @@ -455,10 +455,15 @@ class ChannelEntry { tag.text("\"" + this.channelName() + "\""); else tag.text(this.channelName()); - tag.attr("oncontextmenu", "chat_channel_contextmenu(this, ...arguments);"); + tag.contextmenu(event => { + if(event.isDefaultPrevented()) return; + event.preventDefault(); + this.showContextMenu(event.pageX, event.pageY); + }); + tag.attr("channelId", this.channelId); tag.attr("channelName", this.channelName()); - return tag.wrap("

").parent(); + return tag; } channelType() : ChannelType { diff --git a/js/ui/client.ts b/js/ui/client.ts index 755a608e..74d7235a 100644 --- a/js/ui/client.ts +++ b/js/ui/client.ts @@ -1,7 +1,18 @@ /// /// +enum ClientType { + CLIENT_VOICE, + CLIENT_QUERY, + CLIENT_INTERNAL, + CLIENT_WEB, + CLIENT_MUSIC, + CLIENT_UNDEFINED +} + class ClientProperties { + client_type: ClientType = ClientType.CLIENT_VOICE; //TeamSpeaks type + client_type_exact: ClientType = ClientType.CLIENT_VOICE; client_version: string = ""; client_platform: string = ""; client_nickname: string = "unknown"; @@ -14,32 +25,37 @@ class ClientProperties { client_flag_avatar: string = ""; - client_output_muted: boolean = false; client_away_message: string = ""; client_away: boolean = false; client_input_hardware: boolean = false; + client_output_hardware: boolean = false; client_input_muted: boolean = false; + client_output_muted: boolean = false; client_is_channel_commander: boolean = false; + + client_teaforum_id: number = 0; + client_teaforum_name: string = ""; } class ClientEntry { - private _clientId: number; - private _channel: ChannelEntry; - private _tag: JQuery; + protected _clientId: number; + protected _channel: ChannelEntry; + protected _tag: JQuery; - properties: ClientProperties = new ClientProperties(); - private lastVariableUpdate: number = 0; - private _speaking: boolean = false; + protected _properties: ClientProperties; + protected lastVariableUpdate: number = 0; + protected _speaking: boolean = false; channelTree: ChannelTree; audioController: AudioController; - constructor(clientId, clientName) { + constructor(clientId, clientName, properties: ClientProperties = new ClientProperties()) { + this._properties = properties; + this._properties.client_nickname = clientName; this._clientId = clientId; - this.properties.client_nickname = clientName; this.channelTree = null; this._channel = null; this.audioController = new AudioController(); @@ -55,6 +71,10 @@ class ClientEntry { this.audioController.initialize(); } + get properties() : ClientProperties { + return this._properties; + } + currentChannel() { return this._channel; } clientNickName(){ return this.properties.client_nickname; } clientUid(){ return this.properties.client_unique_identifier; } @@ -175,8 +195,16 @@ class ClientEntry { type: MenuEntryType.ENTRY, icon: "client-ban_client", name: "Ban client", - disabled: true, - callback: () => {} + invalidPermission: !this.channelTree.client.permissions.neededPermission(PermissionType.I_CLIENT_BAN_MAX_BANTIME).granted(1), + callback: () => { + Modals.spawnBanClient(this.properties.client_nickname, (duration, reason) => { + this.channelTree.client.serverConnection.sendCommand("banclient", { + uid: this.properties.client_unique_identifier, + banreason: reason, + time: duration + }); + }); + } }, MenuEntry.HR(), { @@ -219,20 +247,30 @@ class ClientEntry { static chatTag(id: number, name: string, uid: string, braces: boolean = false) : JQuery { let tag = $.spawn("div"); - tag.css("cursor", "pointer"); - tag.css("font-weight", "bold"); - tag.css("color", "darkblue"); - tag.css("display", "table"); + tag.css("cursor", "pointer") + .css("font-weight", "bold") + .css("color", "darkblue") + .css("display", "inline-block") + .css("margin", 0); if(braces) tag.text("\"" + name + "\""); else tag.text(name); - tag.attr("oncontextmenu", "chat_client_contextmenu(this, ...arguments);"); + + tag.contextmenu(event => { + if(event.isDefaultPrevented()) return; + + event.preventDefault(); + let client = globalClient.channelTree.findClient(id); + if(!client) return; + if(client.properties.client_unique_identifier != uid) return; + client.showContextMenu(event.pageX, event.pageY); + }); tag.attr("clientId", id); tag.attr("clientUid", uid); tag.attr("clientName", name); - return tag.wrap("

").parent(); + return tag; } createChatTag(braces: boolean = false) : JQuery { @@ -384,7 +422,7 @@ class ClientEntry { } calculateOnlineTime() : number { - return new Date().getTime() / 1000 - this.properties.client_lastconnected; + return Date.now() / 1000 - this.properties.client_lastconnected; } avatarId?() : string { @@ -506,23 +544,4 @@ class LocalClientEntry extends ClientEntry { }); }); } -} -//Global functions -function chat_client_contextmenu(_element: any, event: any) { - event.preventDefault(); - - let element = $(_element); - console.log("Context menue for " + element.attr("clientName")); - let clid : number = Number.parseInt(element.attr("clientId")); - let client = globalClient.channelTree.findClient(clid); - if(!client) { - //TODO - return; - } - if(client.clientUid() != element.attr("clientUid")) { - //TODO - return; - } - - client.showContextMenu(event.pageX, event.pageY); } \ No newline at end of file diff --git a/js/ui/modal/ModalBanClient.ts b/js/ui/modal/ModalBanClient.ts index e69de29b..99c83671 100644 --- a/js/ui/modal/ModalBanClient.ts +++ b/js/ui/modal/ModalBanClient.ts @@ -0,0 +1,91 @@ +/// +/// +/// + +namespace Modals { + export function spawnBanClient(name: string, callback: (length: number, reason: string) => void) { + const connectModal = createModal({ + header: function() { + return "Ban client"; + }, + body: function () { + let tag = $("#tmpl_client_ban").tmpl({ + client_name: name + }); + + let maxTime = 0; //globalClient.permissions.neededPermission(PermissionType.I_CLIENT_BAN_MAX_BANTIME).value; + let unlimited = maxTime == 0 || maxTime == -1; + if(unlimited) maxTime = 0; + + let banTag = tag.find(".ban_duration_type"); + let durationTag = tag.find(".ban_duration"); + banTag.find("option[value=\"sec\"]").prop("disabled", !unlimited && 1 > maxTime) + .attr("duration-scale", 1) + .attr("duration-max", maxTime); + banTag.find("option[value=\"min\"]").prop("disabled", !unlimited && 60 > maxTime) + .attr("duration-scale", 60) + .attr("duration-max", maxTime / 60); + banTag.find("option[value=\"hours\"]").prop("disabled", !unlimited && 60 * 60 > maxTime) + .attr("duration-scale", 60 * 60) + .attr("duration-max", maxTime / (60 * 60)); + banTag.find("option[value=\"days\"]").prop("disabled", !unlimited && 60 * 60 * 24 > maxTime) + .attr("duration-scale", 60 * 60 * 24) + .attr("duration-max", maxTime / (60 * 60 * 24)); + banTag.find("option[value=\"perm\"]").prop("disabled", !unlimited) + .attr("duration-scale", 0); + + durationTag.change(() => banTag.trigger('change')); + + banTag.change(event => { + let element = $((event.target as HTMLSelectElement).selectedOptions.item(0)); + if(element.val() !== "perm") { + durationTag.prop("disabled", false); + + let current = durationTag.val() as number; + let max = parseInt(element.attr("duration-max")); + if (max > 0 && current > max) + durationTag.val(max); + else if(current <= 0) + durationTag.val(1); + durationTag.attr("max", max); + } else { + durationTag.prop("disabled", true); + } + }); + + return tag; + }, + footer: function () { + let tag = $.spawn("div"); + tag.css("text-align", "right"); + tag.css("margin-top", "3px"); + tag.css("margin-bottom", "6px"); + tag.addClass("modal-button-group"); + + let buttonCancel = $.spawn("button"); + buttonCancel.text("Cancel"); + buttonCancel.on("click", () => connectModal.close()); + tag.append(buttonCancel); + + + let buttonOk = $.spawn("button"); + buttonOk.text("OK").addClass("btn_success"); + tag.append(buttonOk); + return tag; + }, + + width: 450 + }); + connectModal.open(); + + connectModal.htmlTag.find(".btn_success").on('click', () => { + connectModal.close(); + + let length = connectModal.htmlTag.find(".ban_duration").val() as number; + let duration = connectModal.htmlTag.find(".ban_duration_type option:selected"); + console.log(duration); + console.log(length + "*" + duration.attr("duration-scale")); + callback(length * parseInt(duration.attr("duration-scale")), connectModal.htmlTag.find(".ban_reason").val() as string); + }) + } +} \ No newline at end of file diff --git a/js/ui/server.ts b/js/ui/server.ts index 8e1d6f7a..98746314 100644 --- a/js/ui/server.ts +++ b/js/ui/server.ts @@ -33,12 +33,11 @@ class ServerEntry { tag.attr("id", "server"); tag.addClass("server"); tag.append($.spawn("div").addClass("server_type icon client-server_green")); - - tag.append("" + this.properties.virtualserver_name + ""); + tag.append($.spawn("a").addClass("name").text(this.properties.virtualserver_name)); const serverIcon = $(""); //we cant spawn an icon on creation :) - serverIcon.append("

"); + serverIcon.append($.spawn("div").addClass("icon_property icon_empty")); tag.append(serverIcon); return this._htmlTag = tag; @@ -89,7 +88,7 @@ class ServerEntry { } shouldUpdateProperties() : boolean { - return this.nextInfoRequest < new Date().getTime(); + return this.nextInfoRequest < Date.now(); } calculateUptime() : number { diff --git a/templates.html b/templates.html index 66f8a755..88f40c5d 100644 --- a/templates.html +++ b/templates.html @@ -166,9 +166,9 @@ Voice -
-
- Microphone: +
+ @@ -217,5 +217,90 @@
±0 %
+ + + + + + \ No newline at end of file
" + e + ":" + infos[e] + "