This commit is contained in:
Natsumi
2023-01-17 22:09:29 +13:00
parent 4c1faa66ce
commit b92a7f6751
5 changed files with 98 additions and 29 deletions

View File

@@ -42,6 +42,9 @@ namespace VRCX
cefSettings.CefCommandLineArgs.Add("disable-web-security");
cefSettings.SetOffScreenRenderingBestPerformanceArgs();
if (Program.LaunchDebug)
cefSettings.RemoteDebuggingPort = 8088;
// CefSharpSettings.WcfEnabled = true; // TOOD: REMOVE THIS LINE YO (needed for synchronous configRepository)
CefSharpSettings.ShutdownOnExit = false;

View File

@@ -1186,6 +1186,17 @@ speechSynthesis.getVoices();
API.$on('USER:CURRENT', function (args) {
var {json} = args;
args.ref = this.applyCurrentUser(json);
var location = '';
var travelingToLocation = '';
if (json.presence?.world && $app.isRealInstance(json.presence.world)) {
location = `${json.presence.world}:${json.presence.instance}`;
}
if (
json.presence?.travelingToWorld &&
$app.isRealInstance(json.presence.travelingToWorld)
) {
travelingToLocation = `${json.presence.travelingToWorld}:${json.presence.travelingToInstance}`;
}
this.applyUser({
id: json.id,
displayName: json.displayName,
@@ -1207,10 +1218,14 @@ speechSynthesis.getVoices();
fallbackAvatar: json.fallbackAvatar,
profilePicOverride: json.profilePicOverride,
isFriend: false,
location: json.location,
travelingToInstance: json.travelingToInstance,
travelingToLocation: json.travelingToLocation,
travelingToWorld: json.travelingToWorld
// Presence
location,
travelingToLocation,
instanceId: json.presence?.instance,
worldId: json.presence?.world,
travelingToInstance: json.presence?.travelingToInstance,
travelingToWorld: json.presence?.travelingToWorld
});
});
@@ -1451,6 +1466,7 @@ speechSynthesis.getVoices();
username: '',
displayName: '',
userIcon: '',
profilePicOverride: '',
bio: '',
bioLinks: [],
pastDisplayNames: [],
@@ -1459,6 +1475,7 @@ speechSynthesis.getVoices();
currentAvatarThumbnailImageUrl: '',
currentAvatar: '',
currentAvatarAssetUrl: '',
fallbackAvatar: '',
homeLocation: '',
twoFactorAuthEnabled: false,
status: '',
@@ -1474,9 +1491,22 @@ speechSynthesis.getVoices();
onlineFriends: [],
activeFriends: [],
offlineFriends: [],
travelingToInstance: '',
travelingToLocation: '',
travelingToWorld: '',
presence: {
avatarThumbnail: '',
displayName: '',
groups: [],
id: '',
instance: '',
instanceType: '',
isRejoining: '0',
platform: '',
profilePicOverride: '',
status: '',
travelingToInstance: '',
travelingToWorld: '',
world: '',
...json.presence
},
// VRCX
$online_for: Date.now(),
$offline_for: '',
@@ -1592,10 +1622,12 @@ speechSynthesis.getVoices();
id: '',
displayName: '',
userIcon: '',
profilePicOverride: '',
bio: '',
bioLinks: [],
currentAvatarImageUrl: '',
currentAvatarThumbnailImageUrl: '',
fallbackAvatar: '',
status: '',
statusDescription: '',
state: '',
@@ -5679,7 +5711,7 @@ speechSynthesis.getVoices();
if (noty.thumbnailImageUrl) {
imageUrl = noty.thumbnailImageUrl;
} else if (noty.details && noty.details.imageUrl) {
imageUrl = noty.details.imageURL;
imageUrl = noty.details.imageUrl;
} else if (noty.imageUrl) {
imageUrl = noty.imageUrl;
} else if (userId) {
@@ -7615,7 +7647,7 @@ speechSynthesis.getVoices();
);
}
var newRef = args.ref;
if (ctx.state !== newState && ctx.ref !== 'undefined') {
if (ctx.state !== newState && typeof ctx.ref !== 'undefined') {
if (
(newState === 'offline' || newState === 'active') &&
ctx.state === 'online'
@@ -9784,7 +9816,7 @@ speechSynthesis.getVoices();
showGroupBadgeToOthers: user.showGroupBadgeToOthers,
showSocialRank: user.showSocialRank
});
this.photonUserJoin(id, user.avatarDict, gameLogDate);
this.photonUserJoin(id, user, gameLogDate);
}
} else {
console.log('oldSetUserProps', data);
@@ -9821,7 +9853,7 @@ speechSynthesis.getVoices();
user.user.showGroupBadgeToOthers,
showSocialRank: user.user.showSocialRank
});
this.photonUserJoin(id, user.avatarDict, gameLogDate);
this.photonUserJoin(id, user, gameLogDate);
}
break;
case 42:
@@ -9904,7 +9936,7 @@ speechSynthesis.getVoices();
});
this.photonUserJoin(
data.Parameters[254],
data.Parameters[249].avatarDict,
data.Parameters[249],
gameLogDate
);
this.checkPhotonBotJoin(
@@ -10442,10 +10474,19 @@ speechSynthesis.getVoices();
this.photonLobbyUserData.set(photonId, photonUser);
};
$app.methods.photonUserJoin = function (photonId, avatar, gameLogDate) {
$app.methods.photonUserJoin = function (photonId, user, gameLogDate) {
if (photonId === this.photonLobbyCurrentUser) {
return;
}
var avatar = user.avatarDict;
var platform = '';
if (user.last_platform === 'android') {
platform = 'Quest';
} else if (user.inVRMode) {
platform = 'VR';
} else {
platform = 'Desktop';
}
this.checkVRChatCache(avatar).then((cacheInfo) => {
var inCache = false;
if (cacheInfo[0] > 0) {
@@ -10457,7 +10498,8 @@ speechSynthesis.getVoices();
type: 'OnPlayerJoined',
created_at: gameLogDate,
avatar,
inCache
inCache,
platform
});
});
};
@@ -10620,6 +10662,7 @@ speechSynthesis.getVoices();
}
var {groupOnNameplate} = this.photonLobbyJointime.get(photonId);
if (
groupOnNameplate &&
groupOnNameplate !== groupId &&
photonId !== this.photonLobbyCurrentUser
) {
@@ -15643,6 +15686,10 @@ speechSynthesis.getVoices();
$app.methods.refreshUserDialogTreeData = function () {
var D = this.userDialog;
if (D.id === API.currentUser.id) {
D.treeData = buildTreeData(API.currentUser);
return;
}
D.treeData = buildTreeData(D.ref);
};
@@ -20154,7 +20201,7 @@ speechSynthesis.getVoices();
workerTimers.setTimeout(() => this.restartVRCX(), 2000);
} else {
this.downloadDialog.visible = false;
this.pendingVRCXUpdate = this.downloadCurrent.ref.name;
this.pendingVRCXInstall = this.downloadCurrent.ref.name;
this.showVRCXUpdateDialog();
}
}
@@ -20765,7 +20812,8 @@ speechSynthesis.getVoices();
};
$app.data.checkingForVRCXUpdate = false;
$app.data.pendingVRCXUpdate = '';
$app.data.pendingVRCXInstall = '';
$app.data.pendingVRCXUpdate = false;
$app.data.branches = {
Stable: {
@@ -20893,7 +20941,7 @@ speechSynthesis.getVoices();
D.releases = releases;
D.release = json[0].name;
this.VRCXUpdateDialog.updatePendingIsLatest = false;
if (D.release === this.pendingVRCXUpdate) {
if (D.release === this.pendingVRCXInstall) {
// update already downloaded and latest version
this.VRCXUpdateDialog.updatePendingIsLatest = true;
}
@@ -20903,6 +20951,9 @@ speechSynthesis.getVoices();
};
$app.methods.saveAutoUpdateVRCX = function () {
if (this.autoUpdateVRCX === 'Off') {
this.pendingVRCXUpdate = false;
}
configRepository.setString('VRCX_autoUpdateVRCX', this.autoUpdateVRCX);
};
@@ -20925,6 +20976,7 @@ speechSynthesis.getVoices();
url,
method: 'GET'
});
this.pendingVRCXUpdate = false;
this.checkingForVRCXUpdate = false;
var json = JSON.parse(response.data);
if (this.debugWebRequests) {
@@ -20934,7 +20986,7 @@ speechSynthesis.getVoices();
this.latestAppVersion = json.name;
var name = json.name;
this.VRCXUpdateDialog.updatePendingIsLatest = false;
if (name === this.pendingVRCXUpdate) {
if (name === this.pendingVRCXInstall) {
// update already downloaded
this.VRCXUpdateDialog.updatePendingIsLatest = true;
} else if (name > this.appVersion) {
@@ -20953,12 +21005,13 @@ speechSynthesis.getVoices();
if (!downloadUrl) {
return;
}
this.pendingVRCXUpdate = true;
this.notifyMenu('settings');
var type = 'Auto';
if (!API.isLoggedIn) {
this.showVRCXUpdateDialog();
} else if (this.autoUpdateVRCX === 'Notify') {
this.showVRCXUpdateDialog();
// this.showVRCXUpdateDialog();
} else if (this.autoUpdateVRCX === 'Auto Download') {
var autoInstall = false;
this.downloadVRCXUpdate(

View File

@@ -54,9 +54,11 @@ html
//- menu
.x-menu-container
//- download progress
//- download progress, update pending
div(v-if="downloadInProgress" @click="showDownloadDialog" style="margin:7px;height:50px;cursor:pointer")
el-progress(type="circle" width="50" stroke-width="3" :percentage="downloadProgress" :format="downloadProgressText")
div(v-else-if="pendingVRCXUpdate || pendingVRCXInstall" style="margin:7px;height:50px;width:50px")
el-button(type="default" @click="showVRCXUpdateDialog" size="mini" icon="el-icon-download" circle style="font-size:14px;height:50px;width:50px")
el-menu(ref="menu" collapse @select="selectMenu")
mixin menuitem(index, name, icon)
@@ -186,6 +188,9 @@ html
location(:location="scope.row.location" :hint="scope.row.worldName" :grouphint="scope.row.groupName" :link="false")
span(v-else-if="scope.row.type === 'ChatBoxMessage'" v-text="scope.row.text")
span(v-else-if="scope.row.type === 'OnPlayerJoined'")
span(v-if="scope.row.platform === 'Desktop'" style="color:#409eff") PC 
span(v-else-if="scope.row.platform === 'VR'" style="color:#409eff") VR 
span(v-else-if="scope.row.platform === 'Quest'" style="color:#67c23a") Q 
span.x-link(v-text="scope.row.avatar.name" @click="showAvatarDialog(scope.row.avatar.id)")
|  
span(v-if="!scope.row.inCache" style="color:#aaa") #[i.el-icon-download] 
@@ -247,6 +252,9 @@ html
location(:location="scope.row.location" :hint="scope.row.worldName" :grouphint="scope.row.groupName" :link="false")
span(v-else-if="scope.row.type === 'ChatBoxMessage'" v-text="scope.row.text")
span(v-else-if="scope.row.type === 'OnPlayerJoined'")
span(v-if="scope.row.platform === 'Desktop'" style="color:#409eff") PC 
span(v-else-if="scope.row.platform === 'VR'" style="color:#409eff") VR 
span(v-else-if="scope.row.platform === 'Quest'" style="color:#67c23a") Q 
span.x-link(v-text="scope.row.avatar.name" @click="showAvatarDialog(scope.row.avatar.id)")
|  
span(v-if="!scope.row.inCache" style="color:#aaa") #[i.el-icon-download] 

View File

@@ -375,7 +375,9 @@ Vue.component('marquee-text', MarqueeText);
if (this.nowPlaying.playing) {
length -= 1;
}
this.wristFeed.length = length;
if (length < this.wristFeed.length) {
this.wristFeed.length = length;
}
};
$app.methods.updateStatsLoop = async function () {

View File

@@ -481,13 +481,13 @@ html
div(v-for="feed in hudFeed")
.item #[span(v-if="feed.isMaster") 👑]<strong>{{ feed.displayName }}</strong>
template(v-if="feed.type === 'ChangeAvatar'")
span(style="margin-left:10px") ChangeAvatar
span(style="margin-left:10px;color:#a3a3a3") ChangeAvatar
span(v-if="!feed.inCache" style="color:#aaa;margin-left:10px") #[i.el-icon-download]
span(v-text="feed.avatar.name" style="margin-left:10px")
span(v-if="feed.avatar.releaseStatus === 'public'" style="margin-left:10px;color:#67c23a") (Public)
span(v-else-if="feed.avatar.releaseStatus === 'private'" style="margin-left:10px;color:#e6a23c") (Private)
template(v-else-if="feed.type === 'ChangeStatus'")
span(style="margin-left:10px") ChangeStatus
span(style="margin-left:10px;color:#a3a3a3") ChangeStatus
template(v-if="feed.status !== feed.previousStatus")
i.x-user-status(:class="statusClass(feed.previousStatus)" style="margin-left:10px;width:20px;height:20px")
span
@@ -495,23 +495,26 @@ html
i.x-user-status(:class="statusClass(feed.status)" style="width:20px;height:20px")
span(v-if="feed.statusDescription !== feed.previousStatusDescription" v-text="feed.statusDescription" style="margin-left:10px")
template(v-else-if="feed.type === 'ChangeGroup'")
span(style="margin-left:10px") ChangeGroup
span(style="margin-left:10px;color:#a3a3a3") ChangeGroup
span(v-text="feed.groupName" style="margin-left:10px")
template(v-else-if="feed.type === 'ChatBoxMessage'")
span(style="margin-left:10px") ChatBox
span(style="margin-left:10px;color:#a3a3a3") ChatBox
span(v-text="feed.text" style="margin-left:10px;white-space:normal")
template(v-else-if="feed.type === 'PortalSpawn'")
span(style="margin-left:10px") PortalSpawn
span(style="margin-left:10px;color:#a3a3a3") PortalSpawn
location(:location="feed.location" :hint="feed.worldName" :link="false" style="margin-left:10px")
template(v-else-if="feed.type === 'OnPlayerJoined'")
span(style="margin-left:10px") has joined -
span(style="margin-left:10px;color:#a3a3a3") has joined
span(v-if="feed.platform === 'Desktop'" style="color:#409eff;margin-left:10px") PC
span(v-else-if="feed.platform === 'VR'" style="color:#409eff;margin-left:10px") VR
span(v-else-if="feed.platform === 'Quest'" style="color:#67c23a;margin-left:10px") Q
span(v-if="!feed.inCache" style="color:#aaa;margin-left:10px") #[i.el-icon-download]
span(v-text="feed.avatar.name" style="margin-left:10px")
template(v-else-if="feed.type === 'SpawnEmoji'")
span(style="margin-left:10px") SpawnEmoji
span(style="margin-left:10px;color:#a3a3a3") SpawnEmoji
span(v-text="feed.text" style="margin-left:10px")
span(v-else-if="feed.color === 'yellow'" v-text="feed.text" style="color:yellow;margin-left:10px")
span(v-else style="margin-left:10px" v-text="feed.text")
span(v-else style="margin-left:10px;color:#a3a3a3" v-text="feed.text")
template(v-if="feed.combo > 1")
span.combo(style="margin-left:10px") x{{ feed.combo }}
.hud-timeout(v-if="hudTimeout.length > 0")