mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-04-19 14:53:50 +02:00
isGameNoVR, remove steam login, remove copy instance, Fix PortalSpawn
This commit is contained in:
23
AppApi.cs
23
AppApi.cs
@@ -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
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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[][] { };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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" />
|
||||||
|
|||||||
@@ -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)
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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}`;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user