diff --git a/html/src/app.js b/html/src/app.js index d32bb6d4..08ca7e54 100644 --- a/html/src/app.js +++ b/html/src/app.js @@ -8084,6 +8084,66 @@ speechSynthesis.getVoices(); 'CallUdonMethod' ]; + $app.data.photonEmojis = [ + 'Angry', + 'Blushing', + 'Crying', + 'Frown', + 'Hand Wave', + 'Hang Ten', + 'In Love', + 'Jack O Lantern', + 'Kiss', + 'Laugh', + 'Skull', + 'Smile', + 'Spooky Ghost', + 'Stoic', + 'Sunglasses', + 'Thinking', + 'Thumbs Down', + 'Thumbs Up', + 'Tongue Out', + 'Wow', + 'Bats', + 'Cloud', + 'Fire', + 'Snow Fall', + 'Snowball', + 'Splash', + 'Web', + 'Beer', + 'Candy', + 'Candy Cane', + 'Candy Corn', + 'Champagne', + 'Drink', + 'Gingerbread', + 'Ice Cream', + 'Pineapple', + 'Pizza', + 'Tomato', + 'Beachball', + 'Coal', + 'Confetti', + 'Gift', + 'Gifts', + 'Life Ring', + 'Mistletoe', + 'Money', + 'Neon Shades', + 'Sun Lotion', + 'Boo', + 'Broken Heart', + 'Exclamation', + 'Go', + 'Heart', + 'Music Note', + 'Question', + 'Stop', + 'Zzz' + ]; + $app.methods.startLobbyWatcherLoop = function () { if (!this.photonLobbyWatcherLoop) { this.photonLobbyWatcherLoop = true; @@ -8126,7 +8186,7 @@ speechSynthesis.getVoices(); var timeSinceLastEvent = dtNow - Date.parse(dt); if (timeSinceLastEvent > this.photonLobbyTimeoutThreshold) { var joinTime = this.photonLobbyJointime.get(id); - if (!joinTime || joinTime + 60000 < dtNow) { + if (!joinTime || joinTime + 120000 < dtNow) { // wait 1min for user to load in var displayName = ''; var userId = ''; @@ -8179,18 +8239,17 @@ speechSynthesis.getVoices(); filteredHudTimeout.push(item); } }); - AppApi.ExecuteVrOverlayFunction( - 'updateHudTimeout', - JSON.stringify(filteredHudTimeout) - ); } else { - AppApi.ExecuteVrOverlayFunction( - 'updateHudTimeout', - JSON.stringify(hudTimeout) - ); + var filteredHudTimeout = hudTimeout; } + AppApi.ExecuteVrOverlayFunction( + 'updateHudTimeout', + JSON.stringify(filteredHudTimeout) + ); } this.photonLobbyTimeout = hudTimeout; + + this.getCurrentInstanceUserList(); } this.photonBotCheck(event7List); }); @@ -8600,6 +8659,8 @@ speechSynthesis.getVoices(); var text = 'Beep'; } else if (data.EventType === 'ReloadAvatarNetworkedRPC') { var text = 'AvatarReset'; + } else if (data.EventType === 'SpawnEmojiRPC') { + var text = `SpawnEmoji ${this.photonEmojis[data.Data]}`; } else { var eventData = ''; if (data.Data) { @@ -10648,7 +10709,7 @@ speechSynthesis.getVoices(); 'VRCX_legendColorOverride', this.legendColorOverride ); - API.cachedUsers.forEach((ref, id) => { + API.cachedUsers.forEach((ref) => { API.applyUserTrustLevel(ref); }); }; @@ -12222,6 +12283,7 @@ speechSynthesis.getVoices(); var pushUser = function (ref) { var photonId = ''; var masterId = 0; + var isFriend = false; $app.photonLobbyCurrent.forEach((ref1, id) => { if (masterId === 0 || masterId > id) { masterId = id; @@ -12243,11 +12305,22 @@ speechSynthesis.getVoices(); if (photonId === masterId) { isMaster = true; } + var timeoutTime = 0; + if (typeof ref.id !== 'undefined') { + isFriend = $app.friends.has(ref.id); + $app.photonLobbyTimeout.forEach((ref1) => { + if (ref1.userId === ref.id) { + timeoutTime = ref1.time; + } + }); + } users.push({ ref, timer: ref.$location_at, photonId, - isMaster + isMaster, + isFriend, + timeoutTime }); // get block, mute }; diff --git a/html/src/index.pug b/html/src/index.pug index 6937e123..de184ac6 100644 --- a/html/src/index.pug +++ b/html/src/index.pug @@ -104,19 +104,27 @@ html div(style="margin-top:5px") span(v-show="currentInstanceWorld.name !== currentInstanceWorld.description" v-text="currentInstanceWorld.description" style="font-size:12px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2") div.current-instance-table - data-tables(v-bind="currentInstanceUserList" @sort-change="updateTimers" @row-click="selectCurrentInstanceRow" style="margin-top:10px;cursor:pointer") + data-tables(v-bind="currentInstanceUserList" @row-click="selectCurrentInstanceRow" style="margin-top:10px;cursor:pointer") el-table-column(label="Avatar" width="60" prop="photo") template(v-once #default="scope") template(v-if="userImage(scope.row.ref)") el-popover(placement="right" height="500px" trigger="hover") img.friends-list-avatar(slot="reference" v-lazy="userImage(scope.row.ref)") img.friends-list-avatar(v-lazy="userImageFull(scope.row.ref)" style="height:500px;cursor:pointer" @click="openExternalLink(userImageFull(scope.row.ref))") - el-table-column(label="Timer" width="90" prop="timer" sortable) + el-table-column(label="Timer" width="80" prop="timer" sortable) template(v-once #default="scope") timer(:epoch="scope.row.timer") el-table-column(label="Photon Id" width="100" prop="photonId" sortable) template(v-once #default="scope") span(v-text="scope.row.photonId") + el-table-column(label="Icons" prop="isMaster" width="100") + template(v-once #default="scope") + el-tooltip(v-if="scope.row.isMaster" placement="left" content="Instance Master") + span 👑 + el-tooltip(v-if="scope.row.isFriend" placement="left" content="Friend") + span 💚 + el-tooltip(v-if="scope.row.timeoutTime" placement="left" content="Timeout") + span(style="color:red") 🔴{{ scope.row.timeoutTime }}s el-table-column(label="Display Name" min-width="140" prop="ref.displayName") template(v-once #default="scope") span(v-text="scope.row.ref.displayName" :class="scope.row.ref.$trustColor")