diff --git a/BUILD_LINUX.md b/BUILD_LINUX.md index 41f4238f0e..5b1a49abeb 100644 --- a/BUILD_LINUX.md +++ b/BUILD_LINUX.md @@ -14,80 +14,77 @@ sudo add-apt-repository universe sudo apt-get update ``` #### Install build tools: -1. First update the repositiories: +- First update the repositiories: ```bash sudo apt-get update -y sudo apt-get upgrade -y ``` -1. git +- git ```bash sudo apt-get install git -y ``` Verify by git --version -1. g++ +- g++ ```bash sudo apt-get install g++ -y ``` Verify by g++ --version -1. *Ubuntu 18.04* cmake +- *Ubuntu 18.04* cmake ```bash sudo apt-get install cmake -y ``` Verify by cmake --version -1. *Ubuntu 16.04* cmake +- *Ubuntu 16.04* cmake ```bash wget https://cmake.org/files/v3.14/cmake-3.14.2-Linux-x86_64.sh sudo sh cmake-3.14.2-Linux-x86_64.sh --prefix=/usr/local --exclude-subdir ``` #### Install build dependencies: -1. OpenSSL +- OpenSSL: ```bash sudo apt-get install libssl-dev ``` Verify with `openssl version` -1. OpenGL -Verify (first install mesa-utils - `sudo apt install mesa-utils -y`) by `glxinfo | grep "OpenGL version"` +- OpenGL: ```bash sudo apt-get install libgl1-mesa-dev -y sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.346.35 /usr/lib/x86_64-linux-gnu/libGL.so.1.2.0 ``` +- Verify OpenGL: + - First install mesa-utils with the command `sudo apt install mesa-utils -y` + - Then run `glxinfo | grep "OpenGL version"` #### To compile interface in a server you must install: ```bash sudo apt-get -y install libpulse0 libnss3 libnspr4 libfontconfig1 libxcursor1 libxcomposite1 libxtst6 libxslt1.1 ``` -1. Misc dependencies +- Misc dependencies: ```bash sudo apt-get install libasound2 libxmu-dev libxi-dev freeglut3-dev libasound2-dev libjack0 libjack-dev libxrandr-dev libudev-dev libssl-dev zlib1g-dev ``` -1. To compile interface in a server you must install: +- Install Python 3 and required packages: ```bash -sudo apt-get -y install libpulse0 libnss3 libnspr4 libfontconfig1 libxcursor1 libxcomposite1 libxtst6 libxslt1.1 +sudo apt-get install python python3 python3-distro ``` -1. Install Python 3 and required packages -```bash -sudo apt-get install python3 python3-distro -``` -1. Install node, required to build the jsdoc documentation +- Install node, required to build the jsdoc documentation: ```bash sudo apt-get install nodejs ``` -### Get code and checkout the tag you need +### Get code and checkout the branch you need Clone this repository: ```bash git clone https://github.com/kasenvr/project-athena.git ``` -To compile a RELEASE version checkout the tag you need getting a list of all tags: +To compile a DEV version checkout the branch you need. To get a list of all tags: ```bash git fetch -a -git tag ``` -Then checkout last tag with: +Then checkout the main branch with: ```bash -git checkout tag/1.0 +git checkout kasen/core ``` ### Compiling @@ -104,7 +101,7 @@ Prepare makefiles: cmake .. ``` -* If cmake fails with a vcpkg error - delete /tmp/hifi/vcpkg. +- If cmake fails with a vcpkg error - delete /tmp/hifi/vcpkg. Start compilation of the server and get a cup of coffee: ```bash @@ -116,7 +113,15 @@ To compile interface: make interface ``` -In a server, it does not make sense to compile interface +The commands above will compile with a single thread. If you have enough memory, +you can decrease your build time using the `-j` flag. Since most x64 CPUs +support two threads per core, this works out to CPU_COUNT*2. As an example, if +you have a 2 core machine, you could use: +``` +make -j4 interface +``` + +In a server, it does not make sense to compile interface. ### Running the software @@ -143,6 +148,13 @@ Running interface: Go to localhost in the running interface. +#### Notes + +If your goal is to set up a development environment, it is desirable to set the +directory that vcpkg builds into with the `HIFI_VCPKG_BASE` environment variable. +For example, you might set `HIFI_VCPKG_BASE` to `/home/$USER/vcpkg`. +By default, vcpkg will build in the system `/tmp` directory. + ##### Ubuntu 18.04 only In Ubuntu 18.04 there is a problem related with NVidia driver library version. diff --git a/README.md b/README.md index be317e4371..4f5b3de159 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,5 @@ # Project Athena -### [Download ALPHA-DEV v0.86.0 K1 (Windows 64-bit, .zip)](https://realities.dev/cdn/hifi-community/v0860-kasen-VS-release+freshstart/Packaged_Release.zip) - -This build has been tested on Windows 10 Pro 64-bit w/ Nvidia graphics drivers. - #### v0.86.0 K1 (12/3/19) * Audio Buffer choppy audio bugfix by increasing the buffer size. diff --git a/cmake/installer/installer-header.bmp b/cmake/installer/installer-header.bmp index 7588a338b1..2d262d3ef9 100644 Binary files a/cmake/installer/installer-header.bmp and b/cmake/installer/installer-header.bmp differ diff --git a/cmake/installer/installer.ico b/cmake/installer/installer.ico index d42eae96ad..63a3eff482 100644 Binary files a/cmake/installer/installer.ico and b/cmake/installer/installer.ico differ diff --git a/cmake/installer/uninstaller-header.bmp b/cmake/installer/uninstaller-header.bmp index d43166ded3..2d262d3ef9 100644 Binary files a/cmake/installer/uninstaller-header.bmp and b/cmake/installer/uninstaller-header.bmp differ diff --git a/cmake/macros/GenerateInstallers.cmake b/cmake/macros/GenerateInstallers.cmake index acafd9b6c7..83bdefeada 100644 --- a/cmake/macros/GenerateInstallers.cmake +++ b/cmake/macros/GenerateInstallers.cmake @@ -18,20 +18,20 @@ macro(GENERATE_INSTALLERS) if (CLIENT_ONLY) set(_PACKAGE_NAME_EXTRA "-Interface") set(INSTALLER_TYPE "client_only") - string(REGEX REPLACE "High Fidelity" "High Fidelity Interface" _DISPLAY_NAME ${BUILD_ORGANIZATION}) + string(REGEX REPLACE "Project Athena" "Project Athena Interface" _DISPLAY_NAME ${BUILD_ORGANIZATION}) elseif (SERVER_ONLY) set(_PACKAGE_NAME_EXTRA "-Sandbox") set(INSTALLER_TYPE "server_only") - string(REGEX REPLACE "High Fidelity" "High Fidelity Sandbox" _DISPLAY_NAME ${BUILD_ORGANIZATION}) + string(REGEX REPLACE "Project Athena" "Project Athena Sandbox" _DISPLAY_NAME ${BUILD_ORGANIZATION}) else () set(_DISPLAY_NAME ${BUILD_ORGANIZATION}) set(INSTALLER_TYPE "full") endif () set(CPACK_PACKAGE_NAME ${_DISPLAY_NAME}) - set(CPACK_PACKAGE_VENDOR "High Fidelity") + set(CPACK_PACKAGE_VENDOR "Project Athena") set(CPACK_PACKAGE_VERSION ${BUILD_VERSION}) - set(CPACK_PACKAGE_FILE_NAME "HighFidelity-Beta${_PACKAGE_NAME_EXTRA}-${BUILD_VERSION}") + set(CPACK_PACKAGE_FILE_NAME "ProjectAthena-Alpha${_PACKAGE_NAME_EXTRA}-${BUILD_VERSION}") set(CPACK_NSIS_DISPLAY_NAME ${_DISPLAY_NAME}) set(CPACK_NSIS_PACKAGE_NAME ${_DISPLAY_NAME}) if (PR_BUILD) @@ -118,11 +118,11 @@ macro(GENERATE_INSTALLERS) set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_SOURCE_DIR}/LICENSE") if (BUILD_CLIENT) - cpack_add_component(${CLIENT_COMPONENT} DISPLAY_NAME "High Fidelity Interface") + cpack_add_component(${CLIENT_COMPONENT} DISPLAY_NAME "Project Athena Interface") endif () if (BUILD_SERVER) - cpack_add_component(${SERVER_COMPONENT} DISPLAY_NAME "High Fidelity Sandbox") + cpack_add_component(${SERVER_COMPONENT} DISPLAY_NAME "Project Athena Sandbox") endif () include(CPack) diff --git a/cmake/macros/SetPackagingParameters.cmake b/cmake/macros/SetPackagingParameters.cmake index bf98dba29d..d279ae8db9 100644 --- a/cmake/macros/SetPackagingParameters.cmake +++ b/cmake/macros/SetPackagingParameters.cmake @@ -35,7 +35,7 @@ macro(SET_PACKAGING_PARAMETERS) set(DEPLOY_PACKAGE TRUE) set(PRODUCTION_BUILD 1) set(BUILD_VERSION ${RELEASE_NUMBER}) - set(BUILD_ORGANIZATION "High Fidelity") + set(BUILD_ORGANIZATION "Project Athena") set(HIGH_FIDELITY_PROTOCOL "hifi") set(HIGH_FIDELITY_APP_PROTOCOL "hifiapp") set(INTERFACE_BUNDLE_NAME "interface") @@ -60,7 +60,7 @@ macro(SET_PACKAGING_PARAMETERS) set(DEPLOY_PACKAGE TRUE) set(PR_BUILD 1) set(BUILD_VERSION "PR${RELEASE_NUMBER}") - set(BUILD_ORGANIZATION "High Fidelity - PR${RELEASE_NUMBER}") + set(BUILD_ORGANIZATION "Project Athena - PR${RELEASE_NUMBER}") set(INTERFACE_BUNDLE_NAME "interface") set(INTERFACE_ICON_PREFIX "interface-beta") @@ -69,7 +69,7 @@ macro(SET_PACKAGING_PARAMETERS) else () set(DEV_BUILD 1) set(BUILD_VERSION "dev") - set(BUILD_ORGANIZATION "High Fidelity - ${BUILD_VERSION}") + set(BUILD_ORGANIZATION "Project Athena - ${BUILD_VERSION}") set(INTERFACE_BUNDLE_NAME "interface") set(INTERFACE_ICON_PREFIX "interface-beta") @@ -192,21 +192,21 @@ macro(SET_PACKAGING_PARAMETERS) # shortcut names if (PRODUCTION_BUILD) - set(INTERFACE_SHORTCUT_NAME "High Fidelity") + set(INTERFACE_SHORTCUT_NAME "Project Athena") set(CONSOLE_SHORTCUT_NAME "Console") set(SANDBOX_SHORTCUT_NAME "Sandbox") set(APP_USER_MODEL_ID "com.highfidelity.console") else () - set(INTERFACE_SHORTCUT_NAME "High Fidelity - ${BUILD_VERSION_NO_SHA}") + set(INTERFACE_SHORTCUT_NAME "Project Athena - ${BUILD_VERSION_NO_SHA}") set(CONSOLE_SHORTCUT_NAME "Console - ${BUILD_VERSION_NO_SHA}") set(SANDBOX_SHORTCUT_NAME "Sandbox - ${BUILD_VERSION_NO_SHA}") endif () set(INTERFACE_HF_SHORTCUT_NAME "${INTERFACE_SHORTCUT_NAME}") - set(CONSOLE_HF_SHORTCUT_NAME "High Fidelity ${CONSOLE_SHORTCUT_NAME}") - set(SANDBOX_HF_SHORTCUT_NAME "High Fidelity ${SANDBOX_SHORTCUT_NAME}") + set(CONSOLE_HF_SHORTCUT_NAME "Project Athena ${CONSOLE_SHORTCUT_NAME}") + set(SANDBOX_HF_SHORTCUT_NAME "Project Athena ${SANDBOX_SHORTCUT_NAME}") - set(PRE_SANDBOX_INTERFACE_SHORTCUT_NAME "High Fidelity") + set(PRE_SANDBOX_INTERFACE_SHORTCUT_NAME "Project Athena") set(PRE_SANDBOX_CONSOLE_SHORTCUT_NAME "Server Console") # check if we need to find signtool diff --git a/cmake/templates/NSIS.template.in b/cmake/templates/NSIS.template.in index 9af99f927d..0e4c2f3579 100644 --- a/cmake/templates/NSIS.template.in +++ b/cmake/templates/NSIS.template.in @@ -161,7 +161,7 @@ ;General ; hide install details since we show an image slideshow in their place - ShowInstDetails nevershow + ShowInstDetails hide ; leverage the UAC NSIS plugin to promote uninstaller to elevated privileges !include UAC.nsh @@ -199,15 +199,18 @@ !system "$%TEMP%\tempinstaller.exe" = 2 + ; NOTE: We're not code signing right now, so we're going to disable that. + ; TODO: Get a code signing certificate so we can re-enable code signing. + ; The Inner invocation has written an uninstaller binary for us. ; We need to sign it if it's a production or PR build. - !if @PRODUCTION_BUILD@ == 1 - !if @BYPASS_SIGNING@ == 1 - !warning "BYPASS_SIGNING set - installer will not be signed" - !else - !system '"@SIGNTOOL_EXECUTABLE@" sign /fd sha256 /f %HF_PFX_FILE% /p %HF_PFX_PASSPHRASE% /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td SHA256 $%TEMP%\@UNINSTALLER_NAME@' = 0 - !endif - !endif + ; !if @PRODUCTION_BUILD@ == 1 + ; !if @BYPASS_SIGNING@ == 1 + ; !warning "BYPASS_SIGNING set - installer will not be signed" + ; !else + ; !system '"@SIGNTOOL_EXECUTABLE@" sign /fd sha256 /f %HF_PFX_FILE% /p %HF_PFX_PASSPHRASE% /tr http://sha256timestamp.ws.symantec.com/sha256/timestamp /td SHA256 $%TEMP%\@UNINSTALLER_NAME@' = 0 + ; !endif + ; !endif ; Good. Now we can carry on writing the real installer. @@ -421,7 +424,7 @@ Function GetCampaignName Pop $0 ; Discard Path Pop $0 ; Recover filename ; Parse campaign out of the filename - ${RECaptureMatches} $0 "HighFidelity-([^-]*-)Beta-.*" $0 0 + ${RECaptureMatches} $0 "ProjectAthena-([^-]*-)Alpha-.*" $0 0 ${If} $0 == 1 Pop $0 ; Recover campaign name StrCpy $0 $0 -1 0 ; Remove trailing - and copy to _RetVar @@ -528,7 +531,7 @@ Var GAClientID Page custom PostInstallOptionsPage ReadPostInstallOptions !define MUI_PAGE_CUSTOMFUNCTION_PRE PageInstallFilesPre - !define MUI_PAGE_CUSTOMFUNCTION_SHOW StartInstallSlideshow + ; !define MUI_PAGE_CUSTOMFUNCTION_SHOW StartInstallSlideshow !insertmacro MUI_PAGE_INSTFILES !insertmacro MUI_UNPAGE_CONFIRM @@ -652,35 +655,35 @@ Var Express Function OnUserAbort !insertmacro LogStep "Installer" "Abort" "User Abort" "" - !insertmacro GoogleAnalytics "Installer" "Abort" "User Abort" "" + ; !insertmacro GoogleAnalytics "Installer" "Abort" "User Abort" "" FunctionEnd Function PageWelcomePre !insertmacro LogStep "Installer" "Welcome" "" "" - !insertmacro GoogleAnalytics "Installer" "Welcome" "" "" - !insertmacro DownloadSlideshowImages + ; !insertmacro GoogleAnalytics "Installer" "Welcome" "" "" + ; !insertmacro DownloadSlideshowImages FunctionEnd Function PageLicensePre !insertmacro LogStep "Installer" "License" "" "" - !insertmacro GoogleAnalytics "Installer" "License" "" "" + ; !insertmacro GoogleAnalytics "Installer" "License" "" "" FunctionEnd Function PageDirectoryPre !insertmacro MaybeSkipPage !insertmacro LogStep "Installer" "Directory" "" "" - !insertmacro GoogleAnalytics "Installer" "Directory" "" "" + ; !insertmacro GoogleAnalytics "Installer" "Directory" "" "" FunctionEnd Function PageStartMenuPre !insertmacro MaybeSkipPage !insertmacro LogStep "Installer" "StartMenu" "" "" - !insertmacro GoogleAnalytics "Installer" "StartMenu" "" "" + ; !insertmacro GoogleAnalytics "Installer" "StartMenu" "" "" FunctionEnd Function PageComponentsPre !insertmacro MaybeSkipPage !insertmacro LogStep "Installer" "Components" "" "" - !insertmacro GoogleAnalytics "Installer" "Components" "" "" + ; !insertmacro GoogleAnalytics "Installer" "Components" "" "" FunctionEnd Function PageInstallFilesPre !insertmacro LogStep "Installer" "Install" "" "" - !insertmacro GoogleAnalytics "Installer" "Install" "" "" + ; !insertmacro GoogleAnalytics "Installer" "Install" "" "" FunctionEnd !macro SetInstallOption Checkbox OptionName Default @@ -702,7 +705,7 @@ FunctionEnd Function InstallTypesPage !insertmacro LogStep "Installer" "Install Types" "" "" - !insertmacro GoogleAnalytics "Installer" "Install Types" "" "" + ; !insertmacro GoogleAnalytics "Installer" "Install Types" "" "" !insertmacro MUI_HEADER_TEXT "Choose Installation Type" "Express or Custom Install" @@ -717,7 +720,7 @@ Function InstallTypesPage StrCpy $OffsetUnits u StrCpy $Express "0" - ${NSD_CreateRadioButton} 30% $CurrentOffset$OffsetUnits 100% 10u "Express Install (Recommended)"; $\nInstalls High Fidelity Interface and High Fidelity Sandbox" + ${NSD_CreateRadioButton} 30% $CurrentOffset$OffsetUnits 100% 10u "Express Install (Recommended)"; $\nInstalls Project Athena Interface and Project Athena Sandbox" pop $ExpressInstallRadioButton ${NSD_OnClick} $ExpressInstallRadioButton ChangeExpressLabel IntOp $CurrentOffset $CurrentOffset + 15 @@ -813,7 +816,7 @@ Function PostInstallOptionsPage !insertmacro MaybeSkipPage !insertmacro LogStep "Installer" "Post Install Options" "" "" - !insertmacro GoogleAnalytics "Installer" "Post Install Options" "" "" + ; !insertmacro GoogleAnalytics "Installer" "Post Install Options" "" "" !insertmacro MUI_HEADER_TEXT "Setup Options" "" @@ -970,7 +973,7 @@ Function ReadPostInstallOptions ${If} @CLIENT_COMPONENT_CONDITIONAL@ ${LogText} "Option: Install Client" - ; check if the user asked for a desktop shortcut to High Fidelity + ; check if the user asked for a desktop shortcut to Project Athena ${NSD_GetState} $DesktopClientCheckbox $DesktopClientState ${LogText} "Option: Create Client Desktop Shortcut: $DesktopClientState" ${EndIf} @@ -1024,7 +1027,7 @@ Function HandlePostInstallOptions ${EndIf} ${If} @CLIENT_COMPONENT_CONDITIONAL@ - ; check if the user asked for a desktop shortcut to High Fidelity + ; check if the user asked for a desktop shortcut to Project Athena ${If} $DesktopClientState == ${BST_CHECKED} CreateShortCut "$DESKTOP\@INTERFACE_HF_SHORTCUT_NAME@.lnk" "$INSTDIR\@INTERFACE_WIN_EXEC_NAME@" !insertmacro WriteInstallOption "@CLIENT_DESKTOP_SHORTCUT_REG_KEY@" YES @@ -1085,7 +1088,7 @@ Function HandlePostInstallOptions ClearErrors ; copy the data from production build to this PR build - CopyFiles "$APPDATA\High Fidelity\*" $0 + CopyFiles "$APPDATA\Project Athena\*" $0 ; handle an error in copying files IfErrors 0 NoError @@ -1325,13 +1328,13 @@ Section "-Core installation" @CPACK_NSIS_EXTRA_INSTALL_COMMANDS@ ; see if we have a campaign that we might need to grab special content for - Call OptionallyDownloadCampaignServerless + ; Call OptionallyDownloadCampaignServerless ; Handle whichever post install options were set Call HandlePostInstallOptions !insertmacro LogStep "Installer" "Done" "" "" - !insertmacro GoogleAnalytics "Installer" "Done" "" "" + ; !insertmacro GoogleAnalytics "Installer" "Done" "" "" SectionEnd !include nsProcess.nsh @@ -1358,7 +1361,7 @@ SectionEnd /SD IDCANCEL IDRETRY Prompt_${UniqueID} IDCANCEL 0 ${EndIf} - !insertmacro GoogleAnalytics "Installer" "Abort" "${displayName} Running" "" + ; !insertmacro GoogleAnalytics "Installer" "Abort" "${displayName} Running" "" ; If the user decided to cancel, stop the current installer/uninstaller Abort @@ -1602,7 +1605,7 @@ Function .onInit !insertmacro InitGAClientID !insertmacro GetCampaignName $CampaignName - !insertmacro GoogleAnalytics "Installer" "Start" "$CampaignName" "" + ; !insertmacro GoogleAnalytics "Installer" "Start" "$CampaignName" "" ; make sure none of the installed applications are still running ${LogText} "Checking For Running Applications" diff --git a/scripts/communityModules/chat/FloofChat.html b/scripts/communityModules/chat/FloofChat.html index ccfc547b2e..04410ff44b 100644 --- a/scripts/communityModules/chat/FloofChat.html +++ b/scripts/communityModules/chat/FloofChat.html @@ -52,6 +52,21 @@ var $ChatLog; // The scrolling chat log. var $ChatInputText; // The text field for entering text. var userName; + var urlRegEx = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;,:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+,~%\/\.\w\-]*)?\??(?:[\-\+=&;,:%@\.\w]*)#?(?:[\.\!\/\\\w]*))?)/g; + + function reverseMatches(msg) { + var result = []; + var matches = msg.match(urlRegEx); + if (matches === null) { + matches = []; + } + for (var i = 0; i <= matches.length; i++) { + var split = msg.split(matches[i], 2); + result.push(split[0]); + msg = split[1]; + } + return result; + } //Start George Function //Function provided by George Deac @@ -62,11 +77,30 @@ $.fn.linky = function (options) { return this.each(function () { - var $el = $(this), - linkifiedContent = _linkify($el, options); - var formattedContent = replaceFormatting(linkifiedContent); + var $el = $(this); + var content = $el.html(); - $el.html(formattedContent); + var match = content.match(urlRegEx); + var matchLength = match === null ? 0 : match.length; + var messageParts = reverseMatches(content); + + var messageFormatted = []; + var urlLinkified = []; + var completeMessage = []; + + for (var i = 0; i < matchLength; i++) { + urlLinkified.push(_linkify(match[i], options)); + } + + for (var i = 0; i < messageParts.length; i++) { + messageFormatted.push(replaceFormatting(messageParts[i])); + } + + for (var i = 0; i < messageFormatted.length; i++) { + completeMessage.push(messageFormatted[i], urlLinkified[i]); + } + + $el.html(completeMessage.join("")); }); }; @@ -92,9 +126,8 @@ linkTo: "twitter" // Let's default to Twitter }, extendedOptions = $.extend(defaultOptions, options), - elContent = $el.html(), + elContent = $el, // Regular expression courtesy of Matthew O'Riordan, see: http://goo.gl/3syEKK - urlRegEx = /((([A-Za-z]{3,9}:(?:\/\/)?)(?:[\-;:&=\+\$,\w]+@)?[A-Za-z0-9\.\-]+|(?:www\.|[\-;,:&=\+\$,\w]+@)[A-Za-z0-9\.\-]+)((?:\/[\+,~%\/\.\w\-]*)?\??(?:[\-\+=&;,:%@\.\w]*)#?(?:[\.\!\/\\\w]*))?)/g, matches; // Linkifying URLs @@ -121,7 +154,7 @@ // For any URLs present, unless they are already identified within // an `a` element, linkify them. function _linkifyUrls(matches, $el) { - var elContent = $el.html(); + var elContent = $el; $.each(matches, function () { diff --git a/scripts/communityModules/chat/FloofChat.js b/scripts/communityModules/chat/FloofChat.js index 2e9a08f241..8028fd95d9 100644 --- a/scripts/communityModules/chat/FloofChat.js +++ b/scripts/communityModules/chat/FloofChat.js @@ -112,10 +112,15 @@ function connectWebSocket(timeout) { console.log('disconnected'); timeout = timeout | 0; - if (!shutdownBool && timeout < (30 * 1000)) { + if (!shutdownBool) { + if (timeout > (30 * 1000)) { + timeout = 30 * 1000; + } else if (timeout < (30 * 1000)) { + timeout += 1000; + } Script.setTimeout(function () { connectWebSocket(timeout); - }, timeout + 1000); + }, timeout); } else { wsReady = -1; } @@ -128,13 +133,18 @@ function sendWS(msg, timeout) { ws.send(JSON.stringify(msg)); } else { timeout = timeout | 0; - if (!shutdownBool && timeout < (30 * 1000)) { + if (!shutdownBool) { + if (timeout > (30 * 1000)) { + timeout = 30 * 1000; + } else if (timeout < (30 * 1000)) { + timeout += 1000; + } Script.setTimeout(function () { if (wsReady === -1) { connectWebSocket(); } sendWS(msg, timeout); - }, timeout + 1000); + }, timeout); } } } @@ -181,7 +191,7 @@ function go2(msg) { var dest = false; var domainsList = []; try { - domainsList = Script.require("http://metaverse.darlingvr.club:8081/goto.json"); + domainsList = Script.require(gotoJSONUrl + "?" + Date.now()); } catch (e) { // }