isGameNoVR, remove steam login, remove copy instance, Fix PortalSpawn

This commit is contained in:
Natsumi
2022-07-29 20:48:22 +12:00
parent b0109e60d3
commit 2128a6adfa
8 changed files with 69 additions and 123 deletions

View File

@@ -89,34 +89,12 @@ namespace VRCX
public bool[] CheckGameRunning() public bool[] CheckGameRunning()
{ {
var isGameRunning = false; var isGameRunning = false;
var isGameNoVR = false;
var isSteamVRRunning = false; var isSteamVRRunning = false;
var hwnd = WinApi.FindWindow("UnityWndClass", "VRChat");
if (hwnd != IntPtr.Zero)
{
var cmdline = string.Empty;
try
{
WinApi.GetWindowThreadProcessId(hwnd, out uint pid);
using (var searcher = new ManagementObjectSearcher($"SELECT CommandLine FROM Win32_Process WHERE ProcessId = {pid}"))
using (var objects = searcher.Get())
{
cmdline = objects.Cast<ManagementBaseObject>().SingleOrDefault()?["CommandLine"]?.ToString();
}
isGameNoVR = cmdline.Contains("--no-vr");
}
catch
{
}
}
if (Process.GetProcessesByName("vrchat").Length > 0) if (Process.GetProcessesByName("vrchat").Length > 0)
{ {
isGameRunning = true; isGameRunning = true;
} }
if (Process.GetProcessesByName("vrserver").Length > 0) if (Process.GetProcessesByName("vrserver").Length > 0)
{ {
isSteamVRRunning = true; isSteamVRRunning = true;
@@ -125,7 +103,6 @@ namespace VRCX
return new bool[] return new bool[]
{ {
isGameRunning, isGameRunning,
isGameNoVR,
isSteamVRRunning isSteamVRRunning
}; };
} }

View File

@@ -236,7 +236,8 @@ namespace VRCX
{ {
if (ParseLogShaderKeywordsLimit(fileInfo, logContext, line, offset) == true || if (ParseLogShaderKeywordsLimit(fileInfo, logContext, line, offset) == true ||
ParseLogSDK2VideoPlay(fileInfo, logContext, line, offset) == true || ParseLogSDK2VideoPlay(fileInfo, logContext, line, offset) == true ||
ParseApplicationQuit(fileInfo, logContext, line, offset) == true) ParseApplicationQuit(fileInfo, logContext, line, offset) == true ||
ParseOpenVRInit(fileInfo, logContext, line, offset) == true)
{ {
continue; continue;
} }
@@ -442,26 +443,16 @@ namespace VRCX
{ {
// 2021.04.06 11:25:45 Log - [Network Processing] RPC invoked ConfigurePortal on (Clone [1600004] Portals/PortalInternalDynamic) for Natsumi-sama // 2021.04.06 11:25:45 Log - [Network Processing] RPC invoked ConfigurePortal on (Clone [1600004] Portals/PortalInternalDynamic) for Natsumi-sama
// 2021.07.19 04:24:28 Log - [Behaviour] Will execute SendRPC/AlwaysBufferOne on (Clone [100004] Portals/PortalInternalDynamic) (UnityEngine.GameObject) for Natsumi-sama: S: "ConfigurePortal" I: 7 F: 0 B: 255 (local master owner) // 2021.07.19 04:24:28 Log - [Behaviour] Will execute SendRPC/AlwaysBufferOne on (Clone [100004] Portals/PortalInternalDynamic) (UnityEngine.GameObject) for Natsumi-sama: S: "ConfigurePortal" I: 7 F: 0 B: 255 (local master owner)
// 2022.07.29 18:40:37 Log - [Behaviour] Instantiated a (Clone [800004] Portals/PortalInternalDynamic)
if (!line.Contains("] Will execute SendRPC/AlwaysBufferOne on (Clone [")) if (!line.Contains("] Portals/PortalInternalDynamic)"))
return false; return false;
var pos = line.LastIndexOf("] Portals/PortalInternalDynamic) (UnityEngine.GameObject) for ");
if (pos < 0)
return false;
var endPos = line.LastIndexOf(": S: \"ConfigurePortal\"");
if (endPos < 0)
return false;
var data = line.Substring(pos + 62, endPos - (pos + 62));
AppendLog(new[] AppendLog(new[]
{ {
fileInfo.Name, fileInfo.Name,
ConvertLogTimeToISO8601(line), ConvertLogTimeToISO8601(line),
"portal-spawn", "portal-spawn"
data
}); });
return true; return true;
@@ -856,6 +847,23 @@ namespace VRCX
return true; return true;
} }
private bool ParseOpenVRInit(FileInfo fileInfo, LogContext logContext, string line, int offset)
{
// 2022.07.29 02:52:14 Log - OpenVR initialized!
if (string.Compare(line, offset, "OpenVR initialized!", 0, 19, StringComparison.Ordinal) != 0)
return false;
AppendLog(new[]
{
fileInfo.Name,
ConvertLogTimeToISO8601(line),
"openvr-init"
});
return true;
}
public string[][] Get() public string[][] Get()
{ {
Update(); Update();
@@ -891,4 +899,4 @@ namespace VRCX
return new string[][] { }; return new string[][] { };
} }
} }
} }

