您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Editing Overall Theme of Tinychat. 12 Color Themes, Background Images, and More! Install and refresh.
// ==UserScript== // @name TinyLlama : Tinychat Themes and Extra Features // @namespace http://www.smokeyllama.com // @version 2021.15 // @description Editing Overall Theme of Tinychat. 12 Color Themes, Background Images, and More! Install and refresh. // @author SmokeyLlama // @match https://tinychat.com/* // @match https://tinychat.com/room/* // @exclude https://tinychat.com/room/*?1 // @grant GM_setValue // @grant GM_getValue // @grant GM_listValues // @license MIT // ==/UserScript== /* Room vs Homepage */ if (/\/room/.test(location.pathname)) { LLAMA_SocketWatcher``; var initInterval = setInterval(function() { if (document.querySelector("tinychat-webrtc-app").shadowRoot) LLAMAapp = runLLAMA``; else llamaConsole("Waiting for DOM..."); }, 500); function runLLAMA() { clearInterval(initInterval); llamaConsole("> Starting TINY-LLAMA...") try { // Default Variables var bodyElem = document.querySelector("body"); var webappOuter = document.querySelector("tinychat-webrtc-app"); var webappElem = webappOuter.shadowRoot; var chatlogOuter = webappElem.querySelector("#room-content"); var chatlogElem = webappElem.querySelector("tc-chatlog").shadowRoot; var titleElem = webappElem.querySelector("tc-title").shadowRoot; var sidemenuElem = webappElem.querySelector("tc-sidemenu").shadowRoot; var videomoderationElem = sidemenuElem.querySelector("tc-video-moderation").shadowRoot; var videolistElem = webappElem.querySelector("tc-videolist").shadowRoot; var chatlistElem = sidemenuElem.querySelector("tc-chatlist").shadowRoot; var userlistElem = sidemenuElem.querySelector("tc-userlist").shadowRoot; var userContextmenuElem = userlistElem.querySelector("tc-user-contextmenu").shadowRoot; var chatlogCSS = chatlogElem.querySelector("#chat-wrapper"); var sidemenuCSS = sidemenuElem.querySelector("#sidemenu"); var videomoderationCSS = videomoderationElem.querySelector("#moderatorlist"); var webappCSS = webappElem.querySelector("#room"); var chatlistCSS = chatlistElem.querySelector("#chatlist"); var userlistCSS = userlistElem.querySelector("#userlist"); var userContextmenuCSS = userContextmenuElem.querySelector("#main"); var titleCSS = titleElem.querySelector("#room-header"); var themeCSS = titleElem.querySelector("#llama-themes"); var buttonCSS = videolistElem.querySelector("#videos-footer"); var videolistCSS = videolistElem.querySelector("#videolist"); var bodyCSS = document.querySelector("body"); var userinfoCont = sidemenuElem.querySelector("#user-info > div"); var scrollbox = chatlogElem.querySelector("#chat"); var unreadbubble = chatlogElem.querySelector("#input-unread"); var resourceDirectory = document.querySelector('link[rel="manifest"]').getAttribute("href").split("manifest")[0]; // \/([\d\.\-])+\/ var pinkPop = new Audio(resourceDirectory + 'sound/pop.mp3'); var weedPop = new Audio('https://smokeyllama.com/bong.mp3'); var audioPop = new Audio(resourceDirectory + 'sound/pop.mp3'); var settingMentions = []; var giftsElemWidth = 127; var messageHeight; var chatboxHeight; var totalScrolledUp = 0; var freshInstall = (GM_listValues().length == 0); var isModerator = (!userlistElem.querySelector("#button-banlist").classList.contains("hidden")); var isPaidAccount = (sidemenuElem.querySelector("#sidemenu-wider")); var browserFirefox = navigator.userAgent.includes("Firefox/"); var urlAddress = new URL(window.location.href); var urlPars = urlAddress.searchParams; var messageQueryString = "#chat-content .message:not(.llama-systemMsg)"; var camQueryString = ".videos-items:last-child > .js-video"; var userCount = 0; var messageCount = 0; var camMaxedCurrent = null; var camClosedCurrent = null; var autoScrollStatus = true; var roomName = webappOuter.getAttribute("roomname"); var joinTime = getFormattedDateTime(new Date(), "time"); var joinDate = getFormattedDateTime(new Date()); document.title = roomName + " - Tinychat"; declareGlobalVars(); var settingsWaitInterval = setInterval(waitForSettings, 1000); // [START] CSS VARIABLES // I got tired of running around for css sections // if statements are purely for collapse ability if ('llamaSettingsCSS' != true) { var llamaSettingsCSS = (` <!--- START OF THEMES ---> <div id="llama-themes"> <div id="llama-themesBox" class="hidden"> <div id="llama-colors"> <div id="llama-settings-pinkmode"> <label class="llama-color-container"> <input type="checkbox"><span class="checkmark" title="PINK"></span> <div class="foo2 pink"></div> </label> </div> <div id="llama-settings-greenmode"> <label class="llama-color-container"> <input type="checkbox"><span class="checkmark" title="GREEN"></span> <div class="foo2 green"></div> </label> </div> <div id="llama-settings-bluemode"> <label class="llama-color-container"> <input type="checkbox"><span class="checkmark" title="BLUE"></span> <div class="foo2 blue"></div> </label> </div> <div id="llama-settings-mauvemode"> <label class="llama-color-container"> <input type="checkbox"><span class="checkmark" title="MAUVE"></span> <div class="foo2 mauve"></div> </label> </div> <div id="llama-settings-orangemode"> <label class="llama-color-container"> <input type="checkbox"><span class="checkmark" title="ORANGE"></span> <div class="foo2 orange"></div> </label> </div> <div id="llama-settings-redmode"> <label class="llama-color-container"> <input type="checkbox"><span class="checkmark" title="RED"></span> <div class="foo2 red"></div> </label> </div> <div id="llama-settings-purplemode"> <label class="llama-color-container"> <input type="checkbox"><span class="checkmark" title="PURPLE"></span> <div class="foo2 purple"></div> </label> </div> <div id="llama-settings-blackmode"> <label class="llama-color-container"> <input type="checkbox"><span class="checkmark" title="BLACK"></span> <div class="foo2 black"></div> </label> </div> <div id="llama-settings-trueblackmode"> <label class="llama-color-container"> <input type="checkbox"><span class="checkmark" title="TRUE BLACK"></span> <div class="foo2 trueblack"></div> </label> </div> <div id="llama-settings-defaultmode"> <label class="llama-color-container"> <input type="checkbox"><span class="checkmark" title="WHITE"></span> <div class="foo2 default"></div> </label> </div> <div id="llama-settings-weedmode"> <label class="llama-color-container"> <input type="checkbox"><span class="checkmark feature1" title="Weed"></span> <div class="foo2 featureone"></div> </label> </div> <div id="llama-settings-smashbrosmode"> <label class="llama-color-container"> <input type="checkbox"><span class="checkmark feature2" title="Smash Bros"></span> <div class="foo2 featuretwo"></div> </label> </div> <div id="llama-settings-splatoonmode"> <label class="llama-color-container"> <input type="checkbox"><span class="checkmark feature3" title="Splatoon"></span> <div class="foo2 featurethree"></div> </label> </div> <div id="featured" class="featured" style="display:none;"> <div id="llama-settings-featuredmode">FEATURED</div> </div> </div> </div> <div id="llama-themesGear" title="Themes"> <style> #llama-themesGear:hover { cursor: pointer;} #llama-themesGear:hover > #llama-themesButton { background-color: var(--llamatheme-bordercolor)} llama-themesButton #llama-themesGear>div>span:after { content: ""; position: relative; display: none; /* display: inline-block; */ height: 7px; width: 7px; top: -1px; left: 0; margin-left: 4px; border-width: 2px 2px 0 0; border-style: solid; border-color: #fff; box-sizing: border-box; transform: rotate(45deg); -webkit-transform: rotate(45deg); transition: .2s; } #llama-themesGear>div>span:hover::after { margin-left: 8px; } #llama-themesButton.llama-themes-open>span::after { border-width: 0 0 2px 2px; margin-left: 8px; } </style> <div class="llama-themesButton" id="llama-themesButton"><span><img src="https://raw.githubusercontent.com/snwh/paper-icon-theme/master/Paper/512x512/apps/preferences-color.png" width="20px" style="margin-top:3px;"></span></div> </div></div></div> <!--- END OF THEMES ---> <!--- START OF HIDING ---> <style> #llama-hidinglist>a { background-color: #002f3e; border: 1px solid #c1c1c17d; border-bottom-right-radius: 5px; color: #fff; text-decoration: none; padding: 5px; position: absolute; left: -2px; box-shadow: -1px 1px 5px 0px #000; } </style> <div id="llama-hiding" style="display:none;"> <div id="llama-hidingBox" class="hidden"> <div id="llama-hidinglist"> <a href="https://smokeyllama.glitch.me/game_list.html" target="gamelist">« RETURN TO GAME LIST</a><!-- Copy and Paste Me --><iframe allow="geolocation; microphone; camera; midi; encrypted-media" src="https://smokeyllama.glitch.me/game_list.html" name="gamelist" style="border:0px;padding:0px;margin:0px;padding-top:10px;"/></iframe> </div> </div> <div id="llama-hidingGear" title="Games"> <div class="llama-hidingButton" id="llama-hidingButton"><span style="margin-left:10px;"> </span> </div> </div> </div> <!--- END OF HIDING ---> <!--- START OF GAMES ---> <style> #llama-gameslist>a { background-color: #002f3e; border: 1px solid #c1c1c17d; border-bottom-right-radius: 5px; color: #fff; text-decoration: none; padding: 5px; position: absolute; left: -2px; box-shadow: -1px 1px 5px 0px #000; } </style> <div id="llama-games" style=""> <div id="llama-gamesBox" class="hidden"> <div id="llama-gameslist"> <a href="https://smokeyllama.glitch.me/game_list.html" target="gamelist">« RETURN TO GAME LIST</a><!-- Copy and Paste Me --><iframe allow="geolocation; microphone; camera; midi; encrypted-media" src="https://smokeyllama.glitch.me/game_list.html" name="gamelist" style="border:0px;padding:0px;margin:0px;padding-top:10px;"/></iframe> </div> </div> <div id="llama-gamesGear" title="Games"> <div class="llama-gamesButton" id="llama-gamesButton"><span style="margin-left:10px;"> </span> </div> </div> </div> <style> .default-theme .chat__LlamaOption { background-color: #006e8c !important; border-color: #04caff !important; color: #fff !important; } .default-theme .chat__LlamaOption.active, .default-theme .chat__LlamaOption:hover{ background-color: #04caff !important; } .chat__LlamaOption.active { font-weight: 600; background-color: var(--llamatheme-buttontext); color: var(--llamatheme-textcolor); } .chat__LlamaOption:hover { background-color: var(--llamatheme-buttontext); } .chat__LlamaOption { width: 100%; display: inline-flex; align-items: center; justify-content: space-between; min-height: 40px; padding: 0; box-sizing: border-box; cursor: pointer; border-radius: 5px; margin: 2px; padding-left: 8px; padding-right: 8px; min-height: 27px; border: 1px solid transparent; border-color: var(--llamatheme-bordercolor); background-color: var(--llamatheme-bordercolor); color: var(--llamatheme-textcolor); box-shadow: 0 -1px rgb(0 0 0/50%) inset!important; } #llama_top_bar { vertical-align: top; display: inline-block; width: 30%; margin-right: 10px; } .llama_settings_inner { width: 450px; } .llama_setting { display: inline-block; width: 65%; max-width: 65%; max-height: 600px; height: 200px; /*overflow: auto;*/ margin-top: 7px; } .d-none { display: none!important; } .w-100 { width: 100%!important; } .dabchatog_mode { background-color: #143848; } .color_square { width: 20px; height: 20px; display: inline-block; margin: 1px; cursor: pointer; border-radius: 3px; border: 1px solid #1b8cb5; } .color_square:hover { transition-timing-function: ease-in; transform: scale(0.9) } .dabchat_mode { background-color: #848e98 } .dabchatog_mode { background-color: #143848 } .pink_mode { background-color: #ffd1dc } .neonpink_mode { background-color: #ad0098 } .green_mode { background-color: #042500 } .neongreen_mode { background-color: #01ca21 } .blue_mode { background-color: #111949 } .mauve_mode { background-color: #9168b2 } .orange_mode { background-color: #b33700 } .red_mode { background-color: #590000 } .purple_mode { background-color: #280048 } .black_mode { background-color: #2c2f33 } .trueblack_mode { background-color: #111 } .default_mode { background-color: #fff } .weed_mode { background-color: transparent; background-image:url('https://i.ibb.co/0Dp3Knx/weed-logo2.png'); background-size: cover; border: 0px; } .smashbros_mode { background-color: transparent; background-image:url('https://i.ibb.co/7KSTsdj/smash-clipart-87526.png'); background-size: cover; border: 0px; } .splatoon_mode { background-color: transparent; background-image:url('https://i.ibb.co/3dHQVhC/splat-mic2.png'); background-size: cover; border: 0px; } .small, small { font-size: 80%; font-weight: 400; } .float-right {float: right !important;} </style> <!--- END OF GAMES ---> <div id="llama-settings"> <div id="llama-settingsGear" title="Settings"> <span style=""> <img src="https://cdn1.iconfinder.com/data/icons/MetroStation-PNG/128/MB__Llama.png" width="20px"> </span> </div> <div id="llama-settingsBox" class="hidden"> <p id="title">⪢ TINY-LLAMA Settings<span class="float-right small"><a href="https://www.smokeyllama.com" target="_blank" rel="noopener">smokeyllama.com</a> | <a href="https://github.com/SmokeyLlama" target="_blank" rel="noopener">scripts gitHub</a></span></p> <div class="llama_settings_inner"> <div id="llama_top_bar"> <label class="button chat__LlamaOption active" id="llama_general"> General </label> <label class="button chat__LlamaOption" id="llama_theme"> Themes </label> <label class="button chat__LlamaOption" id="llama_images"> Images </label> <label class="button chat__LlamaOption" id="llama_cams"> Cams </label> </div> <div class="llama_setting" id="llama_general_settings"> <span style="color: var(--llamatheme-textcolor); font-weight: bold;font-size: 9pt;">General Settings</span> <hr style="border: 2px solid var(--llamatheme-bordercolor);"> <div id="llama-settings-mentions" class="llama-setting-container"> <input type="checkbox"><span class="label">Alert phrases <span class="info" data-title='A comma-separated list of phrases to alert/highlight for. Example of 3 phrases: "hello,Google Chrome,sky"'>?</span></span> <div class="inputcontainer"><input class="text"><button class="save blue-button">save</button></div> </div> <div id="llama-settings-autoscroll" class="llama-setting-container"><input type="checkbox"><span class="label">Autoscroll </span></div> <div id="llama-settings-notifications" class="llama-setting-container"><input type="checkbox"><span class="label">Hide notifications </span></div> <div id="llama-settings-changefont" class="llama-setting-container"><input type="checkbox"><span class="label">Improve font <span class="info" data-title='The default font is too thin in some browsers'>?</span></span></div> <div id="llama-settings-chatbelow" class="llama-setting-container"><input type="checkbox"><span class="label">Chat on Bottom <span class="info" data-title='!! BETA !! ------ If cams dont resize, hit the arrow on the side of the chatlog to force resize.'>*</span></span></div> </div> <div class="llama_setting" id="llama_theme_settings"> <span style="color: var(--llamatheme-textcolor); font-weight: bold;font-size: 9pt;">Theme Settings</span> <hr style="border: 2px solid var(--llamatheme-bordercolor);"> <div class="color_square pink_mode" title="pink" id="pink_square"></div> <div class="color_square green_mode" title="green" id="green_square"></div> <div class="color_square blue_mode" title="blue" id="blue_square"></div> <div class="color_square mauve_mode" title="mauve" id="mauve_square"></div> <div class="color_square orange_mode" title="orange" id="orange_square"></div> <div class="color_square red_mode" title="red" id="red_square"></div> <div class="color_square purple_mode" title="purple" id="purple_square"></div> <div class="color_square black_mode" title="black" id="black_square"></div> <div class="color_square trueblack_mode" title="trueblack" id="trueblack_square"></div> <div class="color_square default_mode" title="default" id="default_square"></div> <br> <div class="color_square weed_mode" title="weed" id="weed_square"></div> <div class="color_square smashbros_mode" title="smash bros" id="smashbros_square"></div> <div class="color_square splatoon_mode" title="splatoon" id="splatoon_square"></div> <div id="llama-trans-chat" class="llama-setting-container"><input type="checkbox" id="llama-trans-chat-checkbox"><span class="label">Transparent Chatbox </span></div> </div> <div class="llama_setting" id="llama_images_settings"> <span style="color: var(--llamatheme-textcolor); font-weight: bold;font-size: 9pt;">Custom Image Settings</span> <hr style="border: 2px solid var(--llamatheme-bordercolor);"> <div id="llama-settings-roombg" class="llama-setting-container"><input type="checkbox"><span class="label">Room BG Image </span></div> <span class="dropdown__Option no_hoverbg no_hover" id="room_bg_box"> <input type="text" id="llama_roombg_img" class="w-100" placeholder="Room BG image URL.."> </span> </div> <div class="llama_setting" id="llama_cams_settings"> <span style="color: var(--llamatheme-textcolor); font-weight: bold;font-size: 9pt;">Cam Settings</span> <hr style="border: 2px solid var(--llamatheme-bordercolor);"> <div id="llama-settings-roundedcams" class="llama-setting-container"><input type="checkbox"><span class="label">Round Cam Corners</span></div> <div id="llama-settings-borderlesscams" class="llama-setting-container"><input type="checkbox"><span class="label">Remove Cam Padding</span></div> <div id="llama-settings-maxcamposition" class="llama-setting-container"><input type="checkbox"><span class="label">Maximized Cam On Left</span></div> </div> </div> </div> </div> </div></div></div> <!--- START OF TEST ---> <div id="llama-settings-miniyt" class="llama-setting-container right" style="position:absolute;right:100px;"> <label class="llama-miniyt-container"> <input type="checkbox""> <span class="checkmark" title="Toggle Mini Youtube"></span> <span class="label"> <img src="https://i.ibb.co/x5wQDvb/MiniYT.png"> <span class="info" data-title='Mini Youtube : After Toggle, Press the arrow button on the side of the chatbox to fix cams!'>?</span> </span> </label> </div> <style> /*-TEST----*/ #llama-settings-miniyt>label:hover { background-color: transparent; border:0px solid var(--llamatheme-bordercolor) !important;} /* On mouse-over, add a grey background color */ .llama-miniyt-container:hover input~.checkmark { background-color: transparent; border-right: 1px solid #fff; border-bottom: 1px solid #fff; border-bottom-right-radius: 10px; border-left: 0px; width: 25px; height: 25px; } /* When the checkbox is checked, add a blue background */ .llama-miniyt-container input:checked~.checkmark { background-color: transparent; border: 0px solid #FFFFFF; border-top-right-radius: 100px; border-bottom-right-radius: 100px; border-left: 0px; width: 25px; } /* Create the checkmark/indicator (hidden when not checked) */ .checkmark:after { content: ""; position: absolute; display: none; } /* Show the checkmark when checked */ .llama-miniyt-container input:checked~.checkmark:after { display: block; } /* Style the checkmark/indicator */ #llama-settings-miniyt>label>span.checkmark:after { left: 8px; top: 1px; width: 3px; height: 8px; border: solid #ffffff; border-width: 0 3px 3px 0; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); } /*-TEST---------*/ #llama-settings-miniyt>label>input[type=checkbox] { position: absolute; opacity: 0; cursor: pointer; } .checkmark2 { position: absolute; top: 0; left: 0; height: 14px; width: 15px; background-color: transparent; border-radius: 3px; } #llama-settings-miniyt .info { position: absolute; top: 0px; left: 0px; color: transparent; font-weight: bold; font-family: Arial; border: transparent 1px solid; border-radius: 16px; height: 1.5em; width: 1.5em; text-align: center; display: inline-block; } #llama-settings-miniyt .info:hover:after { font-weight: normal; padding: 4px 7px 4px 7px; border-radius: 7px; color: white; background: #0085ad; content: attr(data-title); display: inline-block; position: absolute; top: 25px; left: 0; width: 200px; z-index: 9; } </style> </div> <!--- END OF TEST ---> `); } if ('llamaTitleCSS' != true) { var llamaTitleCSS = (` #llama-ColorChoice { position:absolute; top:10px; background-color:#00ff00;} .foo { float: left; width: 90px; height: 13px; margin-left: 25px; border: 1px solid rgba(0, 0, 0, .2); border-radius: 0px; text-align: center; font-weight: bold;} .foo2 { float: left; width: 25px; height: 15px; border-top-right-radius: 100px; border-bottom-right-radius: 100px; text-align: center; font-weight: bold; border: 0PX SOLID #313131;} .foo3 { float: left; width: 65px; height: 50px; /* border: 1px solid rgba(0, 0, 0, .2); */ border-radius: 3px; text-align: center; font-weight: bold; border: 1px solid #C1C1C1; margin-left: 5px;} .pick {font-size: 11px; position: relative; top: 2px; left: 20px; float: left; color: #313131;} .pink {background: #ffadc1; color: #952c46;} .green {background: #00500d; color: #952c46;} .blue {background: #2a388b; color: #952c46;} .mauve {background: #BF8FE5; color: #952c46;} .purple {background: #550098; color: #952c46;} .orange {background: #ff4f00; color: #952c46;} .red {background: #860000; color: #952c46;} .default {background: #ffffff; color: #952c46;} .weed { color: #952c46;} .smashbros { color: #952c46;} .splatoon { color: #952c46;} .black { background: #191919; } .trueblack { background: #000; } .feature1 { width: 30px !important; height: 33px !important; } .feature1:hover { background-color:#00ff00; width: 30px !important; height: 33px !important; } .featureone { background-image: url(https://i.ibb.co/0Dp3Knx/weed-logo2.png); background-size: 36px; position: relative; right: 8px; background-position: top left; background-repeat: no-repeat; color: #952c46; float: left; width: 50px; height: 50px; text-align: center;} .feature2 { width: 30px !important; height: 33px !important; } .feature2:hover { background-color:#00ff00; width: 30px !important; height: 33px !important; } .featuretwo { background-image: url(https://i.ibb.co/7KSTsdj/smash-clipart-87526.png); background-size: 36px; position: relative; right: 8px; background-position: top left; background-repeat: no-repeat; color: #952c46; float: left; width: 50px; height: 50px; text-align: center;} .feature3 { width: 30px !important; height: 33px !important; } .feature3:hover { background-color:#00ff00; width: 30px !important; height: 33px !important; } .featurethree { background-image: url(https://i.ibb.co/3dHQVhC/splat-mic2.png); background-size: 36px; position: relative; right: 8px; background-position: top left; background-repeat: no-repeat; color: #952c46; float: left; width: 50px; height: 50px; text-align: center;} @keyframes ease-to-left { 0% {right: -50px; opacity: 0;} 100% {right: 0; opacity: 1;}} @keyframes ease-to-right { 0% {right:auto;} 100% {right:0;}} @keyframes ease-to-bottom-21px { 0% {top:-300px; opacity: 0;} 100% {top:0; opacity: 1;}} width: 446px; #content { padding: 0px; background-color:#111111;} #room-header-gifts-buttons > #get-coins { background-color: var(--llamatheme-cambgcolor); border-color: var(--llamatheme-bordercolor); color: var(--llamatheme-bordercolor);} #room-header-gifts-buttons > #get-coins:hover { background-color: var(--llamatheme-bordercolor); border-color: var(--llamatheme-bordercolor); color: var(--llamatheme-cambgcolor);} #room-header-gifts-buttons > a { background-color: var(--llamatheme-cambgcolor); border-color: var(--llamatheme-bordercolor); color: var(--llamatheme-bordercolor);} #room-header-gifts-buttons > a:hover { background-color: var(--llamatheme-bordercolor); border-color: var(--llamatheme-bordercolor); color: var(--llamatheme-cambgcolor);} #llama-header-grabber { position: absolute; top: 88px; right: 50%; background: white; width: 60px; height: 20px; border-color: var(--llamatheme-bordercolor); border-top: 1px solid var(--llamatheme-bordercolor); border-right: 0px; border-bottom: 0px; border-left: 0px; border-radius: 19px; text-align: center; color: var(--llamatheme-bordercolor); cursor: pointer; transition: all .4s ease-in-out; background-color: var(--llamatheme-cambgcolor); z-index:9;} #llama-header-grabber:hover { background-color: var(--llamatheme-bordercolor); border-color: var(--llamatheme-bordercolor);} #llama-fullscreen-grabber { position: absolute; top: 50px; right: 18%;#room-header * background: white; width: 20px; height: 20px; border: #313131 1px solid; border-radius: 19px; text-align: center; color: #b4c1c5; cursor: pointer; transition: all .4s ease-in-out; background-color:#111111;} #llama-header-grabber:before{ content: ''; position: absolute; display: block; height: 0; width: 0; top: 50%; left: 50%; margin: -7px 0 0 -2px; border-width: 4px 4px 4px 0; border-style: solid; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 4px solid transparent; transition: .8s;} .llama-headerCollapsed #llama-header-grabber:before { transform: rotate(180deg); -webkit-transform: rotate(180deg); top: 12px;} .llama-headerCollapsed #llama-header-grabber { top: 0px; background: var(--llamatheme-bgcolor); border-top: 0; z-index: 9; border-radius: 11px; line-height: 15px; border-top-left-radius: 0; border-top-right-radius: 0; height: 15px;} .llama-headerCollapsed:hover #llama-header-grabber { height: 29px; line-height: 43px;} .llama-nightmode #llama-settings > div#llama-updateNotifier { border-color: #5d7883;} .llama-nightmode #llama-settings > div#llama-updateNotifier { background-color: transparent; border-color: #145876; color:#191919; top: -100px;} ------- #llama-settings > div#llama-updateNotifier { top: -200px; margin-right: -33px; float: left; border: #53b6ef 1px solid; border-radius: 8px 0 0px 8px; padding: 5px; padding-right: 32px; height: auto; transition: visibility 0s, opacity 0.5s linear; background: white;} #llama-settings.llama-open > div#llama-updateNotifier { visibility: hidden; opacity: 0; width: 0; height: 0; padding: 0;} #llama-settings > div#llama-updateNotifier:hover { cursor: pointer;} .llama-exitButtonSmall { float: left; padding-right: 37px; /* margin: 0px; */ color: #191919; padding-left: 5px; padding-top: 9px; padding-bottom: 7px; background-color: cyan; border-radius: 50px; height: 20px; margin-right: 7px; position: relative; top: -36px; right: -82px; font-size: 12pt; font-weight: bold;} #llama-settings > div#llama-updateNotifier.visible { top: 38px; color: #ffffff !important; text-transform: uppercase; background-color: transparent; border-color:cyan; padding: 5px; padding-top: 10px; padding-right: 40px; padding-bottom: 10px; border-radius: 20px;} .llama-exitButtonSmall:hover { color: #7ccefe; background-color: #2b2b2b; border-radius: 50px; border:1px solid cyan; height: 20px; padding-bottom: 5px;} ------ input { border: 1px solid #c4d4dc; line-height: 16px; padding-left: 3px;} .label ~ input { border-bottom-left-radius: 6px; border-top-left-radius: 6px;} input ~ button { border-bottom-right-radius: 6px; border-top-right-radius: 6px;} input[type="button"], button { display: inline; padding: 0 15px; border: 0; box-sizing: border-box; letter-spacing: 1px; font-size: 12px; font-weight: bold; line-height: 20px; text-align: center; transition: .2s; outline: none;} .blue-button { color: #fff; border: 1px solid var(--llamatheme-bordercolor); background-color: var(--llamatheme-bgcolor);} .blue-button:hover { background-color: var(--llamatheme-lightbgcolor);} .blue-button:active { background-color: #38a8dd;} .llama-setting-container { line-height: initial;} #llama-settings > div { animation: ease-to-bottom-21px .2s ease 0s 1; position: relative; top: 10px; } #llama-settings > div > span { position: relative; top: -23px; background-color: var(--llamatheme-cambgcolor); border: 1px solid var(--llamatheme-bordercolor); border-radius: 100px; padding-left: 5px; padding-right: 5px;} @media screen and (max-width: 1000px) { #llama-settings > div { height: 92px;} } #llama-settings .hidden { display: none;} #llama-themes .hidden { display: none;} #llama-games .hidden { display: none;} #llama-hiding .hidden { display: none;} #llama-settings #title { font-weight: bold; color: var(--llamatheme-textcolor); background-color: var(--llamatheme-lightbgcolor); padding: 5px 5px 10px 5px; border-radius: 5px 5px 0px 0px; margin: -1px -10px 5px -10px; } #llama-settings { transition: all .4s ease-in-out; animation: ease-to-bottom-21px .2s ease 0s 1; font-size: 11px; flex: none; overflow: hidden; z-index: 5; position: absolute; top: 0px; /* right: px; */} #llama-themes.llama-sidemenuCollapsed {position:absolute;left:0px !important;} #llama-themes { width: 25px; /* transition: all .4s ease-in-out;*/ /* animation: ease-to-bottom-21px .2s ease 0s 1;*/ /*max-height: 10%;*/ font-size: 11px; flex: none; z-index: 9; position: absolute; top: 5px; left:161px;} .default-theme #llama-themesGear > div { background-color: #04caff !important; border-color: #04caff !important; color: #fff !important; } #llama-themesGear > div { background-color: var(--llamatheme-cambgcolor); border:1px solid var(--llamatheme-bordercolor); height: 25px; border-bottom-right-radius:20px; border-top-right-radius:20px; border-left:0px; text-align: center; font-weight: bold; color: var(--llamatheme-textcolor); line-height: 20px; font-size: 13px;} /* #llama-themesGear > div:hover{ background-color: #04caff; height: 25px; border-bottom-right-radius:20px; border-top-right-radius:20px; cursor:pointer; text-align: center; color:#fff;}*/ #llama-themesButton > span > img:hover{ -webkit-animation-name: rotate; -webkit-animation-duration: 2s; -webkit-animation-iteration-count: infinite; -webkit-animation-timing-function: linear; -moz-animation-name: rotate; -moz-animation-duration: 2s; -moz-animation-iteration-count: infinite; -moz-animation-timing-function: linear; animation-name: rotate; animation-duration: 2s; animation-iteration-count: infinite; animation-timing-function: linear; } @-webkit-keyframes rotate { from {-webkit-transform: rotate(0deg);} to {-webkit-transform: rotate(360deg);} } @-moz-keyframes rotate { from {-moz-transform: rotate(0deg);} to {-moz-transform: rotate(360deg);} } @keyframes rotate { from {transform: rotate(0deg);} to {transform: rotate(360deg);} } #llama-hiding { width: 53px; font-size: 11px; flex: none; z-index: 9; position: absolute; top: 199px; right: 0px;} #llama-hidingGear > div { background-color: #111111; background-image: url(https://i.ibb.co/FXrx1X9/Video-Game-Controller-Icon-IDV-edit-green-svg.png); background-position: top center; background-position-y: -6px; background-size: 27px; background-repeat: no-repeat; border: 1px solid #313131; height: 24px; border-bottom-left-radius: 15px; border-bottom-right-radius: 15px; /* border-left: 0px; */ text-align: center; font-weight: bold; color: #C1C1C1; line-height: 20px; font-size: 13px;;} #llama-hidingGear > div:hover { background-color: #04caff; height: 20px; cursor:pointer; text-align: center; color:#fff;} #llama-games {display:none; width: 33px; font-size: 11px; flex: none; z-index: 9; position: absolute; top: 99px; right: 0px;} .llama-headerCollapsed #llama-games { top:-1px; right:36px; z-index:10; } #llama-gamesGear > div { background-color: #111111; background-image: url(https://i.ibb.co/FXrx1X9/Video-Game-Controller-Icon-IDV-edit-green-svg.png); background-position: top center; background-position-y: -6px; background-size: 27px; background-repeat: no-repeat; border: 1px solid #313131; height: 24px; border-bottom-left-radius: 15px; border-bottom-right-radius: 15px; /* border-left: 0px; */ text-align: center; font-weight: bold; color: #C1C1C1; line-height: 20px; font-size: 13px;;} #llama-gamesGear > div:hover { background-color: #04caff; height: 20px; cursor:pointer; text-align: center; color:#fff;} #llama-colors { width: 70px; height: 300px; transition: all .4s ease-in-out; animation: ease-to-bottom-21px .2s ease 0s 1; /*max-height: 10%;*/ font-size: 11px; flex: none; overflow: hidden; z-index: 8; position: absolute; top: 26px; left:1px; /*background-color: #111111;*/ border-top-right-radius: 5px; border-bottom-right-radius: 5px; /*border: 1px solid #313131;*/ /* box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);*/ } #llama-gameslist { width: 350px; height: 620px; transition: all .4s ease-in-out; animation: ease-to-bottom-21px .2s ease 0s 1; /* max-height: 10%; */ font-size: 11px; flex: none; overflow: hidden; z-index: 8; position: absolute; top: 24px; right: 5px;resize:vertical; background-color: #191919; border: 2px solid #c1c1c17d; border-radius: 10px; background-position: center center; background-image: url(https://anceldesigns.000webhostapp.com/img/arcade2.jpg);} .footer_wrapper {background-color:#fff;} #llama-gameslist > iframe { height:600px; width:350px;} @media screen and (max-width: 1000px) { #llama-settings { right: 37px!important; top: -20px;} #llama-settings.llama-open { top: 6px;} #llama-settingsGear { font-size: 52px!important;} #room-header-gifts-items { padding: 0 11px; border-radius: 12px; background-color: #2a2a2a; font-size: 0; text-align: center; white-space: nowrap;} } @media screen and (max-width: 600px) { #llama-settings { right: -4px!important; top: 19px;} } #llama-settings:hover { overflow: visible;} #llama-settings-mentions .inputcontainer { position: relative; left: 3px;} #llama-settingsGear { font-size: 40px; color: #53b6ef; float: right;} #llama-settingsGear:hover { cursor: pointer; color: #7ccefe;} .llama-open #llama-settingsGear { background: none; border-bottom-right-radius: 15px; border-top-right-radius: 15px; border: #53b6ef 0px solid; border-left: 0; } .llama-open #llama-settingsGear span img{ fill: red;} /*transition: all .2s linear;*/} #llama-settingsGear span { display: block; transition: transform 0.4s ease-in-out;} #llama-settingsBox.hidden { animation: ease-to-right .2s ease 0s 1; display: visible; /*position: relative; right: -1000px;*/} /*** Inline with header ***/ .default-theme #llama-settingsBox { background: #fff; color: #000; } .default-theme #llama-settings #title, .default-theme #llama-settings .label{ color: #000; } #llama-settingsBox { border-bottom-left-radius: 15px; border-top-left-radius: 15px; background: var(--llamatheme-bgcolor); padding: 0px 10px 0px 10px; float: left; border: var(--llamatheme-bordercolor) 1px solid; border-radius: 5px; animation: ease-to-left .2s ease 0s 1; right: 0; top: 0px !important; margin-right: 10px; margin-top: 10px; box-shadow: 0 .125rem .25rem rgba(0,0,0,.075)!important; } #llama-settingsGear { display: table;} #llama-settingsGear span { display: table-cell; vertical-align: middle;} ------ /*** ******RIGHT SIDE******* ***/ #llama-settings .right { position: absolute; left: 189px;} #llama-settings .right .label { margin-left: 22px;} #llama-settings .right .head { position: relative; top: -10px; left: -6px; width: 110%; color: #000; background-color: #fff; border-top-left-radius: 10px; border-top-right-radius: 10px; text-transform: uppercase; text-align: center; font-weight: bold;} #llama-settings-maxcamposition { top: 54px; } #llama-settings-borderlesscams { top: 67px; } #llama-settings-miniyt:hover { background-color: var(--llamatheme-cambgcolor); border-color: var(--llamatheme-cambgcolor); } #llama-settings-miniyt { top: 100px; left: 162px; z-index: 2; background-color: var(--llamatheme-bordercolor); width: 25px;height:25px; color: #fff; border-bottom-right-radius: 10px;} #llama-settings-miniyt > span > img {position: relative; top: 9px; left: -6px;} .llama-headerCollapsed #llama-settings-miniyt { top:-1px; right:36px; left: 210px;border-bottom-left-radius:10px} .llama-sidemenuCollapsed #llama-settings-miniyt { top:-1px; right:36px; left: 0px;} .llama-sidemenuCollapsed.llama-headerCollapsed #llama-settings-miniyt { left: 33px;} /***------------------------------------PINKKK------------------------------------***/ #llama-settings-pinkmode { top: 4px !important; position: relative;} /***------------------------------------GREENNN------------------------------------***/ #llama-settings-greenmode { position:absolute; top: 22px !important;} /***------------------------------------BLUEEE------------------------------------***/ #llama-settings-bluemode { position:absolute; top: 39px !important;} /***------------------------------------MAUVEEE------------------------------------***/ #llama-settings-mauvemode { position:absolute; top: 56px !important;} /***------------------------------------ORANGEEE------------------------------------***/ #llama-settings-orangemode { position:absolute; top: 73px !important;} /***------------------------------------REDDD------------------------------------***/ #llama-settings-redmode { position:absolute; top: 90px !important;} /***------------------------------------DARKPURPLEEE------------------------------------***/ #llama-settings-purplemode { position:absolute; top: 107px !important;} /***------------------------------------BLACKKKK------------------------------------***/ #llama-settings-blackmode { position:absolute; top: 123px !important;} /***------------------------------------TRUEBLACKKKK------------------------------------***/ #llama-settings-trueblackmode { position:absolute; top: 140px !important;} /***------------------------------------DEFAULTTT------------------------------------***/ #llama-settings-defaultmode { position:absolute; top: 157px !important;} /***------------------------------------WEEDDD------------------------------------***/ #llama-settings-weedmode { position:absolute; top: 176px !important;} /***------------------------------------SMASHBROSSS------------------------------------***/ #llama-settings-smashbrosmode { position:absolute; top: 214px !important;} /***------------------------------------SPLATOONNN------------------------------------***/ #llama-settings-splatoonmode { position:absolute; top: 255px !important;} #llama-settings-featuredmode { position:absolute; left: 0px !important; top:30px !important; background-color: #04caff; width: 100%; text-align: center; font-weight:bold;} /* The container */ .llama-color-container { display: block; position: relative; cursor: pointer; font-size: 22px; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;} /* Hide the browser's default checkbox */ #llama-settings-blackmode > label > input[type="checkbox"], #llama-settings-trueblackmode > label > input[type="checkbox"], #llama-settings-pinkmode > label > input[type="checkbox"], #llama-settings-greenmode > label > input[type="checkbox"], #llama-settings-bluemode > label > input[type="checkbox"], #llama-settings-orangemode > label > input[type="checkbox"], #llama-settings-redmode > label > input[type="checkbox"], #llama-settings-weedmode > label > input[type="checkbox"], #llama-settings-smashbrosmode > label > input[type="checkbox"], #llama-settings-purplemode > label > input[type="checkbox"], #llama-settings-mauvemode > label > input[type="checkbox"], #llama-settings-defaultmode > label > input[type="checkbox"], #llama-settings-splatoonmode > label > input[type="checkbox"] { position: absolute; opacity: 0; cursor: pointer;} /* Create a custom checkbox */ .checkmark { position: absolute; top: 0; left: 0; height: 14px; width: 15px; background-color: transparent; border-radius:3px;} .checkmark .feature1:hover {background-color:#00ff00;} /* On mouse-over, add a grey background color */ .llama-color-container:hover input ~ .checkmark { background-color: transparent; border:1px solid #FFFFFF; border-top-right-radius: 100px; border-bottom-right-radius: 100px; border-left:0px; width:25px; } .feature .llama-color-container:hover input ~ .checkmark { background-color: transparent; border:1px solid #00ff00; border-top-right-radius: 100px; border-bottom-right-radius: 100px; border-left:0px; width:20px; } /* When the checkbox is checked, add a blue background */ .llama-color-container input:checked ~ .checkmark { background-color: transparent; /*border: 0px solid #FFFFFF;*/ border-top-right-radius: 100px; border-bottom-right-radius: 100px; border-left: 0px; width:25px;} /* Create the checkmark/indicator (hidden when not checked) */ .checkmark:after { content: ""; position: absolute; display: none;} /* Show the checkmark when checked */ .llama-color-container input:checked ~ .checkmark:after { /*display: block;*/} /* Style the checkmark/indicator */ #llama-settings-defaultmode > label > span.checkmark:after, #llama-settings-mauvemode > label > span.checkmark:after, #llama-settings-purplemode > label > span.checkmark:after, #llama-settings-bluemode > label > span.checkmark:after, #llama-settings-greenmode > label > span.checkmark:after, #llama-settings-orangemode > label > span.checkmark:after, #llama-settings-redmode > label > span.checkmark:after, #llama-settings-smashbrosmode > label > span.checkmark:after, #llama-settings-pinkmode > label > span.checkmark:after, #llama-settings-whitemode > label > span.checkmark:after, #llama-settings-splatoonmode > label > span.checkmark:after { left: 8px; top: 1px; width: 3px; height: 8px; border: solid #ffffff; border-width: 0 3px 3px 0; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg);} #llama-settings-weedmode > label > span.checkmark:after { left: 44px; top: -5px; width: 3px; height: 8px; border: solid #ffffff; border-width: 0 3px 3px 0; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg);} label { border:0px solid #ccc; padding:0px; display:block;} label:hover { background:#53b6ef; border-radius:5px; cursor:pointer;} #modes { padding: 5px; background-color: #111111; border: #ffffff 1px solid; border-radius: 10px; box-shadow: 0 4px 8px 0 rgba(255,255,255,0.27), 0 6px 20px 0 rgba(255,255,255,0.27);} .llama-pinkmode #modes { box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);} .llama-greenmode #modes { box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);} .llama-bluemode #modes { box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);} #llama-settings .label{ color:#ffffff; position: relative; top: -2px;} .llama-whitemode #llama-settings .label{ color:#000000; } #llama-settings .info{ margin-left: 3px; color: #0d94e3; font-weight: bold; font-family: Arial; border: #0d94e3 1px solid; border-radius: 16px; height: 1em; width: 1em; text-align: center; display: inline-block;} #llama-settings .info:hover:after{ font-weight: normal; padding: 4px 7px 4px 7px; border-radius: 7px; color: white; background: #61787f; content: attr(data-title); display: inline-block; position: absolute; top: 1px; left: 0; z-index: 9;} /*#llama-settings .label:hover:before{ border: solid; border-color: #61787f transparent; border-width: 0px 6px 6px 6px; top: 10px; content: ""; left: 8%; position: relative; display: inline-block;}*/ #llama-settings a:visited, #llama-settings a:link { text-decoration: none; color: inherit;} #llama-settings a:hover { color: #53b6ef;} #room-header.default-theme { background-color: #f6f6f6 !important; } #room-header { z-index:9; height: 100px; max-height: unset; min-height: unset; transition: all .4s ease-in-out; background-color: var(--llamatheme-bgcolor); border-bottom: 1px solid var(--llamatheme-bordercolor); } #room-header { background-position: center center; background-image: var(--llamatheme-headerbg); } #room-header.smashbros-theme { background-color: #282828; background-position: right center; background-size: 240px; background-repeat:no-repeat; } #room-header.splatoon-theme { background-color: transparent; border: 0px; background-position: right center; background-repeat: no-repeat; border-top-right-radius: 100px; border-bottom-right-radius: 100px; } #room-header-gifts-items { padding: 0 11px; border-radius: 12px; background-color: transparent; font-size: 0; text-align: center; white-space: nowrap;} #room-header-gifts-items > a > img { height: 75%; width: 75%; border-radius: 50px; border: 4px solid #313131;} #room-header.llama-headerCollapsed { height: 0px; margin-top: -10px;} #room-header.llama-headerCollapsed #room-header-avatar, #room-header.llama-headerCollapsed #room-header-info, #room-header.llama-headerCollapsed #room-header-gifts-buttons, #room-header.llama-headerCollapsed #room-header-gifts { display: none;} #room-header.llama-headerCollapsed:hover { /* height: 25px;*/} @media screen and (max-width: 600px) { #room-header { min-height: 0px !important; max-height: 0px !important; height: 0px !important; } } #room-header-info { padding: 0; color: var(--llamatheme-textcolor);} #room-header-info span > svg > path, #room-header-info > span:nth-child(3) > svg > circle {fill:var(--llamatheme-bordercolor) !important;} #room-header-info span > svg > circle {stroke:var(--llamatheme-bordercolor) !important;} #room-header-info > h1 { color: var(--llamatheme-textcolor); text-transform: uppercase;} #room-header-info > h1:after { visibility: hidden; hidden: none;} #room-header-info-text:after{ visibility: hidden; hidden: none;} #room-header-info-text { height: auto;} @media screen and (max-width: 600px) { #room-header-info-text { height: inherit;} } #room-header-avatar { margin: 2px 10px 0 35px; height: 90px; min-width: 90px; max-width: 90px; transition: all .5s linear;} .llama-headerCollapsed:hover #room-header-avatar:hover { z-index: 9;} #room-header-gifts { padding: 10px 10px;} #room-header-avatar:hover { border-radius: unset;} .llama-headerCollapsed #llama-settingsGear { font-size: 33px;} .llama-headerCollapsed #llama-settings > div { height: fit-content;} #room-header-avatar > img {left:-22px;} .llama-headerCollapsed #llama-settingsBox { border-width: 1px; border-radius: 7px; border-top-right-radius: 0; padding-bottom: 7px;} .llama-headerCollapsed #llama-settings { top: 0px; right: 0;} `); } if ('llamaVideolistCSS' != true) { var llamaVideolistCSS = (` #videolist.llama-sidemenuCollapsed { width: 100%;} .video > div > .blured {opacity:0 !important; visibility: hidden !important;} .video > div > video {filter:none !important;} #videos-footer { display: flex; flex-direction: row; align-items: stretch; height: 0px; min-height: 0px; width: 170px; position: fixed; bottom: 0; left: 10px !important; padding: 0 30px 0px; box-sizing: border-box; font-size: 0; z-index: 3; left: auto; background-color:#111111;} #videos-footer.llama-sidemenuCollapsed{ position: relative; bottom: 0; right: 50px;} .llama-sidemenuCollapsed#videos-footer{ position: relative; bottom: 0; right: 50px;} #youtube.video:after { border: none;} .video:after { content: ''; position: absolute; display: block; height: 100%; width: 100%; top: 0; left: 0; border: 5px solid #111; border-radius: 10px; box-sizing: border-box; pointer-events: none;} #video::after { border: 5px solid #111;} #video:after { border: 5px solid #111;} #videos > .video { position: relative; width: 100%; padding: 5px; box-sizing: border-box; font-size: 0; overflow: hidden; background-color: #ffffff !important;} .video > div > iframe { width:100%;} #videos-header { height: 10px; min-height: 10px; background-color: transparent;} #videos-content { background-color: transparent;} @media screen and (max-width: 600px) { #submenu-icons > div { width: 32% !important; position: fixed !important; top: -3px !important; left: 4px !important;} #videos-footer-broadcast {display:none !important;} #videos-footer-youtube { } #videos-footer-broadcast {display:none;} #videos-footer-submenu {opacity: 1 !important; visibility: visible !important;background-color: transparent !important;} #videos-footer-submenu > span {opacity: 0 !important; visibility: hidden !important; } } } #videos-footer-youtube { background-color: green !important; background-size: 36% !important; } #videos-footer-youtube { background-color: red; background-position: top center; background-size: 36%; background-repeat: no-repeat; position: relative; left: -20px; top: -2px; } #videos-footer-youtube > svg, #videos-footer-soundcloud > svg { vertical-align: middle; display:none;} #videos-footer-push-to-talk > svg { vertical-align: middle; pointer-events: none; display:none;} #videos-footer-youtube, #videos-footer-soundcloud { height: 42px; width: 10px !important; min-width: 115px !important; margin-right: -63px !important; margin-top: -150px; border-radius: 11px; text-align: center; line-height: 50px; cursor: pointer; overflow: hidden; transition: .2s;} .llama-sidemenuCollapsed #videos-footer { position: fixed; top: 205px;} .llama-sidemenuCollapsed #videos-footer-push-to-talk { position: fixed !important; bottom: 22px !important; right: 7px !important; width: 60px !important; min-width: 10px !important; height: 45px !important; top:unset !important; border-top-left-radius: 11px !important; border-top-right-radius: 11px !important; } .llama-sidemenuCollapsed #videos-footer-broadcast { position: fixed; bottom: 1px; right: 210px; border-top-right-radius: 0px; border-bottom-left-radius: 5px; top: unset; left: unset; width: 120px !important; min-width: 10px !important; height: 18px; font-size: 12px; line-height: 20px; } .llama-chatbelow #videos-footer-youtube { display:none; } .llama-sidemenuCollapsed #videos-footer-youtube { position: fixed; bottom: 31px; right: 405px; border-top-right-radius: 0px; top: unset; left: unset; width: 30px !important; min-width: 10px !important; height: 30px; background-image: url(https://iconsplace.com/wp-content/uploads/_icons/ffffff/256/png/play-icon-18-256.png); background-position: top center; background-position: 1px; background-size: 30px; background-repeat: no-repeat;} #videos-footer-push-to-talk { height: 55px; margin-top: 4px; background-image: url(https://www.iconpacks.net/icons/1/free-microphone-icon-342-thumb.png); background-position: center center; background-size: 35px 35px; background-repeat: no-repeat; } #videos-footer-push-to-talk.llama-sidemenuCollapsed { height: 55px; margin-top: -14px;} #videos-footer-broadcast-wrapper.llama-sidemenuCollapsed { position: relative; right: 10px;} #videos-footer-broadcast-wrapper { position: relative; right: 90px; margin-top: -105px; display: unset; flex-direction: row; align-items: unset; width: unset; padding-left: 0px !important;} #videos-footer-broadcast-wrapper > #videos-footer-submenu-button { height: 15px; margin-bottom: 0px; background-color: #328332; position: absolute; top: -15px; left: -9px; display: block; width: 20px; min-width: 10px; border-radius: 5px 5px 0px 0px; box-sizing: border-box; cursor: pointer; transition: .2s;} #videos-footer-submenu { position: absolute; width: 250px; bottom: 100px; left: 150px; right: 0px; padding: 7px; border-radius: 4px; background-color: #fff; font-size: 14px; color: #000; box-shadow: 0 1px 4px 0 rgba(0, 0, 0, .09); opacity: 0; visibility: hidden; z-index: 2; transition: .2s;} #videos-footer-submenu:before, #videos-footer-submenu:after { content: ''; position: absolute; display: block; height: 0; width: 0; right: unset; bottom: unset; border-width: 7px 7px 0 7px; border-style: solid; border-color: rgba(0, 0, 0, .06) transparent;} #videos-footer-broadcast-wrapper > #videos-footer-submenu-button:before { content: ''; position: absolute; display: block; height: 0; width: 0; top: 4px; right: 3px; border-width: 0 5px 6px; border-style: solid; border-color: #fff transparent; opacity: 1; visibility: visible; transition: .2s;} #videos-footer-broadcast { position: relative; display: block; right: 5px; height: 39px; min-width: 162px; max-width: 100%; padding-left: 0px; border-radius: 0px 5px 5px 0px; box-sizing: unset; background-color: #13a832; font-size: 15px; font-weight: 550; color: #fff; text-align: center; line-height: 38px; cursor: pointer; text-transform: uppercase; transition: .2s;} #videos-footer-broadcast-wrapper.active > #videos-footer-submenu-button { z-index:-1;} #videos-footer-broadcast-wrapper > .waiting { position: absolute; width: 125px; height: 55px; top: 45px; bottom: 0; left: 10px; right: 0; border-radius: 11px; background-color: #38cd57; opacity: 0; visibility: hidden; transition: .2s;} #videos-footer-youtube.hidden, #videos-footer-soundcloud.hidden { width: 0; min-width: 0; margin-right: 0; visibility: hidden;} } #Fvideolist * { width: 75%!important; display: contents; float: right; flex-direction: column;} #Fvideos { flex-direction: unset; flex-wrap: unset;} #videos-header > span { line-height: initial; position: relative; top: 1px; background: none;} #videos-header > span > svg { height: 16px; padding: 0;} .videos-header-volume { position: absolute; height: 128px; width: 24px; top: 2px; left: 50%; margin-left: -14px; margin-top: 15px; border-width: 50px 22px 22px; border-style: solid; border-color: #111; border-radius: 5px; box-shadow: 10px 1px 4px 0 rgba(0, 0, 0, .09); opacity: 0; visibility: hidden; transition: .2s;} .videos-header-volume-level > div { position: absolute; display: block; height: 12px; width: 24px; top: 0px; left: 0px; border-radius: 0; background-color:#313131;} .videos-header-volume:before { background-color: #111; } ` ); } if ('llamaChatlistCSS' != true) { var llamaChatlistCSS = (` #chatlist {margin-top:-25px;} #chatlist.llama-orangemode > div > span { color:#000000;} #chatlist.llama-redmode > div > span { color:#000000;} #chatlist > div > span { padding-left: 10px;} #chatlist > #header { top: 3px; height: auto;} /*** --- this block is in chatlistCSS & userlistCSS --- ***/ .list-item > span > img { right: 13px; left: auto;} .list-item > span[data-status]:before { left: auto; right: 0;} .list-item > span > span { background: none!important; box-shadow: none!important;} /*** --- --- ***/ .close-instant > path { fill: white;} .list-item > span > span { /* gift and close buttons */ right: 16px;} .list-item > span:hover > span { /* gift and close buttons */ right: 16px; background: none!important;} #chatlist > div > span, #chatlist > #header, #chatlist > div.list-item { color: var(--llamatheme-textcolor); } `); } if ('llamaUserlistCSS' != true) { var llamaUserlistCSS = (` #userlist.splatoon-theme > div > span { border-color: var(--llamatheme-bordercolor); background-image: url('https://i.ibb.co/FWFnhc4/messagebg.png'); border-radius: 14px; margin-top: 2px; color: var(--featurethreemode-textcolor); font-weight: bold; text-shadow: 1px 2px #2b6600; } <style> #userlist.splatoon-theme > div > span { width: 98%; } #userlist > div > span { padding-left: 2px; padding-right: 2px; position: relative; display: inline-block; height: 30px; width: 100%; border-radius: 0 0 0 0; box-sizing: border-box; font-size: 14px; color: var(--llamatheme-textcolor); line-height: 30px; text-align: left; white-space: nowrap; overflow: hidden; transition: .2s;} .llama-sidemenuCollapsed #button-banlist { left: -100px; width: 10px;} .list-item > span > span { right: auto; padding: 0 5px;} .list-item > span > .nickname { padding-right: 3px;} /*** --- this block is in chatlistCSS & userlistCSS --- ***/ .list-item > span > img { right: 13px; left: auto;} .list-item > span[data-status]:before { left: auto; right: 0;} .list-item > span > span { background: none; box-shadow: none;} /*** --- --- ***/ .list-item > span > span[data-moderator="1"]:before { filter: hue-rotate(226deg) saturate(4000%);} #userlist > #header { top: auto; height: auto;} #userlist.default-theme > #header > span { background-color: #202628; color: #FFF; } #userlist > #header > span, #chatlist > #header > span { display: block; border-color: var(--llamatheme-bordercolor); background-color: var(--llamatheme-bordercolor); color: var(--llamatheme-textcolor); text-align: center; top: 4px;} #chatlist > #header { color: #111111;} #button-banlist { top: 1px; padding: 0 12px; text-indent: -9999px; background-image: url(https://www.freeiconspng.com/uploads/red-x-png-4.png); background-size: 15px; background-position: center center; background-repeat: no-repeat; white-space: nowrap; background-color: var(--llamatheme-cambgcolor);} .list-item > span:hover { background-color: var(--llamatheme-cambgcolor); } .list-item > span:hover > span { background-color:var(--llamatheme-cambgcolor); box-shadow: 0 0 0px 0px transparent;} .list-item > span[data-status]:before { left: auto; right: 0; border-radius:10px;} .list-item > span > span[data-cam="1"]:after { background-image: url(https://i.ibb.co/RjLdY26/63629-3.png) !important; background-size: 10px;} </style> `); } if ('llamaBodyCSS' != true) { var llamaBodyCSS = (` body { overflow: hidden; background-color:var(--llamatheme-cambgcolor); background-image: var(--llamatheme-roombg); background-position: center center; background-size: cover; } #nav-static-wrapper { width: 2px; opacity: .7; display:none; visibility:hidden;} #nav-static-wrapper { width: 2px; opacity: .7; display:none; visibility:hidden;} #nav-static-wrapper.llama-sidemenuCollapsed{ display:none; visibility:hidden;} @media screen and (max-width: 1000px) { #nav-static-wrapper { width: 82px; opacity: 1;} } #menu-icon { transition: 1s; display:none;} .llama-sidemenuCollapsed #menu-icon { z-index: -1; opacity: 0; display:none;} .llama-sidemenuCollapsed #header-user { display: none;} @media screen and (max-width: 1000px) { #header-user { left: 21px;} #videos-footer-youtube.llama-sidemenuCollapsed{ padding: 0px; left:100px; background-color:#f07629;} body.llama-changefont { font-family: sans-serif;} #header-user { left: 62px;} @media screen and (max-width: 1000px) { #header-user { left: 21px;} } @media screen and (max-width: 600px) { #header-user { left: auto; right: 54px;} } @media screen and (min-width: 1000px) { #menu-icon:hover { opacity: 1;} #menu-icon { top: 4px; left: 19px; height: 12px; width: 109px; font-size: 10px; background: #04caff; border-radius: 6px; opacity: .8; visibility: hidden; display:none;} #menu-icon:after { position: absolute; top: 3px; left: 51px; content: ""; height: 7px; width: 7px; border-width: 2px 2px 0px 0px; border-style: solid; border-color: #fff; box-sizing: border-box; transform: rotate(45deg); transition: .2s; visibility: hidden;} #menu-icon:hover:after { border-width: 0px 0px 2px 2px; visibility: hidden;} #menu-icon > svg { opacity: 0; visibility: hidden;} } #menu-icon { visibility: hidden; display:none;} </style> `); } if ('llamaMessageCSS' != true) { var llamaMessageCSS = (` .llama-nightmode { color: var(--nightmode-textcolor);} .llama-nightmode.blacknight { color: white;} .llama-mention-message { color: red !important; } .llama-nightmode.llama-mention-message { color: #e44a3f; } .llama-nightmode.message.system, .llama-nightmode #chat-content > .message.system { background-color: #313c3f; color: #677174;} .llama-nightmode.blacknight.message.system, .llama-nightmode.blacknight #chat-content > .message.system { background-color: transparent; color: #4d4d4d;} .message.system { font-size: 12px; font-weight: 600; color: #8f999c; left: 0px;} .o .llama-mention-message { color: red; } .on-white-scroll { padding-left: 16px; box-sizing: border-box; overflow-x: hidden; } .message { font-size: 14px; color: var(--llamatheme-textcolor); white-space: pre-line; word-wrap: break-word; position: relative; right: 12px; font-weight:bold; top: 3px;} `); } if ('llamaChatlogCSS' != true) { var llamaChatlogCSS = (llamaMessageCSS + ` div.llama-systemMsg { padding-top: 0!important; margin-bottom: 5px; margin-right: 10px; padding-bottom: 9px; color: var(--llamatheme-textcolor) !important; background-color: var(--llamatheme-lightbgcolor); border: 1px solid var(--llamatheme-lightbgcolor); border-radius: 20px; } /* HERE IS THE OTHER GRABBER */ #llama-chat-grabber { position: absolute; top: 88px; right: 50%;tinychat-chatlog * background: white; width: 60px; height: 20px; border: #313131 1px solid; border-radius: 19px; text-align: center; color: #b4c1c5; cursor: pointer; transition: all .4s ease-in-out; background-color:#111111;} .llama-chatCollapsed #llama-chat-grabber { top: 0px; background: #111111; border-top: 0; z-index: 9; border-radius: 11px; line-height: 15px; border-top-left-radius: 0; border-top-right-radius: 0; height: 15px;} .llama-chatCollapsed:hover #llama-chat-grabber { height: 29px; line-height: 43px;} :host, #chat-wrapper.llama-chatCollapsed { } @media screen and (max-width: 600px){ :host, #chat-wrapper, #chat-wider + #chat-wrapper, #chat-wider.active + #chat-wrapper { position: relative; min-width: 320px; top: -8px; } #users-icon { right:0px !important; } } /* END */ .message a:first-child, .message a:first-child img:first-child { transition: .1s; } .message a:first-child:hover { width: 100px!important; height: 75px!important; z-index: 1000; } .message a:first-child:hover img:first-child { width: 100px; height: 79px!important; } #chat-instant .message.common > a > .avatar, #chat-content > .message.common > a > .avatar:hover {border-radius:100%;} #chat-instant .message.common > a > .avatar, #chat-content > .message.common > .avatar{width:30px;height:30px;} #chat-instant .message.common > .avatar > div > img, #chat-content > .message.common > .avatar > div > img {border-radius:100%;} #chat-instant .message.common > a > .status-icon, #chat-content > .message.common > a > .status-icon { position: absolute; height: 15px; width: 15px; top: 0px; left: 315px; padding: 3px; border-radius: 100%; background-color: #fff;} #chat-content > .message.system > .content { font-size: 12px; font-weight: 600; color: #00ff00; margin:10px;} @media screen and (max-width: 600px) { #chat-wrapper.default-theme {border-left:1px solid rgba(0, 0, 0, .1) !important;} #chat-wrapper {border:0px !important;} #chat-content > .message.common > .nickname {right:5px !important;} #users-icon, #input-users:checked ~ #users-icon, #input-menu:checked ~ #input-users ~ #users-icon {left: 17px !important;} #videos-header-fullscreen {display:none;} } #chat-wrapper { min-width: 350px; border-left: 0px solid rgba(0, 0, 0, .1); box-sizing: border-box; background-color: var(--llamatheme-cambgcolor); transition: .8s;} #chat-wrapper { background-image: var(--llamatheme-chatbg); background-position: center center; background-blend-mode: overlay; background-size: cover; } #chat-wrapper.splatoon-theme { background-size: unset; border-radius: 0px; background-color: transparent; background-position: 0px 0px; background-repeat: repeat-y; animation: animatedBackground 10s linear infinite; min-width: 346px; } @keyframes animatedBackground { from { background-position: 0 0; } to { background-position: 0 100%; } } /* #chat-content > .message:hover { background: rgba(0, 0, 0, 0.03); color: #ffffff;} */ #chat-content > .message.common { padding-top: 0!important; min-height: 0px!important; margin-bottom: 5px; margin-right: 10px; padding-bottom: 9px; color: var(--llamatheme-textcolor) !important; background-color: var(--llamatheme-lightbgcolor); border: 1px solid var(--llamatheme-lightbgcolor); border-radius: 20px;} #chat-content > .message.system { box-sizing: border-box; background-color: #0000006b; cursor: default; border: 1px solid #8f999c; color: #8f999c; border-radius:24px; padding: 0px 0px;} } #chat-content.llama-notif-off > .message.system { display: none;} #chat-content.llama-notif-off > .message.system.dontHide { display: initial;} #chat-instant .message.common > a:first-child, #chat-content > .message.common > a:first-child { top: 5px; left: 2px;} #chat-position #input:before { background: none;} #input { position: relative; display: block; padding-top: 10px; margin-right: 25px; overflow-wrap: break-word;} .default-theme #input > textarea { border:1px solid var(--llamatheme-bordercolor); } #input > textarea{ overflow-y:auto; background-color: var(--llamatheme-cambgcolor); border:1px solid var(--llamatheme-lightbgcolor); color: var(--llamatheme-textcolor);} #input:after { content: ""; position: absolute; display: block; top: 10px; left: 0; right: 0; bottom: 0; border: 0px solid #cbcfcf; border-radius: 12px; box-sizing: border-box; pointer-events: none;} #input > .waiting { position: absolute; width: auto; top: 10px; bottom: 0; left: 0; right: 0; border-radius: 12px; background-color: #e9eaea; z-index: 1; opacity: 0; visibility: hidden; transition: .2s;} #chat-position { position: absolute; display: flex; flex-direction: column; align-items: stretch; top: 20px; left: 10px; right: -20px; bottom: 19px;} #chat-wider { font-size: 0; background-color: var(--llamatheme-cambgcolor); border: 1px solid var(--llamatheme-bordercolor); cursor: pointer; z-index: 1; padding-top: 10px; color: var(--llamatheme-bordercolor); position: absolute; top: 47%;} #chat-wider.active + #chat-wrapper { min-width: 0px;} #chat-wider.active { left: -15px; border-radius: 10px 0 0 10px;} #chat-wider:before { border-color: transparent var(--llamatheme-bordercolor); transform: rotate(180deg); -webkit-transform: rotate(180deg);} #chat-wider.active:before { transform: rotate(0deg); -webkit-transform: rotate(0deg);} #chat-wider:hover { background: var(--llamatheme-bordercolor); color: var(--llamatheme-textcolor); cursor: pointer; border:0px;} #chat-instant .message.common > a > .avatar, #chat-content > .message.common > a > .avatar { width:75%; height:100%; background-color: #666666; border-top-left-radius: 100%; border-bottom-left-radius: 100%; border-top-right-radius: 0%; border-bottom-right-radius: 0%; overflow: hidden;} #abovefiller{ border-radius: unset;} #timestamp { font-size: 11px; color: #999999; float: right; position: absolute; right: 0; padding-top: 3px; padding-right: 20px; font-weight: 600;} #chat-content > .message.common > .nickname { overflow: initial; line-height: initial; position: relative; right: 15px; color: #00abfa;} #chat-content div.message.common:last-of-type { margin-bottom: 10px; margin-right: 10px;} #chat-instant-button.llama-loading { border: 0; font-size: x-large; animation: spin .5s linear infinite;} @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); }} #llama-chatlogDisplay { display: none; position: fixed; top: 121px; left: 177px; width: 90%; height: 80%; z-index: 7; cursor: default;} #llama-chatlogDisplay.show { display: unset; } #llama-chatlogDisplay * { float: left; height: 50%;} #llama-chatlogDisplay textarea { transition: .2s; opacity: 0; border-radius: 6px; width: 90%;} #llama-chatlogDisplay textarea.show { opacity: 1;} #llama-chatlogDisplay textarea.show { background-color:#111111; color:#17ff00;} #llama-chatlogDisplay #close { opacity: 0; transition: .2s; width: 30px; background: #313131; height: 30px; border-radius: 10px; position: relative; color: white; top: -1%; left:-21px; vertical-align: middle; font-size: 22px; text-align: center; padding-top: 0px; cursor: pointer;} #llama-chatlogDisplay #close:hover { background: #990000;} #llama-chatlogDisplay #close.show { opacity: 1; border:1px solid #990000;} #llama-chatlogButtons { position: absolute; top: 2px; left: 6px; font: 15px monospace; /*display: none;*/ } .llama-chatlogBut { padding: 2px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; border: silver 0px solid; color: silver; transition: .3s; width: 10px; height: 10px; overflow: hidden; cursor: pointer; opacity: 1; float: left;} .llama-chatlogBut:hover { color: black; border-color: #17ff00;} .llama-chatlogBut ~ .llama-chatlogBut { margin-left: 2px;} .llama-chatlogBut .icon { width: 10px;} .llama-chatlogBut .label { width: 0; opacity: 0; overflow: hidden; transition: .3s; display: block; position: relative; top: -2px; left: 13px; font: 11px sans-serif; color: black;} .llama-chatlogBut:hover .label { opacity: 1; color: #17ff00;} .llama-chatboxPM #llama-chatlogSave { opacity: 0; z-index: -5; } #llama-chatlogSave .icon { /* transform: scaleY(.6); */ position: absolute; top: -1px; left: 4px;} #llama-chatlogSave .icon svg { width: 19px; height: 19px; position: relative; left: -3px;} #llama-chatlogSave .icon path { transform: scale(.08) scaleX(1.2) rotate(180deg); fill: #ccc; transform-origin: 11px 12px;} #llama-chatlogSave:hover .icon path { fill: #17ff00; border} #llama-chatlogSave:hover { } #llama-chatlogSave:hover .label { } #llama-chatlogView .icon { font-size: 10px; top: 1px; position: absolute;} #llama-chatlogView:hover { color:#17ff00;} .default-theme #input > textarea::placeholder { color:rgba(0, 0, 0, .5);} #input > textarea::placeholder { color:var(--llamatheme-lightbgcolor);} path {fill: var(--llamatheme-bordercolor) !important;} </style> `); } if ('llamaSidemenuCSS' != true) { var llamaSidemenuCSS = (` #sidemenu { min-width: 162px; max-width: 162px; left: 0px; background-color: var(--llamatheme-bgcolor); /* background-image: url('http://i68.tinypic.com/2rp4ncm.png'); */ background-position: right top; background-size: 100%; border-right:1px solid var(--llamatheme-bordercolor); transition: all .4s ease-in-out; z-index:3;} #sidemenu-content { height: 90%; padding-top: 30px; box-sizing: border-box; padding-left: 0px; overflow-x: hidden; overflow-y: auto; /*background-color: var(--llamatheme-bgcolor);*/ /* background-image:url('http://i68.tinypic.com/2rp4ncm.png'); */ background-position: right top; background-size: 100%; border-right:0px solid;} #user-info { position: absolute; height: 80px; width: 100%; bottom: 0; left: 0; padding: 20px 30px 20px 20px; border-top: 1px solid rgba(0, 0, 0, .1); box-sizing: border-box; background-color: #2a2a2a; display: none; visibility:hidden;} @media screen and (max-width: 1000px) { #sidemenu { left: -188px;transition: all .4s ease-in-out;} } #live-directory-wrapper { padding: 0;} #top-buttons-wrapper { padding: 0;} .logged-in #user-info { padding: 0; height: auto; text-align: center; visibility: hidden; display: none;} #user-info button { opacity: .8;} #user-info:hover button { opacity: 1;} .logged-in #user-info > a { display: none; visibility:hidden;} @media screen and (min-width: 1000px) { /*---DEFAULT---*/ .default-theme #live-directory { background-color: #04caff !important; border-color: #04caff !important; color: #fff !important; } #live-directory { height: 25px; line-height: 25px; font-size: 13px; opacity: .8; margin-left: 24px; width: 150px; background-color: var(--llamatheme-cambgcolor); border:1px solid var(--llamatheme-bordercolor); position: relative; top: -25px;} #upgrade { height: 0px; line-height: 0px; font-size: 13px; opacity: .8;} #live-directory:before { height: 8px; width: 8px; top: 0px;} #upgrade { margin-top: 0px; visibility: hidden; display: none;} #live-directory:hover, #upgrade:hover { opacity: 1; background-color:var(--llamatheme-bordercolor);} } #sidemenu.llama-sidemenuCollapsed { min-width: 0px; max-width: 0px; border:0px;} #llama-sidemenu-grabber { position: absolute; top: 47%; right: 0; left: 153px; background: var(--llamatheme-cambgcolor); color: var(--llamatheme-bordercolor); z-index: 3; border-radius: 10px; border-right: 0px; border-bottom: 0px; border-top: 0px; height: 34px; padding-top: 19px; width: 16px; text-align: center; transition: all .4s ease-in-out; border-left: var(--llamatheme-bordercolor) 1px solid;} #llama-sidemenu-grabber:before { content: ''; position: absolute; display: block; height: 0; width: 0; top: 50%; left: 50%; margin: -4px 0 0 -2px; border-width: 4px 4px 4px 0; border-style: solid; border-color: #cbcfcf; transition: .8s;} #llama-sidemenu-grabber:hover { background: var(--llamatheme-bordercolor); color: #5c5c5c; cursor: pointer;} .llama-sidemenuCollapsed #llama-sidemenu-grabber{ background: var(--llamatheme-bgcolor); border-radius: 0 10px 10px 0; right: -15px; left: -4px;} #llama-sidemenu-grabber:before {border-color: transparent var(--llamatheme-bordercolor);} #sidemenu.llama-nightmode{ background: #191919;} .llama-nightmode #sidemenu-content::-webkit-scrollbar-track { background: transparent;} #sidemenu-content::-webkit-scrollbar-track { background: transparent;} .llama-nightmode #llama-sidemenu-grabber { background: #111111;} .llama-nightmode #llama-sidemenu-grabber:hover { background: #333; color: #5c5c5c;} .llama-sidemenuCollapsed #llama-sidemenu-grabber:before { transform: rotate(180deg); -webkit-transform: rotate(180deg);} .llama-nightmode #user-info { background: black;} .llama-nightmode #user-info > button { background: #035268; color: #aaa;} .llama-nightmode #user-info > button:hover { background: #0080a3; color: white;} .llama-nightmode #sidemenu-content::-webkit-scrollbar-thumb { border: 1px solid #191919; width:50%; background-color: #111;} .llama-nightmode #sidemenu-content::-webkit-scrollbar { width: 3px;} #sidemenu { border-color: var(--llamatheme-bordercolor); background-image: var(--llamatheme-userbg); background-position: right center; background-size: cover; } #sidemenu.smashbros-theme { background-color: var(--llamatheme-bgcolor); background-attachment: fixed; background-position:left; background-size: 900px; background-repeat: no-repeat; } #sidemenu.splatoon-theme { background-color:transparent; border: 0px; background-attachment: fixed; background-position:left; border-radius: 30px; border-top-right-radius: 0px; border-top-left-radius: 0px; height: 99%; } #sidemenu.splatoon-theme #sidemenu-content { background-color:transparent; } </style> `); } if ('llamaVideoModerationCSS' != true) { var llamaVideoModerationCSS = (` #moderatorlist { padding-left: 0; z-index: 7; max-height:22px;} #moderatorlist:hover { position: absolute; background: white; z-index: 1000; width: 300px; min-height: 155px; flex-direction: column; position: absolute; background: #111; z-index: 1000; width: 350px; max-height: fit-content!important; left: 15px; border-radius: 13px; border: #fff 1px solid; top: 30px; left:0px;} #moderatorlist:after { top: 2px; right: 1px;} #moderatorlist:hover #header { height: unset; top: unset; padding-left:0 !important;} #moderatorlist > #header { top: 2px !important; width: 100%; height:20px;} #moderatorlist > #header > span > button { border-radius:10px; width: unset !important; height:unset !important; background-color: unset;} #moderatorlist.llama-nightmode > #header > span > button { background: var(--nightmodeBlack-bgcolor);} #moderatorlist.llama-nightmode:hover { border-color: #333;} .video:after{ border:0px;} </style> `); } if ('llamaWebappCSS' != true) { var llamaWebappCSS = (` .input-menu{display:none;} #room { padding: 0; padding-left: 80px;} #room.llama-sidemenuCollapsed { margin-left: -161px; width: 110%;} @media screen and (max-width: 1000px) { :host > #room { padding-left: 82px;} } @media screen and (max-width: 600px) { :host > #room { padding-left: 0;width: 450px !important;} #room-content {padding-top:0px !important;} } #room-content.llama-chatbelow { flex-direction: column !important; margin-bottom: -10px !important;} #oom-header-duh { background-color:transparent; background-image: var(--llamatheme-roombg); background-position: center center; background-size: cover; } #room-content.smashbros-theme { background-position: right center; } .llama-nightmode tc-videolist { background: var(--nightmode-bgcolor); } .llama-nightmode.blacknight tc-videolist { background: transparent; } </style> `); } injectCSS(); injectElements(); var scrollboxEvent = scrollbox.addEventListener("wheel", userHasScrolled); var unreadbubbleEvent = unreadbubble.addEventListener("click", function() { autoScrollStatus = true; }); if (userinfoCont.hasAttribute("title")) { bodyCSS.classList.add("logged-in"); sidemenuElem.querySelector("#sidemenu").classList.add("logged-in"); } if (isModerator) { userlistElem.querySelector("#userlist").classList.add("llama-mod"); chatlistElem.querySelector("#chatlist").classList.add("llama-mod"); } //grab GM Values and turn into a settingsQuick[] array var settingsQuick = { "Autoscroll": (GM_getValue("llama-Autoscroll") == "true" || GM_getValue("llama-Autoscroll") == undefined), "MentionsMonitor": (GM_getValue("llama-MentionsMonitor") == "true" || GM_getValue("llama-MentionsMonitor") == undefined), "NotificationsOff": (GM_getValue("llama-NotificationsOff") == "true" || GM_getValue("llama-NotificationsOff") == undefined), "ChangeFont": (GM_getValue("llama-ChangeFont") == "true" || GM_getValue("llama-ChangeFont") == undefined), "MaxedCamLeft": (GM_getValue("llama-MaxedCamLeft") == "true" || GM_getValue("llama-MaxedCamLeft") == undefined), "NightMode": (GM_getValue("llama-NightMode") == "true"), "BorderlessCams": (GM_getValue("llama-BorderlessCams") == "true" || GM_getValue("llama-BorderlessCams") == undefined), "RoundedCams": (GM_getValue("llama-RoundedCams") == "true" || GM_getValue("llama-RoundedCams") == undefined), "TransparentChat": (GM_getValue("llama-TransparentChat") == "true" || GM_getValue("llama-TransparentChat") == undefined), "ThemeChoice": (GM_getValue("llama-ThemeChoice")), "RoomBG": (GM_getValue("llama-RoomBG") == "true" || GM_getValue("llama-RoomBG") == undefined), "RoomBGURL": (GM_getValue("llama-RoomBGURL")), "miniyt": (GM_getValue("llama-miniyt") == "true"), "ChatBelow": (GM_getValue("llama-ChatBelow") == "true"), }; settingsQuick["LlamaTheme"] = true; let usersSelectedTheme = settingsQuick["ThemeChoice"]; if (usersSelectedTheme != undefined) {Toggle_Theme(usersSelectedTheme);} else {Toggle_Theme('default');} if (settingsQuick["ChangeFont"]) bodyElem.classList.add("llama-changefont"); if (settingsQuick["MaxedCamLeft"]) videolistCSS.classList.add("llama-leftcam"); if (settingsQuick["miniyt"]) miniytToggle(true); if (settingsQuick["ChatBelow"]) chatBelowToggle(true); if (settingsQuick["BorderlessCams"]) borderlessCamsToggle(true); if (settingsQuick["RoundedCams"]) roundCamsToggle(true); if (browserFirefox && 1 == 2) { titleElem.querySelector("#room-header-info").insertAdjacentHTML("afterend", ` <div id="llama-firefoxwarning" class="style-scope tinychat-title" style="font-size: .75em; background: white; color: grey; width: 200px; padding: 5px; line-height: 13px;vertical-align: middle;border: #ddd 1px solid;border-width: 0px 1px 0px 1px;"> <div class="style-scope tinychat-title" style="display: table;height: 100%;"> <span style="display: table-cell; vertical-align: middle;top: 16%;" class="style-scope tinychat-title"> Tinychat Theme requires Chrome or Opera. </span> </div> </div> `); } function waitForSettings() { try { settingsVisible = false; if (titleElem.querySelector("#room-header-gifts") != null) { clearInterval(settingsWaitInterval); newCamAdded(); newUserAdded(); newMessageAdded(); setTimeout(messageParserCheckCSS, 3000); giftsElemWidth = titleElem.querySelector("#room-header-gifts").offsetWidth; if (titleElem.querySelector("#room-header-gifts-items") == null) { giftsElemWidth1000 = giftsElemWidth + 45; } else { giftsElemWidth1000 = giftsElemWidth; } if (titleCSS.querySelector("#titleCSS")) { titleCSS.querySelector("#titleCSS").innerHTML += ` #llama-settings { right: ` + giftsElemWidth + `px; } `; } var sidemenuFakeBorder = document.createElement("span"); sidemenuFakeBorder.setAttribute("id", "llama-sidemenufakeborder"); sidemenuCSS.insertAdjacentElement("beforeend", sidemenuFakeBorder); settingsElem = titleElem.querySelector("#room-header-gifts").insertAdjacentHTML("beforebegin", llamaSettingsCSS); titleElem.getElementById("llama-settingsGear").addEventListener("click", toggleSettingsDisplay); titleElem.getElementById("llama-themesGear").addEventListener("click", toggleThemesDisplay); titleElem.getElementById("llama-gamesGear").addEventListener("click", toggleGamesDisplay); titleElem.getElementById("llama-trans-chat-checkbox").addEventListener("click", toggleTransparentChat); toggleSubSetting() // llama menus var llama_menus = ["general", "theme", "images", "cams"]; llama_menus.forEach(function(llama_menu) { titleElem.getElementById("llama_" + llama_menu).addEventListener("click", function() { toggleSubSetting(llama_menu); }); }); // llama themes var llama_themes = ['pink', 'green', 'blue', 'mauve', 'orange', 'red', 'purple', 'black', 'trueblack', 'default', 'weed', 'smashbros', 'splatoon']; llama_themes.forEach(function(llama_theme) { titleElem.getElementById(llama_theme + "_square").addEventListener("click", function() { Toggle_Theme(llama_theme); }); titleElem.querySelector("#llama-settings-" + llama_theme + "mode input").addEventListener("click", function() { Toggle_Theme(llama_theme); }); //console.log('AEL THEME:----' + llama_theme) }); // llama custom background image titleElem.getElementById("llama-settings-roombg").addEventListener("click", function() { Toggle_Theme("roombg"); }); titleElem.getElementById("llama_roombg_img").addEventListener("focusout", function() { Toggle_Theme("roombg"); }); // llama mentions titleElem.querySelector("#llama-settings #llama-settings-mentions button.save").addEventListener("click", function() { mentionsManager("save"); }); // llama original settings var llama_original_settings = ['borderlesscams', 'miniyt', 'autoscroll', 'mentions', 'notifications', 'changefont', 'chatbelow', 'roundedcams', 'maxcamposition']; llama_original_settings.forEach(function(llama_original_setting) { titleElem.querySelector("#llama-settings-" + llama_original_setting + " input").addEventListener("click", function() { settingsCheckboxUpdate("llama-settings-" + llama_original_setting); }); //console.log('AEL ORIG:----' + llama_original_setting) }); // llama reloaders mentionsManager("load"); settingsCheckboxUpdate(); toggleTransparentChat('reload') reloadUserImages(); notificationHider(); } llamaConsole("> LOAD COMPLETE!") } catch (e) { llamaConsole("error waitForSettings: " + e.message); } } function Toggle_Theme(color) { var trueblack_bgcolor = "#000000" var trueblack_bordercolor = "#0d0d0e" var trueblack_lightbgcolor = "#0e0e0e" var trueblack_textcolor = "#FFFFFF" var trueblack_buttontext = "#2e303a" var trueblack_userlist = "#FFFFFF" var trueblack_cambgcolor = "#000" var darkgreen_bgcolor = "#143848" var darkgreen_bordercolor = "#061015" var darkgreen_lightbgcolor = "#263233" var darkgreen_textcolor = "#FFFFFF" var darkgreen_buttontext = "#446165" var darkgreen_userlist = "#FFFFFF" var darkgreen_cambgcolor = "#071921" var pink_bgcolor = "#fb98c9" var pink_bordercolor = "#eebfda" var pink_lightbgcolor = "#ffe0ee" var pink_textcolor = "#db6ba3" var pink_buttontext = "#a65480" var pink_userlist = "#FFFFFF" var pink_cambgcolor = "#b7719d" var neonpink_bgcolor = "#940282" var neonpink_bordercolor = "#ff51ea" var neonpink_lightbgcolor = "#ad0098" var neonpink_textcolor = "#FFFFFF" var neonpink_buttontext = "#350024" var neonpink_userlist = "#000000" var neonpink_cambgcolor = "#650059" var green_bgcolor = "#042500" var green_bordercolor = "#217c16" var green_lightbgcolor = "#00500d" var green_textcolor = "#FFFFFF" var green_buttontext = "#042500" var green_userlist = "#FFFFFF" var green_cambgcolor = "#010c00" var neongreen_bgcolor = "#109600" var neongreen_bordercolor = "#0e6904" var neongreen_lightbgcolor = "#01ca21" var neongreen_textcolor = "#FFFFFF" var neongreen_buttontext = "#063c00" var neongreen_userlist = "#FFFFFF" var neongreen_cambgcolor = "#010c00" var blue_bgcolor = "#111949" var blue_bordercolor = "#596ce0" var blue_lightbgcolor = "#2a388b" var blue_textcolor = "#FFFFFF" var blue_buttontext = "#111949" var blue_userlist = "#FFFFFF" var blue_cambgcolor = "#050921" var mauve_bgcolor = "#9168b2" var mauve_bordercolor = "#d6b7ef" var mauve_lightbgcolor = "#BF8FE5" var mauve_textcolor = "#000000" var mauve_buttontext = "#9168b2" var mauve_userlist = "#000000" var mauve_cambgcolor = "#4c2c65" var orange_bgcolor = "#b33700" var orange_bordercolor = "#ff8d10" var orange_lightbgcolor = "#ff4f00" var orange_textcolor = "#000000" var orange_buttontext = "#b33700" var orange_userlist = "#000000" var orange_cambgcolor = "#6b2100" var red_bgcolor = "#590000" var red_bordercolor = "#d02323" var red_lightbgcolor = "#860000" var red_textcolor = "#FFFFFF" var red_buttontext = "#590000" var red_userlist = "#FFFFFF" var red_cambgcolor = "#290000" var purple_bgcolor = "#280048" var purple_bordercolor = "#b14fff" var purple_lightbgcolor = "#550098" var purple_textcolor = "#FFFFFF" var purple_buttontext = "#280048" var purple_userlist = "#FFFFFF" var purple_cambgcolor = "#0d0017" var black_bgcolor = "#191919" var black_bordercolor = "#23272a" var black_lightbgcolor = "#2a2a2a" var black_textcolor = "#FFFFFF" var black_buttontext = "#7289da" var black_userlist = "#FFFFFF" var black_cambgcolor = "#111" try { var body = document.body if(color != "roombg") { llamaConsole('Theme -> ' + color.charAt(0).toUpperCase() + color.slice(1)) var theme_choices = ['pink', 'green', 'blue', 'purple', 'orange', 'red', 'darkpurple', 'black', 'trueblack', 'default', 'weed', 'smashbros', 'splatoon'] theme_choices.forEach(function(theme_choice) { if (theme_choice === color) { bodyElem.classList.add("llama-theme") bodyElem.classList.add(color + "-theme") titleCSS.classList.add(color + "-theme") sidemenuCSS.classList.add(color + "-theme") userlistCSS.classList.add(color + "-theme") webappCSS.classList.add(color + "-theme") videolistCSS.classList.add(color + "-theme") videomoderationCSS.classList.add(color + "-theme") chatlistCSS.classList.add(color + "-theme") chatlogCSS.classList.add(color + "-theme") chatlogElem.querySelector("#chat-wider").classList.add(color + "-theme") //console.log('yes - ' + color) } else { bodyElem.classList.remove(theme_choice + "-theme") titleCSS.classList.remove(theme_choice + "-theme") sidemenuCSS.classList.remove(theme_choice + "-theme") userlistCSS.classList.remove(theme_choice + "-theme") webappCSS.classList.remove(theme_choice + "-theme") videolistCSS.classList.remove(theme_choice + "-theme") videomoderationCSS.classList.remove(theme_choice + "-theme") chatlistCSS.classList.remove(theme_choice + "-theme") chatlogCSS.classList.remove(theme_choice + "-theme") //console.log('no - ' + theme_choice) } }) } if (color === "roombg") { let roombg_checkbox = titleElem.querySelector('#llama-settings-roombg > input') let current_room_bg_image = titleElem.getElementById('llama_roombg_img').value if(roombg_checkbox.checked === true) { settingsQuick['RoomBG'] = true; document.documentElement.style.setProperty("--llamatheme-roombg", "url('" + current_room_bg_image + "')") GM_setValue('llama-RoomBG', true.toString()) GM_setValue('llama-RoomBGURL', current_room_bg_image.toString()) llamaConsole('Room BG Image -> ON'); llamaConsole('Room BG Image URL -> ' + current_room_bg_image); //console.log(GM_getValue('llama-RoomBG')) } else { document.documentElement.style.setProperty("--llamatheme-roombg", "url('')") settingsQuick['RoomBG'] = false; GM_setValue('llama-RoomBG', false.toString()) GM_setValue('llama-RoomBGURL', current_room_bg_image.toString()) //console.log(GM_getValue('llama-RoomBG')) } } else if (color === "weed") { GM_setValue('llama-ThemeChoice', color.toString()) if (color === "weed") { document.documentElement.style.setProperty("--llamatheme-bgcolor", "#000000") document.documentElement.style.setProperty("--llamatheme-bordercolor", "#005900") document.documentElement.style.setProperty("--llamatheme-lightbgcolor", "#000000") document.documentElement.style.setProperty("--llamatheme-textcolor", "#FFF") document.documentElement.style.setProperty("--llamatheme-buttontext", "#073800") document.documentElement.style.setProperty("--llamatheme-userlist", "#005900") document.documentElement.style.setProperty("--llamatheme-cambgcolor", "#000000") document.documentElement.style.setProperty("--llamatheme-headerbg", "url(https://i.ibb.co/jDC8w3C/weed-wallpaper-1920x1080.jpg)") if(settingsQuick['RoomBG'] != true) {document.documentElement.style.setProperty("--llamatheme-roombg", "url(https://i.ibb.co/5YKLsSK/wp2565886.jpg)")} document.documentElement.style.setProperty("--llamatheme-userbg", "url(https://i.ibb.co/5YKLsSK/wp2565886.jpg)") document.documentElement.style.setProperty("--llamatheme-chatbg", "url(https://i.ibb.co/5YKLsSK/wp2565886.jpg)") } } else if (color === "smashbros") { GM_setValue('llama-ThemeChoice', color.toString()) if (color === "smashbros") { document.documentElement.style.setProperty("--llamatheme-bgcolor", "#282828") document.documentElement.style.setProperty("--llamatheme-bordercolor", "#3c3c3c") document.documentElement.style.setProperty("--llamatheme-lightbgcolor", "#282828") document.documentElement.style.setProperty("--llamatheme-textcolor", "#FFF") document.documentElement.style.setProperty("--llamatheme-buttontext", "#FFF") document.documentElement.style.setProperty("--llamatheme-userlist", "#FFF") document.documentElement.style.setProperty("--llamatheme-cambgcolor", "#151515") document.documentElement.style.setProperty("--llamatheme-headerbg", "url(https://i.ibb.co/BK1CXz4/smashlogo.jpg)") if(settingsQuick['RoomBG'] != true) {document.documentElement.style.setProperty("--llamatheme-roombg", "url(https://i.ibb.co/JxkgSdj/melee-minimal-wallpaper-by-browniehooves-d8lwcvk.png)")} document.documentElement.style.setProperty("--llamatheme-userbg", "url(https://i.ibb.co/nRNHL9C/20444930186-7a639da784-o.png)") document.documentElement.style.setProperty("--llamatheme-chatbg", "url(https://i.ibb.co/ZSYHQs7/chat.jpg)") document.documentElement.style.setProperty("--llamatheme-ptt", "url(https://i.ibb.co/7KSTsdj/smash-clipart-87526.png)") } } else if (color === "splatoon") { GM_setValue('llama-ThemeChoice', color.toString()) if (color === "splatoon") { document.documentElement.style.setProperty("--llamatheme-bgcolor", "#282828") document.documentElement.style.setProperty("--llamatheme-bordercolor", "#3c3c3c") document.documentElement.style.setProperty("--llamatheme-lightbgcolor", "#282828") document.documentElement.style.setProperty("--llamatheme-textcolor", "#FFF") document.documentElement.style.setProperty("--llamatheme-buttontext", "#FFF") document.documentElement.style.setProperty("--llamatheme-userlist", "#FFF") document.documentElement.style.setProperty("--llamatheme-cambgcolor", "#151515") document.documentElement.style.setProperty("--llamatheme-headerbg", "url(https://i.ibb.co/XsTjVk0/splay-bg-header2.png)") if(settingsQuick['RoomBG'] != true) {document.documentElement.style.setProperty("--llamatheme-roombg", "url(https://i.ibb.co/C18JNgK/splatbg.jpg)")} document.documentElement.style.setProperty("--llamatheme-userbg", "url(https://i.ibb.co/7nrB9LT/test.png)") document.documentElement.style.setProperty("--llamatheme-chatbg", "url(https://i.ibb.co/TrKBZFn/splat-chat-bg3.png)") document.documentElement.style.setProperty("--llamatheme-ptt", "url(https://i.ibb.co/3dHQVhC/splat-mic2.png)") } } else { GM_setValue('llama-ThemeChoice', color.toString()) var llama_theme_bgcolor = "" var llama_theme_bordercolor = "" var llama_theme_lightbgcolor = "" var llama_theme_textcolor = "" var llama_theme_buttontext = "" var llama_theme_userlist = "" var llama_theme_cambgcolor = "" if (color === "default") { document.documentElement.style.setProperty("--llamatheme-bgcolor", "#2d373a") document.documentElement.style.setProperty("--llamatheme-bordercolor", "") document.documentElement.style.setProperty("--llamatheme-lightbgcolor", "") document.documentElement.style.setProperty("--llamatheme-textcolor", "") document.documentElement.style.setProperty("--llamatheme-buttontext", "") document.documentElement.style.setProperty("--llamatheme-userlist", "") document.documentElement.style.setProperty("--llamatheme-cambgcolor", "#FFF") } else if (color === "darkgreen") { llama_theme_bgcolor = darkgreen_bgcolor llama_theme_bordercolor = darkgreen_bordercolor llama_theme_lightbgcolor = darkgreen_lightbgcolor llama_theme_textcolor = darkgreen_textcolor llama_theme_buttontext = darkgreen_buttontext llama_theme_userlist = darkgreen_userlist llama_theme_cambgcolor = darkgreen_cambgcolor } else if (color === "pink") { llama_theme_bgcolor = pink_bgcolor llama_theme_bordercolor = pink_bordercolor llama_theme_lightbgcolor = pink_lightbgcolor llama_theme_textcolor = pink_textcolor llama_theme_buttontext = pink_buttontext llama_theme_userlist = pink_userlist llama_theme_cambgcolor = pink_cambgcolor } else if (color === "neonpink") { llama_theme_bgcolor = neonpink_bgcolor llama_theme_bordercolor = neonpink_bordercolor llama_theme_lightbgcolor = neonpink_lightbgcolor llama_theme_textcolor = neonpink_textcolor llama_theme_buttontext = neonpink_buttontext llama_theme_userlist = neonpink_userlist llama_theme_cambgcolor = neonpink_cambgcolor } else if (color === "green") { llama_theme_bgcolor = green_bgcolor llama_theme_bordercolor = green_bordercolor llama_theme_lightbgcolor = green_lightbgcolor llama_theme_textcolor = green_textcolor llama_theme_buttontext = green_buttontext llama_theme_userlist = green_userlist llama_theme_cambgcolor = green_cambgcolor } else if (color === "neongreen") { llama_theme_bgcolor = neongreen_bgcolor llama_theme_bordercolor = neongreen_bordercolor llama_theme_lightbgcolor = neongreen_lightbgcolor llama_theme_textcolor = neongreen_textcolor llama_theme_buttontext = neongreen_buttontext llama_theme_userlist = neongreen_userlist llama_theme_cambgcolor = neongreen_cambgcolor } else if (color === "blue") { llama_theme_bgcolor = blue_bgcolor llama_theme_bordercolor = blue_bordercolor llama_theme_lightbgcolor = blue_lightbgcolor llama_theme_textcolor = blue_textcolor llama_theme_buttontext = blue_buttontext llama_theme_userlist = blue_userlist llama_theme_cambgcolor = blue_cambgcolor } else if (color === "mauve") { llama_theme_bgcolor = mauve_bgcolor llama_theme_bordercolor = mauve_bordercolor llama_theme_lightbgcolor = mauve_lightbgcolor llama_theme_textcolor = mauve_textcolor llama_theme_buttontext = mauve_buttontext llama_theme_userlist = mauve_userlist llama_theme_cambgcolor = mauve_cambgcolor } else if (color === "orange") { llama_theme_bgcolor = orange_bgcolor llama_theme_bordercolor = orange_bordercolor llama_theme_lightbgcolor = orange_lightbgcolor llama_theme_textcolor = orange_textcolor llama_theme_buttontext = orange_buttontext llama_theme_userlist = orange_userlist llama_theme_cambgcolor = orange_cambgcolor } else if (color === "red") { llama_theme_bgcolor = red_bgcolor llama_theme_bordercolor = red_bordercolor llama_theme_lightbgcolor = red_lightbgcolor llama_theme_textcolor = red_textcolor llama_theme_buttontext = red_buttontext llama_theme_userlist = red_userlist llama_theme_cambgcolor = red_cambgcolor } else if (color === "purple") { llama_theme_bgcolor = purple_bgcolor llama_theme_bordercolor = purple_bordercolor llama_theme_lightbgcolor = purple_lightbgcolor llama_theme_textcolor = purple_textcolor llama_theme_buttontext = purple_buttontext llama_theme_userlist = purple_userlist llama_theme_cambgcolor = purple_cambgcolor } else if (color === "black") { llama_theme_bgcolor = black_bgcolor llama_theme_bordercolor = black_bordercolor llama_theme_lightbgcolor = black_lightbgcolor llama_theme_textcolor = black_textcolor llama_theme_buttontext = black_buttontext llama_theme_userlist = black_userlist llama_theme_cambgcolor = black_cambgcolor } else if (color === "trueblack") { llama_theme_bgcolor = trueblack_bgcolor llama_theme_bordercolor = trueblack_bordercolor llama_theme_lightbgcolor = trueblack_lightbgcolor llama_theme_textcolor = trueblack_textcolor llama_theme_buttontext = trueblack_buttontext llama_theme_userlist = trueblack_userlist llama_theme_cambgcolor = trueblack_cambgcolor } document.documentElement.style.setProperty("--llamatheme-bgcolor", llama_theme_bgcolor) document.documentElement.style.setProperty("--llamatheme-bordercolor", llama_theme_bordercolor) document.documentElement.style.setProperty("--llamatheme-lightbgcolor", llama_theme_lightbgcolor) document.documentElement.style.setProperty("--llamatheme-textcolor", llama_theme_textcolor) document.documentElement.style.setProperty("--llamatheme-buttontext", llama_theme_buttontext) document.documentElement.style.setProperty("--llamatheme-userlist", llama_theme_userlist) document.documentElement.style.setProperty("--llamatheme-cambgcolor", llama_theme_cambgcolor) document.documentElement.style.setProperty("--llamatheme-headerbg", "") if(settingsQuick['RoomBG'] != true) {document.documentElement.style.setProperty("--llamatheme-roombg", "")} document.documentElement.style.setProperty("--llamatheme-userbg", "") document.documentElement.style.setProperty("--llamatheme-chatbg", "") document.documentElement.style.setProperty("--llamatheme-ptt", "") } //alert('theme `' + color + '` chosen'); } catch (e) { llamaConsole("error toggleTheme: " + e.message); } } function toggleTransparentChat(status) { status = status || '' let current_trans_status = settingsQuick["TransparentChat"] let current_trans_checkbox = titleElem.getElementById('llama-trans-chat-checkbox') if(status != 'reload') { if(current_trans_status == true) { current_trans_checkbox.checked = false chatlogElem.querySelector("#chat-wrapper").setAttribute('style', '') var newValue = current_trans_checkbox.checked; settingsQuick["TransparentChat"] = newValue; GM_setValue("llama-TransparentChat", newValue.toString()); } else { current_trans_checkbox.checked = true chatlogElem.querySelector("#chat-wrapper").setAttribute('style', 'background-color: transparent;') var newValue = current_trans_checkbox.checked; settingsQuick["TransparentChat"] = newValue; GM_setValue("llama-TransparentChat", newValue.toString()); llamaConsole('Trasparent Chat -> ON') } } else { if(current_trans_status == true) { current_trans_checkbox.checked = true chatlogElem.querySelector("#chat-wrapper").setAttribute('style', 'background-color: transparent;') llamaConsole('Trasparent Chat -> ON') } } } function toggleSettingsDisplay(arg) { //console.log(arg) try { if (settingsVisible == true) { titleElem.getElementById("llama-settingsBox").classList.add("hidden"); titleElem.getElementById("llama-settings").classList.remove("llama-open"); settingsVisible = false; } else { titleElem.getElementById("llama-settingsBox").classList.remove("hidden"); titleElem.getElementById("llama-settings").classList.add("llama-open"); settingsVisible = true; } } catch (e) { llamaConsole("error toggleSettingsDisplay: " + e.message); } } function toggleThemesDisplay(arg) { if (settingsVisible == true) { titleElem.getElementById("llama-themesBox").classList.add("hidden"); titleElem.getElementById("llama-themes").classList.remove("llama-open"); titleElem.getElementById("llama-themesButton").classList.remove("llama-themes-open"); settingsVisible = false; } else { titleElem.getElementById("llama-themesBox").classList.remove("hidden"); titleElem.getElementById("llama-themes").classList.add("llama-open"); titleElem.getElementById("llama-themesButton").classList.add("llama-themes-open"); settingsVisible = true; } } function toggleGamesDisplay(arg) { if (settingsVisible == true) { titleElem.getElementById("llama-gamesBox").classList.add("hidden"); titleElem.getElementById("llama-games").classList.remove("llama-open"); titleElem.getElementById("llama-gamesButton").classList.remove("llama-games-open"); settingsVisible = false; } else { titleElem.getElementById("llama-gamesBox").classList.remove("hidden"); titleElem.getElementById("llama-games").classList.add("llama-open"); titleElem.getElementById("llama-gamesButton").classList.add("llama-games-open"); settingsVisible = true; } } function toggleHidingDisplay(arg) { if (settingsVisible == true) { titleElem.getElementById("llama-hidingBox").classList.add("hidden"); titleElem.getElementById("llama-hiding").classList.remove("llama-open"); titleElem.getElementById("llama-hidingButton").classList.remove("llama-hiding-open"); settingsVisible = false; } else { titleElem.getElementById("llama-hidingBox").classList.remove("hidden"); titleElem.getElementById("llama-hiding").classList.add("llama-open"); titleElem.getElementById("llama-hidingButton").classList.add("llama-hiding-open"); settingsVisible = true; } } function toggleSubSetting(arg) { arg = arg || 'reload' try { //console.log(arg) if(arg != 'reload') { //llamaConsole('MENU -> ' + arg.charAt(0).toUpperCase() + arg.slice(1)) } else {arg = 'general';} var setting_choices = ["general", "theme", "images", "cams"] setting_choices.forEach(function(setting_choice) { if (setting_choice === arg) { titleElem.getElementById('llama_' + arg).classList.add('active') titleElem.getElementById('llama_' + arg + '_settings').classList.remove('d-none') } else { titleElem.getElementById('llama_' + setting_choice).classList.remove('active') titleElem.getElementById('llama_' + setting_choice + '_settings').classList.add('d-none') } }) } catch (e) { llamaConsole("error toggleSubSetting: " + e.message); } } function settingsCheckboxUpdate(settingName = null, value = null) { try { if (settingName == null && value == null) { //no arguments set, then load checkboxes from settingsQuick[] titleElem.getElementById("llama-settings-borderlesscams").querySelector("input").checked = settingsQuick["BorderlessCams"]; titleElem.getElementById("llama-settings-roundedcams").querySelector("input").checked = settingsQuick["RoundedCams"]; titleElem.getElementById("llama-settings-miniyt").querySelector("input").checked = settingsQuick["miniyt"]; titleElem.getElementById("llama-settings-autoscroll").querySelector("input").checked = settingsQuick["Autoscroll"]; titleElem.getElementById("llama-settings-mentions").querySelector("input").checked = settingsQuick["MentionsMonitor"]; titleElem.getElementById("llama-settings-notifications").querySelector("input").checked = settingsQuick["NotificationsOff"]; titleElem.getElementById("llama-settings-changefont").querySelector("input").checked = settingsQuick["ChangeFont"]; titleElem.getElementById("llama-settings-chatbelow").querySelector("input").checked = settingsQuick["ChatBelow"]; titleElem.getElementById("llama-settings-maxcamposition").querySelector("input").checked = settingsQuick["MaxedCamLeft"]; return; } if (settingName == "llama-settings-autoscroll") { if (value == null) { var newValue = titleElem.getElementById("llama-settings-autoscroll").querySelector("input").checked; settingsQuick["Autoscroll"] = newValue; GM_setValue("llama-Autoscroll", newValue.toString()); } } if (settingName == "llama-settings-mentions") { if (value == null) { var newValue = titleElem.getElementById("llama-settings-mentions").querySelector("input:first-of-type").checked; // if (newValue) { // titleElem.getElementById("llama-settings-mentions").getAttribute("class").includes("setting-disabled"); // } settingsQuick["MentionsMonitor"] = newValue; GM_setValue("llama-MentionsMonitor", newValue.toString()); llamaConsole('MentionsMonitor -> ' + newValue); } } if (settingName == "llama-settings-notifications") { if (value == null) { var newValue = titleElem.getElementById("llama-settings-notifications").querySelector("input").checked; settingsQuick["NotificationsOff"] = newValue; GM_setValue("llama-NotificationsOff", newValue.toString()); notificationHider(); } } if (settingName == "llama-settings-changefont") { if (value == null) { var newValue = titleElem.getElementById("llama-settings-changefont").querySelector("input").checked; settingsQuick["ChangeFont"] = newValue; GM_setValue("llama-ChangeFont", newValue.toString()); fontToggle(newValue); llamaConsole('Improve Font -> ' + newValue); } } if (settingName == "llama-settings-chatbelow") { if (value == null) { var newValue = titleElem.getElementById("llama-settings-chatbelow").querySelector("input").checked; settingsQuick["ChatBelow"] = newValue; GM_setValue("llama-ChatBelow", newValue.toString()); chatBelowToggle(newValue); llamaConsole('Chat on Bottom -> ' + newValue); } } if (settingName == "llama-settings-maxcamposition") { if (value == null) { var newValue = titleElem.getElementById("llama-settings-maxcamposition").querySelector("input").checked; settingsQuick["MaxedCamLeft"] = newValue; GM_setValue("llama-MaxedCamLeft", newValue.toString()); maxCamPositionToggle(newValue); llamaConsole('Max Cam Position on Left -> ' + newValue); } } if (settingName == "llama-settings-miniyt") { if (value == null) { var newValue = titleElem.getElementById("llama-settings-miniyt").querySelector("input").checked; settingsQuick["miniyt"] = newValue; GM_setValue("llama-miniyt", newValue.toString()); miniytToggle(newValue); llamaConsole('Mini Youtube Player -> ' + newValue); } } if (settingName == "llama-settings-borderlesscams") { if (value == null) { var newValue = titleElem.getElementById("llama-settings-borderlesscams").querySelector("input").checked; settingsQuick["BorderlessCams"] = newValue; GM_setValue("llama-BorderlessCams", newValue.toString()); borderlessCamsToggle(newValue); llamaConsole('Borderless Cams -> ' + newValue); } } if (settingName == "llama-settings-roundedcams") { if (value == null) { var newValue = titleElem.getElementById("llama-settings-roundedcams").querySelector("input").checked; settingsQuick["RoundedCams"] = newValue; GM_setValue("llama-RoundedCams", newValue.toString()); roundCamsToggle(newValue); llamaConsole('Rounded Cam Corners -> ' + newValue); } } } catch (e) { llamaConsole("error settingsCheckboxUpdate: " + e.message); } } function fontToggle(arg) { try { arg ? bodyElem.classList.add("llama-changefont") : bodyElem.classList.remove("llama-changefont"); } catch (e) { llamaConsole("error fontToggle: " + e.message); } } function reloadUserImages() { let current_roombg = settingsQuick['RoomBG']; let current_roombg_url = settingsQuick['RoomBGURL']; //console.log('room bg: ' + current_roombg) //console.log('room bg url: ' + current_roombg_url) let roombg_checkbox = titleElem.querySelector('#llama-settings-roombg > input') if (current_roombg_url) {titleElem.getElementById('llama_roombg_img').value = current_roombg_url} if (current_roombg == true) {roombg_checkbox.checked = true; Toggle_Theme('roombg');} } function roundCamsToggle(arg) { if (videolistElem.querySelector(camQueryString) != null) { var camElems = videolistElem.querySelectorAll(camQueryString); for (i = 0; i < camElems.length; i++) { var camItem = camElems[i].querySelector("tc-video-item").shadowRoot; var camElem = camItem.querySelector(".video"); arg ? camElem.classList.add("llama-roundedcams") : camElem.classList.remove("llama-roundedcams"); } } arg ? llamaConsole('Rounded Cams -> ON') : '' arg ? videolistCSS.classList.add("llama-roundedcams") : videolistCSS.classList.remove("llama-roundedcams"); } function borderlessCamsToggle(arg) { if (videolistElem.querySelector(camQueryString) != null) { var camElems = videolistElem.querySelectorAll(camQueryString); for (i = 0; i < camElems.length; i++) { var camItem = camElems[i].querySelector("tc-video-item").shadowRoot; var camElem = camItem.querySelector(".video"); arg ? camElem.classList.add("llama-borderlesscams") : camElem.classList.remove("llama-borderlesscams"); } } arg ? llamaConsole('Remove Cam Padding -> ON') : '' arg ? videolistCSS.classList.add("llama-borderlesscams") : videolistCSS.classList.remove("llama-borderlesscams"); } function maxCamPositionToggle(arg) { try { arg ? videolistCSS.classList.add("llama-leftcam") : videolistCSS.classList.remove("llama-leftcam"); } catch (e) { llamaConsole("error maxCamPositionToggle: " + e.message); } } function miniytToggle(arg) { try { arg ? videolistCSS.classList.add("llama-miniyt") : videolistCSS.classList.remove("llama-miniyt"); } catch (e) { llamaConsole("error miniytToggle: " + e.message); } } function chatBelowToggle(arg) { try { arg ? chatlogOuter.classList.add("llama-chatbelow") : chatlogOuter.classList.remove("llama-chatbelow"); arg ? videosFooter.classList.add("llama-chatbelow") : chatlogOuter.classList.remove("llama-chatbelow"); } catch (e) { llamaConsole("error chatBelowToggle: " + e.message); } } function notificationHider() { try { chatlogContainer = chatlogElem.querySelector("#chat-content"); settingsQuick["NotificationsOff"] ? chatlogContainer.classList.add("llama-notif-off") : chatlogContainer.classList.remove("llama-notif-off"); } catch (e) { llamaConsole("error notificationHider: " + e.message); } } function copyChatlog(opt = null) { try { if (opt == "close") { chatlogDisplayElem.classList.remove("show"); chatlogDisplayClose.classList.remove("show"); setTimeout(function() { chatlogDisplayCont.classList.remove("show"); }, 300); return; } var filename = "tinychat_" + roomName + "_" + joinDate + "_" + joinTime.replace(/:/g, ".") + "-chatlog.log"; var chatlogText = "Tinychat room " + roomName + " on " + joinDate + " " + joinTime + newline + "Users (" + usersCountInitial + "): " + userlistInitial + newline + chatlogMain; var downloadLink = 'data:text/plain;charset=utf-8,' + encodeURIComponent(chatlogText); var downloadElem = document.createElement('a'); downloadElem.setAttribute("href", downloadLink); downloadElem.setAttribute("download", filename); if (opt == "download") { if (browserFirefox) showUpdateNotifier("Chat log downloading doesn't work in Firefox yet."); else downloadElem.click(); } if (opt == "view" || opt == null) { if (typeof chatlogDisplayCont == "undefined") { chatlogDisplayCont = chatlogElem.querySelector("#llama-chatlogDisplay"); chatlogDisplayElem = chatlogDisplayCont.querySelector("textarea"); chatlogDisplayClose = chatlogDisplayCont.querySelector("#close"); } chatlogDisplayElem.value = chatlogText; chatlogDisplayCont.classList.add("show"); setTimeout(function() { chatlogDisplayElem.classList.add("show"); chatlogDisplayClose.classList.add("show"); }, 50); chatlogDisplayElem.scrollTop = chatlogDisplayElem.scrollHeight; } } catch (e) { llamaConsole("error copyChatlog: " + e.message); } } function getFormattedDateTime(d, opt = null) { try { if (opt == "time") return d.toLocaleTimeString('en-US', { hour12: false }); else return d.toLocaleDateString('zh-CN', { 'year': 'numeric', 'month': '2-digit', 'day': '2-digit' }).replace(/\//g, "-"); } catch (e) { llamaConsole("error getFormattedDateTime: " + e.message); } } function mentionsManager(mode) { try { var inputElem = titleElem.querySelector("#llama-settings #llama-settings-mentions input.text"); // phrases = inputElem.value.split(","); var phrase = inputElem.value; if (phrase.endsWith(",")) { phrase = phrase.slice(0, -1); } if (phrase.startsWith(",")) { phrase = phrase.slice(1); } if (mode == "save") { GM_setValue("llama-Mentions", phrase); settingMentions = phrase.split(","); inputElem.value = phrase; } if (mode == "load") { var loadedMentions = GM_getValue("llama-Mentions"); if (loadedMentions != undefined) { inputElem.value = loadedMentions; settingMentions = loadedMentions.split(","); } } return; var phrase = phrase.toString(); if (mode == "save") { settingMentions.push(phrases); GM_setValue("llama-Mentions", JSON.stringify(setting_Mentions)); } if (mode == "load") { var mentions = JSON.parse(GM_getValue("llama-Mentions")); settingMentions = mentions; inputElem.value = settingMentions.join(); } } catch (e) { llamaConsole("error mentionsManager: " + e.message); } } function declareGlobalVars() { try { globalCSS = `:root { --llamatheme-bgcolor: #2d373a; --llamatheme-bordercolor: rgba(0, 0, 0, .1); --llamatheme-lightbgcolor: #2d373a; --llamatheme-textcolor: #000; --llamatheme-buttontext: ; --llamatheme-roombg: ; --llamatheme-userbg: ; --llamatheme-chatheaderbg: ; --llamatheme-chatbg: ; --llamatheme-messagebg: ; --llamatheme-userlist: ; --llamatheme-cambgcolor: #FFF; ; } * { scrollbar-color: #ccc transparent; scrollbar-width: thin; } .llama-nightmode * { scrollbar-color: #242C2E transparent; } .llama-nightmode.blacknight * { scrollbar-color: #111 transparent; } .icon-resize { left: 50%; margin-left: -11px;display:none; } :host, #videolist { background-color: transparent; } @media screen and (max-width: 600px){ :host, #videolist { height: 0px !important; }} .video.llama-roundedcams div.ratio-4-3 { border-radius: 10px; } /*--------------------------------------------------MINIYT--------------------------------------------------------*/ .llama-miniyt .videos-items:first-child:not(.hidden) { width: 100px !important; position: absolute; top: -20px; left: -24px; height: 75px !important; z-index: 1; opacity: 0.5;} .llama-miniyt #icon-seek {display:none;} @media only screen and (min-width: 1920px) { .llama-miniyt #videos.row > .videos-items:last-child { width: 100%;} } `; camItemCSShtml = ` <style id="camItemCSS">` + globalCSS + ` .icon-llama-max { position: absolute; top: -40%; right: 0; z-index: 9; background: none; border: 0; } .icon-llama-max:hover { cursor: pointer; } .icon-llama-max path { fill: #04caff; } .video:hover .icon-llama-max { top: 40%; transition: top .2s ease .2s, right .2s ease .2s, left .2s ease .2s, opacity .2s; } .icon-llama-close { position: absolute; top: -40%; left:3%; z-index: 9; background: none; border: 0; } .icon-llama-close:hover { cursor: pointer; } .icon-llama-close path { fill: #ff0000; } .video:hover .icon-llama-close { top: 40%; transition: top .2s ease .2s, left .2s ease .2s, right .2s ease .2s, opacity .2s; } .video > div > .overlay { border-radius: 40px; } .video:after { border: 0px !important; border-color:#2a2c2c !important;} /* Disable cam border .video:after { border: none; border-color:#2a2c2c} .video > div { background-color: unset; } video, .video > div > .overlay { border-radius: 10px; } */ .video { transition: .4s; } .llama-borderlesscams.video { padding: 0; } .llama-leftcam.llama-close.llama-closedCam.video > div > .overlay { border-radius: 100px;} .llama-borderlesscams.video:after { display: none; } .llama-nightmode.video:after { border-color: var(--nightmode-bgcolor); } .llama-nightmode.blacknight.video:after { border-color: var(--nightmodeBlack-bgcolor); } .llama-pinkmode.blacknight.video:after, .llama-greenmode.blacknight.video:after, .llama-bluemode.blacknight.video:after, .llama-purplemode.blacknight.video:after, .llama-orangemode.blacknight.video:after, .llama-redmode.blacknight.video:after, .llama-darkpurplemode.blacknight.video:after, .llama-whitemode.blacknight.video:after { border-color: transparent; } .llama-nightmode.blacknight.video > div > .waiting { background: #111; } .llama-nightmode.blacknight.video > div { background-color: #111; } </style> `; camMaxCSShtml = ` <style id="camMaxCSS">` + globalCSS + ` .llama-max .js-video { width: 15%!important; z-index: 1; } .llama-leftcam .llama-max .js-video { float: right; order: 2; } .llama-leftcam .llama-max .llama-maxedCam { float: left; order: 1; } div[data-video-count="5"] .llama-max .js-video:not(.llama-maxedCam), div[data-video-count="6"] .llama-max .js-video:not(.llama-maxedCam), div[data-video-count="7"] .llama-max .js-video:not(.llama-maxedCam) { width: 20%!important; } .llama-max.llama-camCount2 .js-video { width: 30%!important; } .llama-max.llama-camCount10-11 .js-video { width: 16%!important; } .llama-max.llama-camCount12 .js-video { width: 14%!important; } :not(.hidden) + .llama-max.llama-camCount12 .js-video, :not(.hidden) + .llama-max.llama-camCount10-11 .js-video, :not(.hidden) + .llama-max .js-video { width: 30%!important; } :not(.hidden) + .llama-max.llama-camCount2 .js-video { width: 60%!important; } .llama-max .js-video.llama-maxedCam, :not(.hidden) + .llama-max .js-video.llama-maxedCam { width: 70%!important; } @media screen and (max-width: 1400px) { .llama-max .js-video { width: 20%!important; } .llama-max.llama-camCount2 .js-video { width: 40%!important; } .llama-max.llama-camCount10-11 .js-video { width: 18%!important; } .llama-max.llama-camCount12 .js-video { width: 15%!important; } .llama-max .js-video.llama-maxedCam, :not(.hidden) + .llama-max .js-video.llama-maxedCam { width: 60%!important; } } `; camMaxButtonHtml = ` <button class="icon-llama-max" id="maxbutton-camName"> <svg width="18" height="18" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg"> <path d="M14.37 12.95l3.335 3.336a1.003 1.003 0 1 1-1.42 1.42L12.95 14.37a8.028 8.028 0 1 1 1.42-1.42zm-6.342 1.1a6.02 6.02 0 1 0 0-12.042 6.02 6.02 0 0 0 0 12.042zM6.012 9.032a.996.996 0 0 1-.994-1.004c0-.554.452-1.003.994-1.003h4.033c.55 0 .994.445.994 1.003 0 .555-.454 1.004-.995 1.004H6.012z" fill-rule="evenodd"></path> <path d="M0 .99C0 .445.444 0 1 0a1 1 0 0 1 1 .99v4.02C2 5.555 1.556 6 1 6a1 1 0 0 1-1-.99V.99z" transform="translate(7 5)" fill-rule="evenodd"></path> </svg> </button> `; camCloseCSShtml = ` <style id="camCloseCSS">` + globalCSS + ` .llama-close .js-video { z-index: 1; } .llama-leftcam .llama-close .js-video { float: right; order: 2; } /*---------CLOSED ITEM--------*/ .llama-leftcam .llama-close .llama-closedCam { width: 8% !important; z-index: 12; position: absolute; top: -130px; right: 100px; height: 5px !important; margin: 0; padding: 0; opacity: 0.5; float: left; order: 1;} div[data-video-count="5"] .llama-close .js-video:not(.llama-closedCam), div[data-video-count="6"] .llama-close .js-video:not(.llama-closedCam), div[data-video-count="7"] .llama-close .js-video:not(.llama-closedCam) {} .llama-close.llama-camCount2 .js-video {} .llama-close.llama-camCount10-11 .js-video {} .llama-close.llama-camCount12 .js-video {} :not(.hidden) + .llama-close.llama-camCount12 .js-video, :not(.hidden) + .llama-close.llama-camCount10-11 .js-video, :not(.hidden) + .llama-close .js-video {} :not(.hidden) + .llama-close.llama-camCount2 .js-video {} /*---------CLOSED ITEM--------*/ .llama-max .js-video.llama-closedCam, :not(.hidden) + .llama-close .js-video.llama-closedCam {} @media screen and (max-width: 1400px) { .llama-close .js-video {} .llama-close.llama-camCount2 .js-video {} .llama-close.llama-camCount10-11 .js-video {} .llama-close.llama-camCount12 .js-video {} /*---------CLOSED ITEM--BIG SCREEN------*/ .llama-close .js-video.llama-closedCam, :not(.hidden) + .llama-close .js-video.llama-closedCam {} } `; camCloseButtonHtml = ` <button class="icon-llama-close" id="closebutton-camName" style=""> <svg width="20" height="14" viewBox="0 0 20 14" xmlns="http://www.w3.org/2000/svg"> <path d="M3.63 12.024C1.474 10.5.52 8.65.52 8.65c-.657-.9-.68-2.417-.128-3.362C.392 5.288 2.452 0 10 0c1.94 0 3.52.35 4.79.867l.594-.592a.945.945 0 0 1 1.34.006.953.953 0 0 1 .004 1.34L4.616 13.724a.945.945 0 0 1-1.34-.006.953.953 0 0 1-.004-1.34l.357-.356zm9.598-9.594c-.942-.28-2.013-.43-3.23-.43-2.797 0-4.83.803-6.288 2.125-.496.45-.888.928-1.183 1.4-.163.26-.25.436-.27.49L2.2 6.16l-.08.137c-.17.29-.15.946.017 1.176l.09.123.07.136c.042.08.168.29.378.58A9.167 9.167 0 0 0 4.058 9.82c.32.28.656.535 1.01.766l8.16-8.156zm-6.08 11.222l1.713-1.714c.368.04.747.062 1.14.062 2.423 0 4.374-.814 5.942-2.185a9.2 9.2 0 0 0 1.386-1.51c.212-.293.338-.5.38-.583l.057-.108.07-.1c.19-.282.217-.94.07-1.17L17.8 6.18l-.072-.184a3.74 3.74 0 0 0-.268-.485 6.577 6.577 0 0 0-.972-1.2l1.415-1.414c1.244 1.225 1.69 2.374 1.69 2.374.6.94.512 2.465-.107 3.37 0 0-2.774 5.36-9.487 5.36-1.046 0-1.995-.13-2.853-.348z" fill-rule="evenodd"></path> </svg> </button> `; } catch (e) { llamaConsole("error declareGlobalVars: " + e.message); } } function injectCSS(cssName = null) { try { // Indenting is purposely wrong, for readability var insertPosition = "beforeend"; headElem = document.querySelector("head"); browserSpoofedChrome = (headElem.innerHTML.includes("Shady DOM styles for") ? true : false); if (browserSpoofedChrome) llamaConsole("browserSpoofedChrome"); var firefoxCSS = ""; // titleCSS if (browserFirefox) var firefoxCSS = ` #llama-settings-nightmode .nightmode-colors:after { display: none; } #llama-settings-nightmode .nightmode-colors { } #llama-settings-nightmode > span { position: relative; top: -4px; } #llama-settings-nightmode .label { margin-right: 3px; } #llama-settings-nightmode .sublabel { margin-left: unset; position: relative; top: -2px; } #llama-settings-nightmode .colorCont { position: relative; top: -2px; } `; titleCSShtml = `<style id="titleCSS" scope="tinychat-title">` + globalCSS + llamaTitleCSS + firefoxCSS + `</style>`; titleCSS.insertAdjacentHTML(insertPosition, titleCSShtml); // videolistCSS videolistCSShtml = `<style id="videolistCSS" scope="tc-videolist">` + globalCSS + llamaVideolistCSS + `</style>`; videolistCSS.insertAdjacentHTML(insertPosition, videolistCSShtml); // chatlistCSS chatlistCSShtml = `<style id="chatlistCSS" scope="tinychat-chatlist">` + globalCSS + llamaChatlistCSS + `</style>`; chatlistCSS.insertAdjacentHTML(insertPosition, chatlistCSShtml); // userlistCSS userlistCSShtml = `<style id="userlistCSS" scope="tinychat-userlist">` + globalCSS + llamaUserlistCSS + `</style>`; userlistCSS.insertAdjacentHTML(insertPosition, userlistCSShtml); // userContextmenuCSS userContextmenuCSShtml = `<style id="userContextmenuCSS" scope="tinychat-user-contextmenu">` + globalCSS + `#main {border: 1px solid rgba(0, 0, 0, .1);}</style>`; userContextmenuCSS.insertAdjacentHTML(insertPosition, userContextmenuCSShtml); // bodyCSS bodyCSShtml = `<style id="bodyCSS">` + globalCSS + llamaBodyCSS + `</style>`; bodyCSS.insertAdjacentHTML(insertPosition, bodyCSShtml); // messageCSS messageCSS = llamaMessageCSS; // chatlogCSS chatlogCSShtml = `<style id="chatlogCSS" scope="tinychat-chatlog">` + globalCSS + llamaChatlogCSS + `</style>`; chatlogCSS.insertAdjacentHTML(insertPosition, chatlogCSShtml); // sidemenuCSS var firefoxCSS = ""; if (browserSpoofedChrome) { firefoxCSS = `#sidemenu {left: 0!important;transition: all .4s ease-in-out;}`; } sidemenuCSShtml = `<style id="sidemenuCSS" scope="tinychat-sidemenu">` + globalCSS + llamaSidemenuCSS + firefoxCSS + `</style>`; sidemenuCSS.insertAdjacentHTML(insertPosition, sidemenuCSShtml); // videomoderationCSS videomoderationCSShtml = `<style id="videomoderationCSS" scope="tc-video-moderation">` + globalCSS + llamaVideoModerationCSS + `</style>`; videomoderationCSS.insertAdjacentHTML(insertPosition, videomoderationCSShtml); // webappCSS webappCSShtml = `<style id="webappCSS" scope="tinychat-webrtc-app">` + globalCSS + llamaWebappCSS + `</style>`; webappCSS.insertAdjacentHTML(insertPosition, webappCSShtml); } catch (e) { llamaConsole("error injectCSS: " + e.message); } } function injectElements() { try { headerGrabberParElem = titleElem.querySelector("#room-header"); headerGrabberParElem.insertAdjacentHTML("beforeend", `<div id="llama-header-grabber"></div>`); headerGrabberElem = headerGrabberParElem.querySelector("#llama-header-grabber"); headerGrabberElem.addEventListener("click", headerGrabber); sidemenuOverlayElem = bodyElem.querySelector("#menu-icon"); sidemenuOverlayElem.addEventListener("click", function() { sidemenuOverlayElem.classList.toggle("expanded"); }); chatlogButtonsHTML = ` <div id="llama-chatlogButtons"> <div id="llama-chatlogSave" class="llama-chatlogBut"> <span class="icon"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> <path d="m0,50l50,-50l50,50l-25,0l0,50l-50,0l0,-50l-25,0z"></path> </svg> </span><!-- ⇩ --> <span class="label">download</span> </div> <div id="llama-chatlogView" class="llama-chatlogBut"> <span class="icon">☰</span> <span class="label">view</span> </div> <div id="llama-chatlogDisplay"> <textarea spellcheck="false"></textarea> <div id="close">✕</div> </div> </div> <style> #systemMessageLog { padding: 5px; width: 97%; height: 200px; border-radius: 5px; margin: 3px; color: var(--llamatheme-textcolor); top: 22px; position: relative; margin: 0 auto; z-index: 9; } #liveTimer { position:relative; top:-23px; padding: 5px 10px 5px 10px; border-radius: 5px; border: 1px solid var(--llamatheme-bordercolor); background-color:var(--llamatheme-cambgcolor); color: var(--llamatheme-textcolor); width: 94.7%; box-shadow: 0 .125rem .25rem rgba(0,0,0,.075)!important; text-align: center; font-weight: bold; } .llama-systemMsg {margin-bottom: 5px;} </style> <div id="systemMessageLog"> <div id="liveTimer" style="display: none;"></div> </div> `; selectAllButton = chatlogElem.querySelector("#chat-wrapper").insertAdjacentHTML("afterbegin", chatlogButtonsHTML); chatlogElem.querySelector("#llama-chatlogSave").addEventListener("click", function() { copyChatlog("download") }); chatlogElem.querySelector("#llama-chatlogView").addEventListener("click", function() { copyChatlog("view") }); chatlogElem.querySelector("#llama-chatlogDisplay #close").addEventListener("click", function() { copyChatlog("close") }); if (!isPaidAccount) { sidemenuGrabberParElem = sidemenuElem.querySelector("#sidemenu"); sidemenuGrabberElem = document.createElement("div"); sidemenuGrabberElem.setAttribute("id", "llama-sidemenu-grabber"); sidemenuGrabberElem.innerHTML = ""; sidemenuGrabberElem.addEventListener("click", sidemenuGrabber); sidemenuGrabberParElem.appendChild(sidemenuGrabberElem); sidemenuGrabberElem = sidemenuElem.querySelector("#llama-sidemenu-grabber"); } } catch (e) { llamaConsole("error injectElements: " + e.message); } } function sidemenuGrabber() { try { sidemenuGrabberParElem.classList.toggle("llama-sidemenuCollapsed"); sidemenuGrabberParElem.classList.contains("llama-sidemenuCollapsed") ? sidemenuGrabberElem.innerHTML = "" : sidemenuGrabberElem.innerHTML = ""; userlistElem.querySelector("#userlist").classList.toggle("llama-sidemenuCollapsed"); videolistElem.querySelector("#videolist").classList.toggle("llama-sidemenuCollapsed"); webappElem.querySelector("#room").classList.toggle("llama-sidemenuCollapsed"); bodyElem.classList.toggle("llama-sidemenuCollapsed"); titleElem.querySelector("#llama-themes").classList.toggle("llama-sidemenuCollapsed"); titleElem.querySelector("#llama-settings-miniyt").classList.toggle("llama-sidemenuCollapsed"); titleElem.querySelector("#room-header").classList.toggle("llama-sidemenuCollapsed"); } catch (e) { llamaConsole("error sidemenuGrabber: " + e.message); } } function chatlogGrabber() { try { chatlogGrabberParElem.classList.toggle("llama-chatCollapsed"); chatlogGrabberParElem.classList.contains("llama-chatCollapsed") ? chatlogGrabberElem.innerHTML = "" : chatlogGrabberElem.innerHTML = ""; } catch (e) { llamaConsole("error sidemenuGrabber: " + e.message); } } function headerGrabber() { try { headerGrabberParElem.classList.toggle("llama-headerCollapsed"); headerGrabberParElem.classList.contains("llama-headerCollapsed") ? headerGrabberElem.innerHTML = "" : headerGrabberElem.innerHTML = ""; } catch (e) { llamaConsole("error headerGrabber: " + e.message); } } function updateScroll() { try { scrollbox.scrollTop = scrollbox.scrollHeight; scrollbox.scrollTop = scrollbox.scrollTop + 5; } catch (e) { llamaConsole("error updateScroll: " + e.message); } } function userHasScrolled(e) { try { var scrollwheelAmount = e.deltaY; if (scrollwheelAmount < 0) { autoScrollStatus = false; totalScrolledUp += scrollwheelAmount * -1; } else { totalScrolledUp -= scrollwheelAmount; } if (autoScrollStatus === false && scrollbox.scrollHeight - scrollbox.scrollTop == scrollbox.offsetHeight) { autoScrollStatus = true; totalScrolledUp = 0; } } catch (e) { llamaConsole("error userHasScrolled: " + e.message); } } function newMessageAdded() { //try { if (autoScrollStatus === true && settingsQuick["Autoscroll"]) { updateScroll(); } timestampAdd(); messageParser(); //} catch (e) { // llamaConsole("error newMessageAdded: " + e.message); //} } function userContextmenuUpdated() { try { var elemBottom = 0; var topPos = userContextmenuCSS.getBoundingClientRect().top; var elemBottom = topPos + userContextmenuCSS.offsetHeight; if (elemBottom > (window.innerHeight - 82)) { // userContextmenuCSS.style.top = (userContextmenuCSS.style.top - userlistElem.querySelector("#userlist").scrollTop - 200) + "px"; // userContextmenuCSS.style.top = (userlistElem.querySelector("#userlist").scrollTop - window.innerHeight) + "px"; userContextmenuCSS.style.top = (window.innerHeight - 82 - userContextmenuCSS.offsetHeight - 15) + "px"; // llamaConsole("Change: " + userContextmenuCSS.style.top); } // llamaConsole("elemBottom: " + elemBottom + ". Max: " + (window.innerHeight - 82) + ". offsetHeight: " + userContextmenuCSS.offsetHeight + ". New top: " + (window.innerHeight - 82 - userContextmenuCSS.offsetHeight)); } catch (e) { llamaConsole("error userContextmenuUpdated: " + e.message); } } function messageParserCheckCSS() { try { var messages = chatlogElem.querySelectorAll(messageQueryString); var messagesAmount = messages.length; chatboxHeight = chatlogElem.querySelector("#chat").offsetHeight; var messagesToCheck = messageHeight ? parseInt(chatboxHeight / messageHeight) + 3 : 20; if (messagesAmount > 0) { for (i = messagesAmount - 1; i > ((messagesAmount - messagesToCheck) - 1); i--) { if (i == 0) break; var tcMessageHtmlElem = messages[i].querySelector("tc-message-html").shadowRoot; if (!tcMessageHtmlElem.querySelector("#messageCSS")) tcMessageHtmlElem.appendChild(messageParserAddCSS()); if (settingsQuick["NightMode"]) tcMessageHtmlElem.querySelector("#html").classList.add("llama-nightmode"); if (settingsQuick["NightModeBlack"]) tcMessageHtmlElem.querySelector("#html").classList.add("blacknight"); } } } catch (e) { llamaConsole("error messageParserCheckCSS: " + e.message); } } function messageParserAddCSS(elem = null) { try { var node = document.createElement("style"); var textnode = document.createTextNode(messageCSS); node.appendChild(textnode); node.setAttribute("id", "messageCSS"); if (elem) { elem.appendChild(node); } else { return node; } } catch (e) { llamaConsole("error messageParserAddCSS: " + e.message); } } function getCurrentTime(){ var timestamp = new Date().toLocaleTimeString('en-US', { hour12: false }); return timestamp; } // START TOKE TIMERS let current_timer = false; let current_tokers = []; function liveTimer(current_time) { //llamaConsole(current_time) current_timer = true; current_time = (current_time-1) var liveTimer = setInterval(function() { if(current_time >= 1) { runLiveTimer(current_time); current_time = (current_time-1); chatlogCSS.querySelector('#liveTimer').setAttribute('style', '') } else { clearInterval(liveTimer) chatlogCSS.querySelector('#liveTimer').innerHTML = '' chatlogCSS.querySelector('#liveTimer').setAttribute('style', 'display: none;') current_timer = false; current_tokers = [] } }, 1000) } function runLiveTimer(current_time) { let timer_box = chatlogCSS.querySelector('#liveTimer') let displayTime = current_time.toString(); timer_box.innerHTML = displayTime + ' seconds until tokes!'; current_time = (current_time-1) } let MessageQueueList = []; function messageParser() { //try { let message_starter = "<a href='#' class='avatar'><div><img src='https://cdn1.iconfinder.com/data/icons/MetroStation-PNG/128/MB__Llama.png' style='left: 0px;'></div></a><a href='#' class='nickname' data-status=''>Tiny-Llama</a> <div class='content'><span id='html' class='message common llama-systemMsg' data-mode=''>"; let message_ender = '</span></div>' latestMessageElem = chatlogElem.querySelector(messageQueryString + ":last-of-type"); var typeSystem = false; var typeTinyLlamaSystem = false; if (latestMessageElem != null) { if (!messageHeight) { messageHeight = latestMessageElem.scrollHeight; chatboxHeight = chatlogElem.querySelector("#chat").offsetHeight; } if (latestMessageElem.classList.contains("system")) { typeSystem = true; //latestMessageElem.classList.add('d-none') //chatlogCSS.querySelector('#systemMessageLog').appendChild(latestMessageElem) } if (latestMessageElem.classList.contains("llama-systemMsg")) { typeTinyLlamaSystem = true; } //console.log(latestMessageElem.classList) latestMessageElem.setAttribute("id", "msg-" + messageCount); messageCount++; if (!typeSystem) { var latestMessageNickElem = latestMessageElem.querySelector(".nickname"); if(latestMessageNickElem){var latestMessageNick = latestMessageNickElem.innerHTML} else {var latestMessageNick = '';}; } else { latestMessageNick = "&system"; } if (latestMessageElem.querySelector("tc-message-html")) { tcMessageHtmlElem = latestMessageElem.querySelector("tc-message-html").shadowRoot; latestMessageContentElem = tcMessageHtmlElem.querySelector("#html"); //llamaConsole(latestMessageContentElem.innerHTML) if(latestMessageContentElem.innerHTML.startsWith("!join")) { let current_chat_log = chatlogElem.querySelector("#chat-content > dom-repeat") //add users to tokers [] if(current_timer === true) { if(current_tokers.includes(latestMessageNick)) { let new_system_msg = document.createElement("div"); new_system_msg.classList.add("llama-systemMSG", "message", "common"); new_system_msg.innerHTML = "<span id='timestamp'>[" + getCurrentTime() + "]</span>" + message_starter + latestMessageNick + ", you've already joined the toke! <br> Have patience young padawan!" + message_ender; chatlogElem.querySelector("#chat-content").insertBefore(new_system_msg, current_chat_log) } else { let new_system_msg = document.createElement("div"); new_system_msg.classList.add("llama-systemMSG", "message", "common"); new_system_msg.innerHTML = "<span id='timestamp'>[" + getCurrentTime() + "]</span>" + message_starter + latestMessageNick + " has joined the toke!" + message_ender; chatlogElem.querySelector("#chat-content").insertBefore(new_system_msg, current_chat_log) current_tokers.push(latestMessageNick) } } } if(latestMessageContentElem.innerHTML.startsWith("!toke")) { let current_chat_log = chatlogElem.querySelector("#chat-content > dom-repeat") if(current_timer === true) { if(current_tokers.includes(latestMessageNick)) { let new_system_msg = document.createElement("div"); new_system_msg.classList.add("llama-systemMSG", "message", "common"); new_system_msg.innerHTML = "<span id='timestamp'>[" + getCurrentTime() + "]</span>" + message_starter + latestMessageNick + ", Timer has already started, and you've already joined! What more do you want from me?!" + message_ender; chatlogElem.querySelector("#chat-content").insertBefore(new_system_msg, current_chat_log) } else { let new_system_msg = document.createElement("div"); new_system_msg.classList.add("llama-systemMSG", "message", "common"); new_system_msg.innerHTML = "<span id='timestamp'>[" + getCurrentTime() + "]</span>" + message_starter + latestMessageNick + " 🔥 Timer already started! Adding you to timer! " + message_ender; chatlogElem.querySelector("#chat-content").insertBefore(new_system_msg, current_chat_log) current_tokers.push(latestMessageNick) } } else { if(current_tokers.includes(latestMessageNick)) {} else {current_tokers.push(latestMessageNick)} let latestMessageContentArray = latestMessageContentElem.innerHTML.split(' ') let sent_time = 30; if(latestMessageContentArray[1]) { sent_time = latestMessageContentArray[1] } liveTimer(sent_time.toString()) let new_system_msg = document.createElement("div"); new_system_msg.classList.add("llama-systemMSG", "message", "common"); new_system_msg.innerHTML = "<span id='timestamp'>Started: " + getCurrentTime() + "</span>" + message_starter + " 🔥 TOKE TIMER STARTED!" + message_ender; chatlogElem.querySelector("#chat-content").insertBefore(new_system_msg, current_chat_log) new_system_msg = document.createElement("div"); new_system_msg.classList.add("llama-systemMSG", "message", "common"); new_system_msg.innerHTML = "<span id='timestamp'></span> " + message_starter + latestMessageNick + " has started a <strong>" + sent_time + "</strong> second toke timer!" + message_ender; chatlogElem.querySelector("#chat-content").insertBefore(new_system_msg, current_chat_log) let current_int = (latestMessageContentArray[1]*1000) if(latestMessageContentArray[1] > 5) { let repeat_amount = (latestMessageContentArray[1]/2) repeat_amount = (repeat_amount*1000) let repeat_timer_msg = setInterval(function(){ let new_system_msg = document.createElement("div"); new_system_msg.classList.add("llama-systemMSG", "message", "common"); new_system_msg.innerHTML = "<span id='timestamp'></span> " + message_starter + " ⌛ TIMER IS HALF WAY DONE! <br> JOIN NOW USING !join" + message_ender; chatlogElem.querySelector("#chat-content").insertBefore(new_system_msg, current_chat_log) clearInterval(repeat_timer_msg) }, repeat_amount) } let current_timer = setInterval(function(){ let new_system_msg = document.createElement("div"); new_system_msg.classList.add("llama-systemMSG", "message", "common"); var count = 0; for(var i = 0; i < current_tokers.length; ++i){ if(current_tokers[i] == 2) count++; } if(count > 1) { new_system_msg.innerHTML = "<span class='timestamp'></span> " + message_starter + " 🔥 " + current_tokers.toString() + ", IT's TIME TO TOKE! CHEERS! 🔥" + message_ender; } else { new_system_msg.innerHTML = "<span class='timestamp'></span> " + message_starter + " 🔥 " + current_tokers.toString() + ", IT's TIME TO TOKE! CHEERS! 🔥" + message_ender; } //let test //chatlogCSS.querySelector('#systemMessageLog').appendChild(new_system_msg); chatlogElem.querySelector("#chat-content").insertBefore(new_system_msg, current_chat_log) clearInterval(current_timer) }, (current_int-1)) }} if (!tcMessageHtmlElem.querySelector("#messageCSS")) { messageParserAddCSS(tcMessageHtmlElem); } if (settingsQuick["NightMode"]) latestMessageContentElem.classList.add("llama-nightmode"); if (settingsQuick["NightModeBlack"]) latestMessageContentElem.classList.add("blacknight"); } latestMessageContent = latestMessageContentElem.innerHTML; latestMessageContent.includes(" banned ") || latestMessageContent.includes(" kicked ") ? latestMessageElem.classList.add("dontHide") : void(0); if (settingsQuick["MentionsMonitor"]) { if (!(settingMentions.length == 1 && settingMentions[0] == "")) { for (i = 0; i < settingMentions.length; i++) { if (latestMessageContent.toLowerCase().includes(settingMentions[i].toLowerCase())) { latestMessageContentElem.classList.add("llama-mention-message"); if (settingsQuick["PinkMode"]) { pinkPop.play(); } if (settingsQuick["FeatureOneMode"]) { weedPop.play(); } else { audioPop.play(); } llamaConsole('MENTION: "' + settingMentions[i] + '" : ' + latestMessageContent); break; } } } } } //} catch (e) { // llamaConsole("error messageParser: " + e.message); // } } var messagesMO = new MutationObserver(function(e) { if (e[0].addedNodes) newMessageAdded(); }); messagesMO.observe(chatlogElem.querySelector("#chat-content"), { childList: true }); var camsMO = new MutationObserver(function(e) { if (e[0].addedNodes) newCamAdded(); }); camsMO.observe(videolistElem.querySelector(".videos-items:last-child"), { childList: true }); var userContextmenuMO = new MutationObserver(function(e) { if (e[0].addedNodes) userContextmenuUpdated(); }); userContextmenuMO.observe(userContextmenuCSS, { attributes: true }); var chatTextboxMO = new MutationObserver(function(e) { if (e[0].addedNodes) chatboxSwitch(); }); chatTextboxMO.observe(chatlogElem.querySelector("#chat-instant"), { attributes: true, attributeFilter: ['class'], childList: false, characterData: false }); var userlistMO = new MutationObserver(function(e) { if (e[0].addedNodes) newUserAdded(); }); userlistMO.observe(userlistElem.querySelector("#userlist"), { childList: true }); function chatboxSwitch() { messageParserCheckCSS(); return; // if (chatlistElem.querySelector("#chat-instant-button")) chatlistElem.querySelector("#chat-instant-button").classList.add("llama-loading"); try { chatboxPM = (chatlogElem.querySelector("#chat-instant").getAttribute("class") == "show"); chatboxPM ? chatlogCSS.classList.add("llama-chatboxPM") : chatlogCSS.classList.remove("llama-chatboxPM"); messageParserCheckCSS(); } catch (e) { llamaConsole("error chatboxSwitch: " + e.message) }; } function timestampAdd(opt = null) { try { var SHOW_SECONDS = true; var date = new Date(); var hours = date.getHours(); var minutes = date.getMinutes().toString(); var secs = date.getSeconds().toString(); if (hours > 11) { hours = (hours % 12 || 12); var period = "pm"; } else { var period = "am"; } if (hours == "0") { hours = "12"; } if (minutes == "0") { minutes = "00"; } if (minutes.length == 1) { minutes = "0" + minutes; } if (secs.length == 1) { secs = "0" + secs; } if (SHOW_SECONDS == true) { var timestamp = hours + ":" + minutes + ":" + secs + "" + period; } else { var timestamp = hours + ":" + minutes + period; } if (opt == "return") return; var queryString = messageQueryString + ".common:last-of-type .nickname"; if (chatlogElem.querySelector(queryString) != null) { var recentMsgNickname = chatlogElem.querySelector(queryString); recentMsgNickname.insertAdjacentHTML("afterend", "<span id='timestamp'> " + timestamp + "</span>"); } } catch (e) { llamaConsole("error timestampAdd: " + e.message); } } function newUserAdded(opt = null) { try { if (!userlistElem.querySelector("#userlist .list-item")) return; var usersElems = userlistElem.querySelectorAll("#userlist .list-item"); userCount = usersElems.length; setTimeout(function() { for (i = 0; i < usersElems.length; i++) { var userNickItem = usersElems[i].querySelector(".nickname"); var userNick = userNickItem.innerHTML; userNickItem.classList.remove("llama-myNick"); //if (userNick == myNick) { // userNickItem.classList.add("llama-myNick"); //} } }, 500); if (opt == "scanOnly") { return; } else { if (!userlistElem.querySelector("#llama-userCount")) { userCountParElem = userlistElem.querySelector("#header > span"); userCountElem = document.createElement("span"); userCountElem.setAttribute("id", "llama-userCount"); userCountElem.innerHTML = "(" + userCount + ")"; userCountParElem.appendChild(userCountElem); userCountElem = userlistElem.querySelector("#llama-userCount"); } else { userCountElem.innerHTML = "(" + userCount + ")"; } } } catch (e) { llamaConsole("error newUserAdded: " + e.message); } } function newCamAdded() { try { if (videolistElem.querySelector(camQueryString)) var camElems = videolistElem.querySelectorAll(camQueryString); else return; camsCount = 0; for (i = 0; i < camElems.length; i++) { camsCount = i + 1; var camItem = camElems[i].querySelector("tc-video-item").shadowRoot; var camItemCSS = camItem.querySelector(".video"); if (settingsQuick["NightMode"]) camItemCSS.classList.add("llama-nightmode"); else camItemCSS.classList.remove("llama-nightmode"); if (settingsQuick["NightModeBlack"]) camItemCSS.classList.add("blacknight"); else camItemCSS.classList.remove("blacknight"); if (settingsQuick["BorderlessCams"]) camItemCSS.classList.add("llama-borderlesscams"); if (settingsQuick["RoundedCams"]) camItemCSS.classList.add("llama-roundedcams"); else camItemCSS.classList.remove("llama-borderlesscams"); if (!camItem.querySelector("#camItemCSS")) camItemCSS.insertAdjacentHTML("afterbegin", camItemCSShtml); var camName = camItem.querySelector(".nickname").getAttribute("title"); camElems[i].setAttribute("id", "camUser-" + camName); // Cam maxing try { if (camItem.querySelector(".icon-llama-max")) { var maxbutton = camItem.querySelector(".icon-llama-max"); maxbutton.parentNode.removeChild(maxbutton); } camItem.querySelector(".icon-resize").insertAdjacentHTML("beforebegin", camMaxButtonHtml); camItem.querySelector(".icon-llama-max").setAttribute("id", "maxbutton-" + camName); var maxCamVar = function(maxCamVarArg) { videolistElem.querySelector(".videos-items:last-child").classList.remove("llama-max-noAnim"); maximizeCam(maxCamVarArg, "buttonpress"); }; camItem.querySelector("#maxbutton-" + camName).addEventListener("click", maxCamVar.bind(this, camName)); if (camMaxedCurrent == camName) { camElems[i].classList.add("llama-maxedCam"); camElems[i].parentElement.classList.add("llama-max"); } if (!videolistElem.querySelector(".llama-maxedCam")) camElems[i].parentElement.classList.remove("llama-max"); if (videolistCSS.querySelector("#camMaxCSS")) { var maxcss = videolistCSS.querySelector("#camMaxCSS"); maxcss.parentNode.removeChild(maxcss); } videolistCSS.insertAdjacentHTML("beforeend", camMaxCSShtml); } catch (e) { llamaConsole("error newCamAdded: " + e.message); } // Cam closing try { if (camItem.querySelector(".icon-llama-close")) { var closebutton = camItem.querySelector(".icon-llama-close"); closebutton.parentNode.removeChild(closebutton); } camItem.querySelector(".icon-resize").insertAdjacentHTML("beforebegin", camCloseButtonHtml); camItem.querySelector(".icon-llama-close").setAttribute("id", "closebutton-" + camName); var closeCamVar = function(closeCamVarArg) { videolistElem.querySelector(".videos-items:last-child").classList.remove("llama-close-noAnim"); closeimizeCam(closeCamVarArg, "buttonpress2"); }; camItem.querySelector("#closebutton-" + camName).addEventListener("click", closeCamVar.bind(this, camName)); if (camClosedCurrent == camName) { camElems[i].classList.add("llama-closedCam"); camElems[i].parentElement.classList.add("llama-close"); } if (!videolistElem.querySelector(".llama-closedCam")) camElems[i].parentElement.classList.remove("llama-close"); if (videolistCSS.querySelector("#camCloseCSS")) { var closecss = videolistCSS.querySelector("#camCloseCSS"); closecss.parentNode.removeChild(closecss); } videolistCSS.insertAdjacentHTML("beforeend", camCloseCSShtml); } catch (e) { llamaConsole("error newCamAdded: " + e.message); } if (settingsQuick["HideAllCams"] == "true" || urlPars.get("hideallcams") == "") { camItem.querySelector("button.icon-visibility").click(); llamaConsole("Cam hide: " + camName); } camCounter(camElems[i]); } } catch (e) { llamaConsole("error newCamAdded: " + e.message); } } function maximizeCam(camName, opt = null) { try { if (camName != camMaxedCurrent && camMaxedCurrent != null) { maximizeCam(camMaxedCurrent); maximizeCam(camName); return; } var camElem = videolistElem.querySelector("#camUser-" + camName); if (camElem == null) { camMaxedCurrent = null; return; } if (opt == "bbuttonpress") { camElem.parentElement.classList.remove("llama-max-noAnim"); } if (camElem.classList.contains("llama-maxedCam")) { camElem.classList.remove("llama-maxedCam"); camElem.parentElement.classList.remove("llama-max"); camMaxedCurrent = null; } else { camElem.classList.add("llama-maxedCam"); camElem.parentElement.classList.add("llama-max"); camMaxedCurrent = camName; setTimeout(function() { camElem.parentElement.classList.add("llama-max-noAnim"); }, 500); } camCounter(camElem); } catch (e) { llamaConsole("error maximizeCam: " + e.message); } } function closeimizeCam(camName, opt = null) { try { if (camName != camClosedCurrent && camClosedCurrent != null) { closeimizeCam(camClosedCurrent); closeimizeCam(camName); return; } var camElem = videolistElem.querySelector("#camUser-" + camName); if (camElem == null) { camClosedCurrent = null; return; } if (opt == "bbuttonpress2") { camElem.parentElement.classList.remove("llama-close-noAnim"); } if (camElem.classList.contains("llama-closedCam")) { camElem.parentElement.classList.remove("llama-close"); camClosedCurrent = null; } else { camElem.classList.add("llama-closedCam"); camElem.parentElement.classList.add("llama-close"); camClosedCurrent = camName; setTimeout(function() { camElem.parentElement.classList.add("llama-close-noAnim"); }, 500); } camCounter(camElem); } catch (e) { llamaConsole("error closeimizeCam: " + e.message); } } function closeimizeYoutube(camName, opt = null) { try { if (camName != camClosedCurrent && camClosedCurrent != null) { closeimizeCam(camClosedCurrent); closeimizeCam(camName); return; } var camElem = videolistElem.querySelector("#camUser-" + camName); if (camElem == null) { camClosedCurrent = null; return; } if (opt == "bbuttonpress2") { camElem.parentElement.classList.remove("llama-close-noAnim"); } if (camElem.classList.contains("llama-closedCam")) { camElem.classList.remove("llama-closedCam"); camElem.parentElement.classList.remove("llama-close"); camClosedCurrent = null; } else { camElem.classList.add("llama-closedCam"); camElem.parentElement.classList.add("llama-close"); camClosedCurrent = camName; setTimeout(function() { camElem.parentElement.classList.add("llama-close-noAnim"); }, 500); } camCounter(camElem); } catch (e) { llamaConsole("error closeimizeCam: " + e.message); } } function camCounter(camElem) { try { if (camsCount == 12) { camElem.parentElement.classList.remove("llama-camCount10-11"); camElem.parentElement.classList.remove("llama-camCount2"); camElem.parentElement.classList.add("llama-camCount12"); } else if (camsCount > 9 && camsCount < 12) { camElem.parentElement.classList.remove("llama-camCount12"); camElem.parentElement.classList.remove("llama-camCount2"); camElem.parentElement.classList.add("llama-camCount10-11"); } else if (camsCount == 2) { camElem.parentElement.classList.remove("llama-camCount12"); camElem.parentElement.classList.remove("llama-camCount10-11"); camElem.parentElement.classList.add("llama-camCount2"); } else { camElem.parentElement.classList.remove("llama-camCount12"); camElem.parentElement.classList.remove("llama-camCount10-11"); camElem.parentElement.classList.remove("llama-camCount2"); } } catch (e) { llamaConsole("error camCounter: " + e.message); } } } catch (e) { llamaConsole("error runLLAMA: " + e.message); } /* End main function */ return { newUserAdded: newUserAdded }; } function llamaConsole(m) { try { if (m.includes("error ")) { var m = m.split("error ")[1]; console.log("TINY-LLAMA " + "%cerror" + "%c" + ": " + m, "font-weight: bold; color: #53b6ef;", "color: red;", ""); } else { console.log("TINY-LLAMA: " + "%c" + m, "font-weight: bold; color: #53b6ef;", ""); } } catch (e) { console.log("------ LLAMA error llamaConsole: " + e.message); } } function play() { try { var audio = document.getElementById("audio"); audio.play(); } catch (e) { llamaConsole.log("error Audio Play" + e.message); } } function addtonewbox(m){ llamaConsole(m) //get message array # //delete message } function LLAMA_SocketWatcher() { try { wsdata = []; chatlogMain = ""; userlistLog = {}; usernamesLog = []; userlistLogQuits = {}; newline = ` `; WebSocket.prototype._send = WebSocket.prototype.send; // Parse Data Sent WebSocket.prototype.send = function(data) { try { this._send(data); this.addEventListener('message', function(msg) { var msg_parsed = JSON.parse(msg.data); try { if (msg.data.includes('"tc" : "joined"')) { myNick = msg_parsed["self"]["nick"]; myHandle = msg_parsed["self"]["handle"]; } if (msg.data.includes('"tc" : "msg"') && msg.data.includes('"handle"')) { var handle = msg_parsed["handle"]; var nick = userlistLog[handle]["nick"]; chatlogAdd(nick + ": " + msg_parsed["text"]); //addMessageToNewChatbox(handle, nick, msg_parsed["text"]); } if (msg.data.includes('"tc" : "pvtmsg"') && msg.data.includes('"handle"')) { var handle = msg_parsed["handle"]; var nick = userlistLog[handle]["nick"]; chatlogAdd('[' + nick + "]: " + msg_parsed["text"]); //addMessageToNewChatbox(handle, nick, msg_parsed["text"], true); } if (msg.data.match(/"tc" : "(?:un)?publish"/)) { var action = (msg_parsed["tc"] == "publish") ? "is" : "stopped"; var handle = msg_parsed["handle"]; if (userlistLog[handle]) var nick = userlistLog[handle]["nick"]; else var nick = userlistLogQuits[handle]["nick"]; chatlogAdd("- " + nick + " " + action + " broadcasting."); } if (msg.data.includes('"tc" : "sysmsg"')) { chatlogAdd("[SYSTEM] -> " + msg_parsed["text"]); addtonewbox("[SYSTEM] -> " + msg_parsed["text"]) } if (msg.data.includes('"tc" : "userlist"')) { userlistArr = msg_parsed["users"]; for (i = 0; i < userlistArr.length; i++) { var nick = userlistArr[i]["nick"]; var handle = userlistArr[i]["handle"]; var username = userlistArr[i]["username"]; var isMod = userlistArr[i]["mod"]; userlistLog[handle] = { "nick": nick, "username": username, "mod": isMod }; var isMod = isMod == true ? "[MOD]" : ""; var logtext = username == "" ? nick : nick + "(" + username + ")"; logtext += isMod; usernamesLog.push(logtext); } userlistInitial = usernamesLog.join(', '); usersCountInitial = usernamesLog.length; } if (msg.data.includes('"tc" : "join","username":"')) { var nick = msg_parsed["nick"]; var handle = msg_parsed["handle"]; var username = msg_parsed["username"]; var isMod = msg_parsed["mod"]; userlistLog[handle] = { "nick": nick, "username": username, "mod": isMod }; //TESapp.ignoreFromManualList(username, nick); } if (msg.data.includes('"tc" : "quit"')) { var handle = msg_parsed["handle"]; userlistLogQuits[handle] = userlistLog[handle]; delete userlistLog[handle]; } if (msg.data.includes('"tc" : "nick"')) { var handle = msg_parsed["handle"]; var nick = msg_parsed["nick"]; userlistLog[handle]["nick"] = nick; if (handle == myHandle) { myNick = nick; } //TESapp.newUserAdded("scanOnly"); } if (msg.data.includes('"item"')) { if (msg.data.includes('tc" : "yut_play"')) { var id = msg_parsed["item"]["id"]; chatlogAdd("- YouTube video started: " + "https://youtube.com/watch?v=" + id); } if (msg.data.includes('tc" : "yut_stop"')) chatlogAdd("- YouTube video stopped."); } } catch(e) { llamaConsole("error WebSocket.prototype.send function: " + e.message); } }, false); this.send = function(data) { this._send(data); }; } catch (e) { llamaConsole("error LLAMA_SocketWatcher -> WebSocket.prototype.send: " + e.message); } } function chatlogAdd(arg) { var timestamp = new Date().toLocaleTimeString('en-US', { hour12: false }); chatlogMain += "[" + timestamp + "] " + arg + newline; llamaConsole(arg + newline) } } catch (e) { llamaConsole("error LLAMA_SocketWatcher: " + e.message); } } } else {//homepage css (function() { var css = [ ".left-arrow.active:before, .right-arrow.active:before {", " border-color: #111111 !important;", "}", ".left-arrow:before, .right-arrow:before {", " border-color: #111111 !important;", "}", "body {", " background-color: #333333 !important;", "}", "", "#welcome-wrapper {", " width: 100% !important;", " max-width: none !important;", " padding: 0 !important;", " border-bottom: 1px solid #e5e5e5 !important;", " box-sizing: border-box !important;", " background-color: #666666 !important;", " height: 10px !important;", " display: none !important;", "}", "#navigation {", " position: relative !important;", " display: block !important;", " top: -25px !important;", " left: 0px !important;", " right: 30px !important;", " margin: 0 auto !important;", " font-size: 0 !important;", " text-align: center !important;", " z-index: 6 !important;", " width: 650px !important;", "}", "#promoted-wrapper > #promote-button {", " max-width: 200px !important;", " margin: 10px auto 0px !important;", "}", "#nav-static-wrapper {", " position: relative !important;", " height: 87px !important;", " width: 100% !important;", " background-color: #222222 !important;", " opacity: 0.95 !important;", " z-index: 2 !important;", " border:0px !important;", "}", "#nav-static {", " position: relative !important;", " height: 100% !important;", " max-width: 1300px !important;", " margin: 0 auto !important;", " padding: 0 30px !important;", " border-bottom: 2px solid #000 !important;", " box-sizing: border-box !important;", " line-height: 87px !important;", " vertical-align: middle !important;", " border-radius:10px !important;", "}", "#nav-fixed {", " position: relative !important;", " height: 60px !important;", " max-width: 1300px !important;", " margin: auto !important;", " padding: 0 30px !important;", " border-bottom: 1px solid #111111 !important;", " line-height: 60px !important;", "}", "#nav-fixed-wrapper {", " position: fixed !important;", " height: 60px !important;", " width: 100% !important;", " top: -400px !important;", " left: 0 !important;", " font-family: \"Open Sans\" !important;", " background-color: #111111 !important;", " opacity: 0.95 !important;", " z-index: 2 !important;", " transition: top .3s !important;", " border-bottom: 0px solid #e9e9e9 !important;", "}", ".tile-header {", " height: 195px !important;", " outline: 0px solid #111111 !important;", "", "}", ".tile-header > img {", " height: 195px !important;", " outline: 0px solid #111111 !important;", "", "}", ".tile {", " position: relative !important;", " border-radius: 15px !important;", " background-color: #222222 !important;", " border:0px solid #666666 !important;", " box-shadow: 0 2px 15px 0 #111111 !important;", " overflow: hidden !important;", "", "}", "#promoted-left-arrow, #promoted-right-arrow {", " display: none !important;", "}", "#promoted-tiles {", " position: relative !important;", " left: -100px !important;", " overflow: visible !important;", "}", ".trended-tiles {", " position: relative !important;", " border-radius: 4px !important;", " background-color: #222222 !important;", " border:2px solid #111111 !important;", " box-shadow: 0 1px 4px 0 rgba(0, 0, 0, .1) !important;", " overflow: hidden;", "", "}", ".tile-content {", " display: block !important;", " width: 100% !important;", " padding: 29px 23px 35px 17px !important;", " box-sizing: border-box !important;", " /* text-align: left !important; */", " overflow: hidden !important;", "}", ".tile-content-info{", " height: 40px !important;", "}", "", ".tile-content-info-text{", " color: #666666 !important;", " position: relative !important;", " bottom: 20px !important;", "}", "", ".tile-name {", " /* background-color:#111111 !important;*/ ", " padding-top: 0px !important;", " font-size: 20px !important;", " white-space: nowrap !important;", " position: relative;", " left: 80px;", " top: 160px;", " /* box-shadow: 0 2px 15px 0 #111111 !important;*/", " border-bottom: 0px solid #666666 !important;", "}", ".tile-content > img {", " position: relative !important;", " bottom: 20px !important;", " padding-top: 0px !important;", " border-radius: 10PX !important;", "/*DISPLAY: NONE !important;8", "VISIBILITY: HIDDEN !important;*/", "}", ".tile-info {", " position: absolute !important;", " display: block !important;", " height: 195px !important;", " width: 110% !important;", " bottom: 0 !important;", " left: -20px !important;", " font-weight: 600 !important;", " color: #ffffff !important;", " text-shadow: 0 1px 3px rgba(0, 0, 0, .4) !important;", " box-shadow: 0 2px 15px 0 #111111 !important;", "}", "#catalog-wrapper {", " position: relative;", " display: block;", " max-width: none;", " padding: 10px 160px 50px;", " margin-top: -145px;", "}", ".tile-statistic {", " border-radius: 10px !important;", " text-align: left !important;", " position: relative !important;", " top: 135px !important;", " left:0px !important;", " padding-top: 0px !important;", " width:100px !important;", " height: 25px !important;", " font-size: 0 !important;", " text-shadow: 0 1px 3px rgba(0, 0, 0, .4) !important;", " background-color:#111111 !important; ", " white-space: nowrap !important;", " border: 1px solid #232323 !important;", "}", "", "#promoted-wrapper, #trended-wrapper {", " ", " position: relative !important;", " display: none;", " width: 100% !important;", " max-width: 1360px !important;", " margin: 0 auto !important;", " padding-bottom:20px !important;", " border-bottom:3px solid #ffb000 !important;", " border-radius: 15px !important;", "", "}", "", "#promoted .tile-promoted, #trended .tile-promoted {", " position: absolute !important;", " bottom: 20px !important;", "/* display:none; */", "/* visibility: hidden !important;*/}", "", "#no-rooms-error {", " padding-top: 33px !important;", " font-family: Roboto !important;", " font-weight: 300 !important;", " font-size: 40px !important;", " color: #ffffff !important;", "}", "#footer-content {", " max-width: 1300px !important;", " margin: 0 auto !important;", " padding: 0px 0px 0px !important;", " font-size: 11px !important;", " color: #333333 !important;", "}", "#footer-content-wrapper {", " background-color: #333333 !important;", " display: none !important;", " visibility: hidden !important;", "}", "#footer {", " position: relative !important;", " height: 0px !important;", " width: 100% !important;", " padding: 0 !important;", " background-color: #333333 !important;", " border-top: 1px solid #111111 !important;", " display: none !important;", " visibility: hidden !important;", "}", "#footer-social {", " position: absolute !important;", " width: 650px !important;", " min-height: 54px !important;", " top: -30px !important;", " left: 30px !important;", " right: 30px !important;", " margin: 0 auto !important;", " text-align: center !important;", " border: 1px solid #e1e1e1 !important;", " background-color: #fff !important;", " color: transparent !important;", " display: none !important;", " visibility: hidden !important;", "}", ".nav-menu-links, .nav-menu-links {", " font-weight: bold !important;", " display: none !important;", "}", ".nav-menu-links > a {", " position: relative !important;", " height: 100% !important;", " padding: 0 1% !important;", " box-sizing: border-box !important;", " color: #FFFFFF !important;", " transition: color .2s !important;", " font-weight: bold !important;", "}", ".nav-menu-links > a:before {", " content: \"\" !important;", " position: absolute !important;", " display: block !important;", " height: 4px !important;", " width: 100% !important;", " bottom: -1px !important;", " left: 0 !important;", " color: #111111 !important;", " background-color: #111111 !important;", " cursor: default !important;", " opacity: 0 !important;", " transition: opacity .2s !important;", "}", ".nav-menu-links > a:hover, .nav-menu-links > a.active {", " color: #111111 !important;", "}", ".nav-btn-sign-on {", " position: absolute !important;", " right: -30px !important;", " top: 25px;", "}", ".nav-btn-instant-room {", " font-family: \"Open Sans\" !important;", " border: 1px solid #111111 !important;", " background-color: #111111 !important;", " color: #fff !important;", " margin-right: 20px !important;", " position: absolute !important;", " right: 50px !important;", " top: 25px;", "}", "#navigation > .not-selectable:hover {", " background-color: #111111 !important;", " border: 1px solid #FFFFFF !important;", " color: white !important;", "}", "#promoted-wrapper > h2, #trended-wrapper > h2, #header-for-all {", " padding: 0 0 11px 5px !important;", " font-size: 20px !important;", " line-height: 27px !important;", " color: #fff !important;", " text-transform: uppercase !important;", " text-align: left !important;", " font-weight: bold !important;", " text-shadow: 0 1px 3px rgba(0, 0, 0, .4) !important;", "}", "#input-catalog-menu-all:checked ~ #navigation > label[for=\"input-catalog-menu-all\"], #input-catalog-menu-near-you:checked ~ #navigation > label[for=\"input-catalog-menu-near-you\"], #input-catalog-menu-most-gifted:checked ~ #navigation > label[for=\"input-catalog-menu-most-gifted\"] {", " background-color: #111111 !important;", " border:1px solid #111111 !important;", " z-index: 1 !important;", " font-weight: bold !important;", " border-radius:25px;", " margin:5px;", "}", "#navigation > label[for=\"input-catalog-navigation\"] {", " display: none !important;", " border-radius:25px;", " margin:5px;", "}", "#navigation > label {", " position: relative !important;", " display: inline-block !important;", " height: 40px !important;", " width: 193px !important;", " background-color: #222222 !important;", " border: 1px solid #fff !important;", " font-size: 17px !important;", " color: #fff !important;", " cursor: pointer !important;", " z-index: 1 !important;", " transition: .2s !important;", " border-radius:25px;", " margin:5px;", "}", ".nav-sandwich-menu-button:before {", " height: 5px !important;", " width: 100% !important;", " top: 4px !important;", " left: 0 !important;", " background-color: #111111 !important;", "}", ".nav-sandwich-menu-button {", "", " background-color: #222222 !important;", "", "}", ".nav-sandwich-menu-button:after {", " height: 5px !important;", " width: 100% !important;", " top: 4px !important;", " left: 0 !important;", " background-color: #111111 !important;", " bottom: 4px !important;", "}", "#loadmore {", " height: 48px !important;", " font-size: 16px !important;", " color: #fff !important;", " background-color: #111111 !important;", " line-height: 48px !important;", " vertical-align: middle !important;", " transition: background-color .2s !important;", "}", "#content > h1 {", " text-transform: uppercase;", " font-weight: 600 !important;", " color: #fff !important;", "}", "#content > #wrapper-forms {", " background-color: #222222 !important;", "}", "#content {", " background-color: #333333 !important;", " padding-bottom: 0px !important;", "}", "#content-page-content {", " background-color: transparent !important;", "}", "#content {", " top:100px !important;", "}", "#content-page-menu {", " background-color: #666666 !important;", " box-shadow: 0 2px 15px 0 #111111 !important;", "}", "#content-page-menu > a:hover, #content-page-menu > a.active {", " background-color: #333333 !important;", " color: #fff !important;", "}", "#wrapper {", " background-color: #222222 !important;", "}", "#up-button-content:hover {", " background-color:#000 !important;", "}", "#content > * {", " background-color: #222222 !important;", " /*background-image: url(https://image.ibb.co/mCRLCT/Wallpaper_Here.jpg);*/", " background-attachment: fixed;", " background-position: center;", "}", "#live-broadcasts-wrapper > div {", " background-color: #222222 !important;", "}", ".tile-gold, .tile-extreme, .tile-pro {", " text-align: left; !important;", " top: 2px !important;", "}", "#live-broadcasts-wrapper {", " background-color: #222222 !important;", "}" ].join("\n"); if (typeof GM_addStyle != "undefined") { GM_addStyle(css); } else if (typeof PRO_addStyle != "undefined") { PRO_addStyle(css); } else if (typeof addStyle != "undefined") { addStyle(css); } else { var node = document.createElement("style"); node.type = "text/css"; node.appendChild(document.createTextNode(css)); var heads = document.getElementsByTagName("head"); if (heads.length > 0) { heads[0].appendChild(node); } else { document.documentElement.appendChild(node); } } })(); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址