View File

@@ -117,7 +117,6 @@
<Compile Include="Program.cs" /> <Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="LogWatcher.cs" /> <Compile Include="LogWatcher.cs" />
<Compile Include="VRChatRPC.cs" />
<Compile Include="AppApi.cs" /> <Compile Include="AppApi.cs" />
<Compile Include="VRCXStorage.cs" /> <Compile Include="VRCXStorage.cs" />
<Compile Include="JsonSerializer.cs" /> <Compile Include="JsonSerializer.cs" />

View File

@@ -4183,7 +4183,7 @@ speechSynthesis.getVoices();
ipcTimeout: 0, ipcTimeout: 0,
nextClearVRCXCacheCheck: 0, nextClearVRCXCacheCheck: 0,
isGameRunning: false, isGameRunning: false,
isGameNoVR: false, isGameNoVR: configRepository.getBool('isGameNoVR'),
isSteamVRRunning: false, isSteamVRRunning: false,
appVersion, appVersion,
latestAppVersion: '', latestAppVersion: '',
@@ -4295,18 +4295,19 @@ speechSynthesis.getVoices();
this.clearVRCXCache(); this.clearVRCXCache();
} }
AppApi.CheckGameRunning().then( AppApi.CheckGameRunning().then(
([isGameRunning, isGameNoVR, isSteamVRRunning]) => { ([isGameRunning, isSteamVRRunning]) => {
this.updateOpenVR( this.updateOpenVR(isGameRunning, isSteamVRRunning);
isGameRunning,
isGameNoVR,
isSteamVRRunning
);
if (isGameRunning !== this.isGameRunning) { if (isGameRunning !== this.isGameRunning) {
this.isGameRunning = isGameRunning; this.isGameRunning = isGameRunning;
if (isGameRunning) { if (isGameRunning) {
API.currentUser.$online_for = Date.now(); API.currentUser.$online_for = Date.now();
API.currentUser.$offline_for = ''; API.currentUser.$offline_for = '';
} else { } else {
this.isGameNoVR = true;
configRepository.setBool(
'isGameNoVR',
this.isGameNoVR
);
API.currentUser.$online_for = ''; API.currentUser.$online_for = '';
API.currentUser.$offline_for = Date.now(); API.currentUser.$offline_for = Date.now();
Discord.SetActive(false); Discord.SetActive(false);
@@ -4317,10 +4318,6 @@ speechSynthesis.getVoices();
this.clearNowPlaying(); this.clearNowPlaying();
this.updateVRLastLocation(); this.updateVRLastLocation();
} }
if (isGameNoVR !== this.isGameNoVR) {
this.isGameNoVR = isGameNoVR;
this.updateVRLastLocation();
}
if (isSteamVRRunning !== this.isSteamVRRunning) { if (isSteamVRRunning !== this.isSteamVRRunning) {
this.isSteamVRRunning = isSteamVRRunning; this.isSteamVRRunning = isSteamVRRunning;
} }
@@ -5223,16 +5220,7 @@ speechSynthesis.getVoices();
); );
break; break;
case 'PortalSpawn': case 'PortalSpawn':
var locationName = ''; this.speak('User has spawned a portal');
if (noty.worldName) {
locationName = ` to ${this.displayLocation(
noty.instanceId,
noty.worldName
)}`;
}
this.speak(
`${noty.displayName} has spawned a portal${locationName}`
);
break; break;
case 'AvatarChange': case 'AvatarChange':
this.speak( this.speak(
@@ -5419,16 +5407,9 @@ speechSynthesis.getVoices();
); );
break; break;
case 'PortalSpawn': case 'PortalSpawn':
var locationName = '';
if (noty.worldName) {
locationName = ` to ${this.displayLocation(
noty.instanceId,
noty.worldName
)}`;
}
AppApi.XSNotification( AppApi.XSNotification(
'VRCX', 'VRCX',
`${noty.displayName} has spawned a portal${locationName}`, 'User has spawned a portal',
timeout, timeout,
image image
); );
@@ -5643,16 +5624,9 @@ speechSynthesis.getVoices();
); );
break; break;
case 'PortalSpawn': case 'PortalSpawn':
var locationName = '';
if (noty.worldName) {
locationName = ` to ${this.displayLocation(
noty.instanceId,
noty.worldName
)}`;
}
AppApi.DesktopNotification( AppApi.DesktopNotification(
noty.displayName, noty.displayName,
`has spawned a portal${locationName}`, 'User has spawned a portal',
image image
); );
break; break;
@@ -8215,9 +8189,9 @@ speechSynthesis.getVoices();
var entry = { var entry = {
created_at: gameLog.dt, created_at: gameLog.dt,
type: 'PortalSpawn', type: 'PortalSpawn',
displayName: gameLog.userDisplayName,
location, location,
userId, displayName: '',
userId: '',
instanceId: '', instanceId: '',
worldName: '' worldName: ''
}; };
@@ -8330,6 +8304,10 @@ speechSynthesis.getVoices();
} }
}); });
break; break;
case 'opvenvr-init':
this.isGameNoVR = false;
configRepository.setBool('isGameNoVR', this.isGameNoVR);
break;
} }
if (entry) { if (entry) {
this.queueGameLogNoty(entry); this.queueGameLogNoty(entry);
@@ -11512,7 +11490,7 @@ speechSynthesis.getVoices();
stripe: true, stripe: true,
size: 'mini', size: 'mini',
defaultSort: { defaultSort: {
prop: 'photonId', prop: 'timer',
order: 'descending' order: 'descending'
} }
}, },
@@ -11745,9 +11723,10 @@ speechSynthesis.getVoices();
$app.data.photonEventOverlayJoinLeave = configRepository.getBool( $app.data.photonEventOverlayJoinLeave = configRepository.getBool(
'VRCX_PhotonEventOverlayJoinLeave' 'VRCX_PhotonEventOverlayJoinLeave'
); );
$app.data.photonLoggingEnabled = configRepository.getBool( $app.data.photonLoggingEnabled = false;
'VRCX_photonLoggingEnabled' // $app.data.photonLoggingEnabled = configRepository.getBool(
); // 'VRCX_photonLoggingEnabled'
// );
$app.data.gameLogDisabled = configRepository.getBool( $app.data.gameLogDisabled = configRepository.getBool(
'VRCX_gameLogDisabled' 'VRCX_gameLogDisabled'
); );
@@ -12188,14 +12167,10 @@ speechSynthesis.getVoices();
}); });
}; };
$app.methods.updateOpenVR = function ( $app.methods.updateOpenVR = function (isGameRunning, isSteamVRRunning) {
isGameRunning,
isGameNoVR,
isSteamVRRunning
) {
if ( if (
this.openVR && this.openVR &&
!isGameNoVR && !this.isGameNoVR &&
isSteamVRRunning && isSteamVRRunning &&
(isGameRunning || this.openVRAlways) (isGameRunning || this.openVRAlways)
) { ) {

View File

@@ -131,7 +131,7 @@ html
span.extra {{ currentInstanceWorld.ref.created_at | formatDate('long') }} span.extra {{ currentInstanceWorld.ref.created_at | formatDate('long') }}
div.current-instance-table div.current-instance-table
data-tables(v-bind="currentInstanceUserList" @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") el-table-column(label="Avatar" width="70" prop="photo")
template(v-once #default="scope") template(v-once #default="scope")
template(v-if="userImage(scope.row.ref)") template(v-if="userImage(scope.row.ref)")
el-popover(placement="right" height="500px" trigger="hover") el-popover(placement="right" height="500px" trigger="hover")
@@ -140,7 +140,7 @@ html
el-table-column(label="Timer" width="80" prop="timer" sortable) el-table-column(label="Timer" width="80" prop="timer" sortable)
template(v-once #default="scope") template(v-once #default="scope")
timer(:epoch="scope.row.timer") timer(:epoch="scope.row.timer")
el-table-column(label="Photon Id" width="100" prop="photonId" sortable) el-table-column(label="Photon Id" width="110" prop="photonId" sortable)
template(v-once #default="scope") template(v-once #default="scope")
span(v-text="scope.row.photonId") span(v-text="scope.row.photonId")
el-table-column(label="Icons" prop="isMaster" width="100") el-table-column(label="Icons" prop="isMaster" width="100")
@@ -151,7 +151,7 @@ html
span 💚 span 💚
el-tooltip(v-if="scope.row.timeoutTime" placement="left" content="Timeout") el-tooltip(v-if="scope.row.timeoutTime" placement="left" content="Timeout")
span(style="color:red") 🔴{{ scope.row.timeoutTime }}s span(style="color:red") 🔴{{ scope.row.timeoutTime }}s
el-table-column(label="Platform" prop="inVrMode" width="70") el-table-column(label="Platform" prop="inVrMode" width="80")
template(v-once #default="scope") template(v-once #default="scope")
template(v-if="scope.row.ref.last_platform") template(v-if="scope.row.ref.last_platform")
span(v-if="scope.row.ref.last_platform === 'standalonewindows'" style="color:#409eff") PC span(v-if="scope.row.ref.last_platform === 'standalonewindows'" style="color:#409eff") PC
@@ -196,7 +196,7 @@ html
el-tabs(type="card") el-tabs(type="card")
el-tab-pane(label="Current") el-tab-pane(label="Current")
data-tables(v-bind="photonEventTable" style="margin-bottom:10px") data-tables(v-bind="photonEventTable" style="margin-bottom:10px")
el-table-column(label="Date" prop="created_at" width="110") el-table-column(label="Date" prop="created_at" width="120")
template(v-once #default="scope") template(v-once #default="scope")
el-tooltip(placement="right") el-tooltip(placement="right")
template(#content) template(#content)
@@ -241,7 +241,7 @@ html
span(v-else v-text="scope.row.text") span(v-else v-text="scope.row.text")
el-tab-pane(label="Previous") el-tab-pane(label="Previous")
data-tables(v-bind="photonEventTablePrevious" style="margin-bottom:10px") data-tables(v-bind="photonEventTablePrevious" style="margin-bottom:10px")
el-table-column(label="Date" prop="created_at" width="110") el-table-column(label="Date" prop="created_at" width="120")
template(v-once #default="scope") template(v-once #default="scope")
el-tooltip(placement="right") el-tooltip(placement="right")
template(#content) template(#content)
@@ -345,7 +345,7 @@ html
span(v-else) Offline span(v-else) Offline
i.x-user-status(:class="statusClass(scope.row.status)") i.x-user-status(:class="statusClass(scope.row.status)")
span(v-text="scope.row.statusDescription") span(v-text="scope.row.statusDescription")
el-table-column(label="Date" prop="created_at" sortable="custom" width="110") el-table-column(label="Date" prop="created_at" sortable="custom" width="120")
template(v-once #default="scope") template(v-once #default="scope")
el-tooltip(placement="right") el-tooltip(placement="right")
template(#content) template(#content)
@@ -405,7 +405,7 @@ html
el-input(v-model="gameLogTable.search" placeholder="Search" @keyup.native.13="gameLogTableLookup" @change="gameLogTableLookup" clearable style="flex:none;width:150px;margin:0 10px") el-input(v-model="gameLogTable.search" placeholder="Search" @keyup.native.13="gameLogTableLookup" @change="gameLogTableLookup" clearable style="flex:none;width:150px;margin:0 10px")
//- el-tooltip(placement="bottom" content="Reload game log" :disabled="hideTooltips") //- el-tooltip(placement="bottom" content="Reload game log" :disabled="hideTooltips")
//- el-button(type="default" @click="resetGameLog" icon="el-icon-refresh" circle style="flex:none") //- el-button(type="default" @click="resetGameLog" icon="el-icon-refresh" circle style="flex:none")
el-table-column(label="Date" prop="created_at" sortable="custom" width="110") el-table-column(label="Date" prop="created_at" sortable="custom" width="120")
template(v-once #default="scope") template(v-once #default="scope")
el-tooltip(placement="right") el-tooltip(placement="right")
template(#content) template(#content)
@@ -611,7 +611,7 @@ html
el-select(v-model="friendLogTable.filters[0].value" @change="saveTableFilters" multiple clearable collapse-tags style="flex:1" placeholder="Filter") el-select(v-model="friendLogTable.filters[0].value" @change="saveTableFilters" multiple clearable collapse-tags style="flex:1" placeholder="Filter")
el-option(v-once v-for="type in ['Friend', 'Unfriend', 'FriendRequest', 'CancelFriendRequest', 'DisplayName', 'TrustLevel']" :key="type" :label="type" :value="type") el-option(v-once v-for="type in ['Friend', 'Unfriend', 'FriendRequest', 'CancelFriendRequest', 'DisplayName', 'TrustLevel']" :key="type" :label="type" :value="type")
el-input(v-model="friendLogTable.filters[1].value" placeholder="Search" style="flex:none;width:150px;margin-left:10px") el-input(v-model="friendLogTable.filters[1].value" placeholder="Search" style="flex:none;width:150px;margin-left:10px")
el-table-column(label="Date" prop="created_at" sortable="custom" width="110") el-table-column(label="Date" prop="created_at" sortable="custom" width="120")
template(v-once #default="scope") template(v-once #default="scope")
el-tooltip(placement="right") el-tooltip(placement="right")
template(#content) template(#content)
@@ -639,7 +639,7 @@ html
el-input(v-model="playerModerationTable.filters[1].value" placeholder="Search" style="flex:none;width:150px;margin:0 10px") el-input(v-model="playerModerationTable.filters[1].value" placeholder="Search" style="flex:none;width:150px;margin:0 10px")
el-tooltip(placement="bottom" content="Refresh" :disabled="hideTooltips") el-tooltip(placement="bottom" content="Refresh" :disabled="hideTooltips")
el-button(type="default" :loading="API.isPlayerModerationsLoading" @click="API.refreshPlayerModerations()" icon="el-icon-refresh" circle style="flex:none") el-button(type="default" :loading="API.isPlayerModerationsLoading" @click="API.refreshPlayerModerations()" icon="el-icon-refresh" circle style="flex:none")
el-table-column(label="Date" prop="created" sortable="custom" width="110") el-table-column(label="Date" prop="created" sortable="custom" width="120")
template(v-once #default="scope") template(v-once #default="scope")
el-tooltip(placement="right") el-tooltip(placement="right")
template(#content) template(#content)
@@ -666,7 +666,7 @@ html
el-input(v-model="notificationTable.filters[1].value" placeholder="Search" style="flex:none;width:150px;margin:0 10px") el-input(v-model="notificationTable.filters[1].value" placeholder="Search" style="flex:none;width:150px;margin:0 10px")
el-tooltip(placement="bottom" content="Refresh" :disabled="hideTooltips") el-tooltip(placement="bottom" content="Refresh" :disabled="hideTooltips")
el-button(type="default" :loading="API.isNotificationsLoading" @click="API.refreshNotifications()" icon="el-icon-refresh" circle style="flex:none") el-button(type="default" :loading="API.isNotificationsLoading" @click="API.refreshNotifications()" icon="el-icon-refresh" circle style="flex:none")
el-table-column(label="Date" prop="created_at" sortable="custom" width="110") el-table-column(label="Date" prop="created_at" sortable="custom" width="120")
template(v-once #default="scope") template(v-once #default="scope")
el-tooltip(placement="right") el-tooltip(placement="right")
template(#content) template(#content)
@@ -888,7 +888,7 @@ html
el-popover(placement="right" height="500px" trigger="hover") el-popover(placement="right" height="500px" trigger="hover")
img.friends-list-avatar(slot="reference" v-lazy="userImage(scope.row)") img.friends-list-avatar(slot="reference" v-lazy="userImage(scope.row)")
img.friends-list-avatar(v-lazy="userImageFull(scope.row)" style="height:500px;cursor:pointer" @click="openExternalLink(userImageFull(scope.row))") img.friends-list-avatar(v-lazy="userImageFull(scope.row)" style="height:500px;cursor:pointer" @click="openExternalLink(userImageFull(scope.row))")
el-table-column(label="Display Name" min-width="130" prop="displayName" sortable :sort-method="(a, b) => sortAlphabetically(a, b, 'displayName')") el-table-column(label="Display Name" min-width="140" prop="displayName" sortable :sort-method="(a, b) => sortAlphabetically(a, b, 'displayName')")
template(v-once #default="scope") template(v-once #default="scope")
span.name(v-if="randomUserColours" v-text="scope.row.displayName" :style="{'color':scope.row.$userColour}") span.name(v-if="randomUserColours" v-text="scope.row.displayName" :style="{'color':scope.row.$userColour}")
span.name(v-else v-text="scope.row.displayName") span.name(v-else v-text="scope.row.displayName")
@@ -902,7 +902,7 @@ html
i.x-user-status(v-if="scope.row.status !== 'offline'" :class="statusClass(scope.row.status)") i.x-user-status(v-if="scope.row.status !== 'offline'" :class="statusClass(scope.row.status)")
span span
span(v-text="scope.row.statusDescription") span(v-text="scope.row.statusDescription")
el-table-column(label="Language" width="100" prop="$languages" sortable :sort-method="(a, b) => sortLanguages(a, b)") el-table-column(label="Language" width="110" prop="$languages" sortable :sort-method="(a, b) => sortLanguages(a, b)")
template(v-once #default="scope") template(v-once #default="scope")
el-tooltip(v-for="item in scope.row.$languages" :key="item.key" placement="top") el-tooltip(v-for="item in scope.row.$languages" :key="item.key" placement="top")
template(#content) template(#content)
@@ -928,7 +928,7 @@ html
template(v-once #default="scope") template(v-once #default="scope")
span {{ scope.row.last_login | formatDate('long') }} span {{ scope.row.last_login | formatDate('long') }}
el-table-column(label="Date Joined" width="120" prop="date_joined" sortable :sort-method="(a, b) => sortAlphabetically(a, b, 'date_joined')") el-table-column(label="Date Joined" width="120" prop="date_joined" sortable :sort-method="(a, b) => sortAlphabetically(a, b, 'date_joined')")
el-table-column(label="Unfriend" width="70" align="right") el-table-column(label="Unfriend" width="80" align="right")
template(v-once #default="scope") template(v-once #default="scope")
el-button(type="text" icon="el-icon-close" size="mini" @click.stop="confirmDeleteFriend(scope.row.id)") el-button(type="text" icon="el-icon-close" size="mini" @click.stop="confirmDeleteFriend(scope.row.id)")
@@ -1516,8 +1516,6 @@ html
launch(:location="userDialog.ref.$location.tag" style="margin-left:5px") launch(:location="userDialog.ref.$location.tag" style="margin-left:5px")
el-tooltip(placement="top" content="Invite yourself" :disabled="hideTooltips") el-tooltip(placement="top" content="Invite yourself" :disabled="hideTooltips")
invite-yourself(:location="userDialog.ref.$location.tag" style="margin-left:5px") invite-yourself(:location="userDialog.ref.$location.tag" style="margin-left:5px")
el-tooltip(placement="top" content="Copy to clipboard" :disabled="hideTooltips")
el-button(@click="copyLocation(userDialog.ref.$location.tag)" size="mini" icon="el-icon-s-order" style="margin-left:5px" circle)
el-tooltip(placement="top" content="Refresh player count" :disabled="hideTooltips") el-tooltip(placement="top" content="Refresh player count" :disabled="hideTooltips")
el-button(@click="refreshInstancePlayerCount(userDialog.ref.$location.tag)" size="mini" icon="el-icon-refresh" style="margin-left:5px" circle) el-button(@click="refreshInstancePlayerCount(userDialog.ref.$location.tag)" size="mini" icon="el-icon-refresh" style="margin-left:5px" circle)
span(v-if="userDialog.instance.occupants" style="margin-left:5px") {{ userDialog.instance.occupants }} #[template(v-if="userDialog.instance.friendCount > 0") ({{ userDialog.instance.friendCount }})] span(v-if="userDialog.instance.occupants" style="margin-left:5px") {{ userDialog.instance.occupants }} #[template(v-if="userDialog.instance.friendCount > 0") ({{ userDialog.instance.friendCount }})]
@@ -1759,8 +1757,6 @@ html
i.el-icon-lock(v-if="room.$location.strict" style="display:inline-block;margin-left:5px") i.el-icon-lock(v-if="room.$location.strict" style="display:inline-block;margin-left:5px")
el-tooltip(placement="top" content="Invite yourself" :disabled="hideTooltips") el-tooltip(placement="top" content="Invite yourself" :disabled="hideTooltips")
invite-yourself(:location="room.$location.tag" style="margin-left:5px") invite-yourself(:location="room.$location.tag" style="margin-left:5px")
el-tooltip(placement="top" content="Copy to clipboard" :disabled="hideTooltips")
el-button(v-if="isRealInstance(room.$location.tag)" @click="copyLocation(room.$location.tag)" size="mini" icon="el-icon-s-order" style="margin-left:5px" circle)
el-tooltip(placement="top" content="Refresh player count" :disabled="hideTooltips") el-tooltip(placement="top" content="Refresh player count" :disabled="hideTooltips")
el-button(@click="refreshInstancePlayerCount(room.$location.tag)" size="mini" icon="el-icon-refresh" style="margin-left:5px" circle) el-button(@click="refreshInstancePlayerCount(room.$location.tag)" size="mini" icon="el-icon-refresh" style="margin-left:5px" circle)
span(v-if="room.occupants" style="margin-left:5px") {{ room.occupants }} #[template(v-if="room.friendCount > 0") ({{ room.friendCount }})] span(v-if="room.occupants" style="margin-left:5px") {{ room.occupants }} #[template(v-if="room.friendCount > 0") ({{ room.friendCount }})]
@@ -2850,7 +2846,7 @@ html
span(v-text="previousInstancesUserDialog.userRef.displayName" style="font-size:14px") span(v-text="previousInstancesUserDialog.userRef.displayName" style="font-size:14px")
el-input(v-model="previousInstancesUserDialogTable.filters[0].value" placeholder="Search" style="display:block;width:150px;margin-top:15px") el-input(v-model="previousInstancesUserDialogTable.filters[0].value" placeholder="Search" style="display:block;width:150px;margin-top:15px")
data-tables(v-if="previousInstancesUserDialog.visible" v-bind="previousInstancesUserDialogTable" v-loading="previousInstancesUserDialog.loading" style="margin-top:10px") data-tables(v-if="previousInstancesUserDialog.visible" v-bind="previousInstancesUserDialogTable" v-loading="previousInstancesUserDialog.loading" style="margin-top:10px")
el-table-column(label="Date" prop="created_at" sortable width="110") el-table-column(label="Date" prop="created_at" sortable width="120")
template(v-once #default="scope") template(v-once #default="scope")
el-tooltip(placement="left") el-tooltip(placement="left")
template(#content) template(#content)
@@ -2876,7 +2872,7 @@ html
span(v-text="previousInstancesWorldDialog.worldRef.name" style="font-size:14px") span(v-text="previousInstancesWorldDialog.worldRef.name" style="font-size:14px")
el-input(v-model="previousInstancesWorldDialogTable.filters[0].value" placeholder="Search" style="display:block;width:150px;margin-top:15px") el-input(v-model="previousInstancesWorldDialogTable.filters[0].value" placeholder="Search" style="display:block;width:150px;margin-top:15px")
data-tables(v-if="previousInstancesWorldDialog.visible" v-bind="previousInstancesWorldDialogTable" v-loading="previousInstancesWorldDialog.loading" style="margin-top:10px") data-tables(v-if="previousInstancesWorldDialog.visible" v-bind="previousInstancesWorldDialogTable" v-loading="previousInstancesWorldDialog.loading" style="margin-top:10px")
el-table-column(label="Date" prop="created_at" sortable width="110") el-table-column(label="Date" prop="created_at" sortable width="120")
template(v-once #default="scope") template(v-once #default="scope")
el-tooltip(placement="left") el-tooltip(placement="left")
template(#content) template(#content)
@@ -2907,7 +2903,7 @@ html
location(:location="previousInstanceInfoDialog.$location.tag" style="font-size:14px") location(:location="previousInstanceInfoDialog.$location.tag" style="font-size:14px")
el-input(v-model="previousInstanceInfoDialogTable.filters[0].value" placeholder="Search" style="display:block;width:150px;margin-top:15px") el-input(v-model="previousInstanceInfoDialogTable.filters[0].value" placeholder="Search" style="display:block;width:150px;margin-top:15px")
data-tables(v-if="previousInstanceInfoDialog.visible" v-bind="previousInstanceInfoDialogTable" v-loading="previousInstanceInfoDialog.loading" style="margin-top:10px") data-tables(v-if="previousInstanceInfoDialog.visible" v-bind="previousInstanceInfoDialogTable" v-loading="previousInstanceInfoDialog.loading" style="margin-top:10px")
el-table-column(label="Date" prop="created_at" sortable width="110") el-table-column(label="Date" prop="created_at" sortable width="120")
template(v-once #default="scope") template(v-once #default="scope")
el-tooltip(placement="left") el-tooltip(placement="left")
template(#content) template(#content)

View File

@@ -30,7 +30,6 @@ class GameLogService {
break; break;
case 'portal-spawn': case 'portal-spawn':
gameLog.userDisplayName = args[0];
break; break;
case 'event': case 'event':
@@ -62,6 +61,9 @@ class GameLogService {
case 'vrc-quit': case 'vrc-quit':
break; break;
case 'openvr-init':
break;
default: default:
break; break;
} }

View File

@@ -454,14 +454,7 @@ Vue.component('marquee-text', MarqueeText);
text = `<strong>${noty.previousDisplayName}</strong> changed their name to ${noty.displayName}`; text = `<strong>${noty.previousDisplayName}</strong> changed their name to ${noty.displayName}`;
break; break;
case 'PortalSpawn': case 'PortalSpawn':
var locationName = ''; text = 'User has spawned a portal';
if (noty.worldName) {
locationName = ` to ${this.displayLocation(
noty.instanceId,
noty.worldName
)}`;
}
text = `<strong>${noty.displayName}</strong> has spawned a portal${locationName}`;
break; break;
case 'AvatarChange': case 'AvatarChange':
text = `<strong>${noty.displayName}</strong> changed into avatar ${noty.name}`; text = `<strong>${noty.displayName}</strong> changed into avatar ${noty.name}`;

View File

@@ -122,9 +122,7 @@ html
.detail .detail
span.extra span.extra
span.time {{ feed.created_at | formatDate }} span.time {{ feed.created_at | formatDate }}
| ✨ #[span.name(v-text="feed.displayName")] | ✨ User has spawned a portal
template(v-if="feed.worldName")
| #[location(:location="feed.instanceId" :hint="feed.worldName")]
div(v-else-if="feed.type === 'AvatarChange'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }") div(v-else-if="feed.type === 'AvatarChange'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
.detail .detail
span.extra span.extra
@@ -293,9 +291,7 @@ html
.detail .detail
span.extra span.extra
span.time {{ feed.created_at | formatDate }} span.time {{ feed.created_at | formatDate }}
| #[span.name(v-text="feed.displayName")] has spawned a portal | User has spawned a portal
template(v-if="feed.worldName")
| to #[location(:location="feed.instanceId" :hint="feed.worldName")]
div(v-else-if="feed.type === 'AvatarChange'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }") div(v-else-if="feed.type === 'AvatarChange'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
.detail .detail
span.extra span.extra