This commit is contained in:
parent
3055e283a1
commit
8a9d621456
3 changed files with 39 additions and 4 deletions
|
|
@ -60,6 +60,7 @@
|
||||||
let globalObserver = null;
|
let globalObserver = null;
|
||||||
let refreshTimer = null;
|
let refreshTimer = null;
|
||||||
let lastVoiceState = null;
|
let lastVoiceState = null;
|
||||||
|
let lastMemberIdentityKey = "";
|
||||||
let leaveWatchdog = null;
|
let leaveWatchdog = null;
|
||||||
const recentRowActivity = new Map();
|
const recentRowActivity = new Map();
|
||||||
|
|
||||||
|
|
@ -87,6 +88,7 @@
|
||||||
leaveWatchdog = null;
|
leaveWatchdog = null;
|
||||||
recentRowActivity.clear();
|
recentRowActivity.clear();
|
||||||
lastVoiceState = null;
|
lastVoiceState = null;
|
||||||
|
lastMemberIdentityKey = "";
|
||||||
playLeave();
|
playLeave();
|
||||||
console.debug("[VCSounds] self left");
|
console.debug("[VCSounds] self left");
|
||||||
const overlayApi = window.native?.overlay;
|
const overlayApi = window.native?.overlay;
|
||||||
|
|
@ -508,6 +510,18 @@
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function memberIdentityKey(members) {
|
||||||
|
return members
|
||||||
|
.map((member) =>
|
||||||
|
[
|
||||||
|
String(member?.name || "").trim().toLowerCase(),
|
||||||
|
String(member?.avatarUrl || "").trim().toLowerCase(),
|
||||||
|
].join(":"),
|
||||||
|
)
|
||||||
|
.sort()
|
||||||
|
.join("|");
|
||||||
|
}
|
||||||
|
|
||||||
function publishVoiceState() {
|
function publishVoiceState() {
|
||||||
const overlayApi = window.native?.overlay;
|
const overlayApi = window.native?.overlay;
|
||||||
if (!overlayApi || typeof overlayApi.setVoiceState !== "function") return;
|
if (!overlayApi || typeof overlayApi.setVoiceState !== "function") return;
|
||||||
|
|
@ -515,7 +529,28 @@
|
||||||
pruneRowActivity();
|
pruneRowActivity();
|
||||||
const next = collectVoiceState();
|
const next = collectVoiceState();
|
||||||
const voiceState = inVoice ? next : null;
|
const voiceState = inVoice ? next : null;
|
||||||
|
const nextMemberKey = memberIdentityKey(next.members);
|
||||||
const nextKey = JSON.stringify(voiceState);
|
const nextKey = JSON.stringify(voiceState);
|
||||||
|
const memberChanged = nextMemberKey !== lastMemberIdentityKey;
|
||||||
|
if (memberChanged && inVoice && !initialising && lastMemberIdentityKey) {
|
||||||
|
const previousMembers = new Set(
|
||||||
|
lastMemberIdentityKey
|
||||||
|
.split("|")
|
||||||
|
.map((entry) => entry.trim())
|
||||||
|
.filter(Boolean),
|
||||||
|
);
|
||||||
|
const currentMembers = new Set(
|
||||||
|
nextMemberKey
|
||||||
|
.split("|")
|
||||||
|
.map((entry) => entry.trim())
|
||||||
|
.filter(Boolean),
|
||||||
|
);
|
||||||
|
const added = [...currentMembers].some((entry) => !previousMembers.has(entry));
|
||||||
|
const removed = [...previousMembers].some((entry) => !currentMembers.has(entry));
|
||||||
|
if (added) playJoin();
|
||||||
|
if (removed) playLeave();
|
||||||
|
}
|
||||||
|
lastMemberIdentityKey = nextMemberKey;
|
||||||
if (nextKey === lastVoiceState) return;
|
if (nextKey === lastVoiceState) return;
|
||||||
lastVoiceState = nextKey;
|
lastVoiceState = nextKey;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,9 @@
|
||||||
<control>pointing</control>
|
<control>pointing</control>
|
||||||
</supports>
|
</supports>
|
||||||
<releases>
|
<releases>
|
||||||
<release date="2026-05-05" version="1.0.5">
|
<release date="2026-05-05" version="1.0.6">
|
||||||
<description>
|
<description>
|
||||||
<p>Gameplay overlay and improved game presence support.</p>
|
<p>Fixed VC sounds and tightened game presence to catalog entries plus user allowlists.</p>
|
||||||
</description>
|
</description>
|
||||||
</release>
|
</release>
|
||||||
<release date="2026-04-22" version="1.0.0">
|
<release date="2026-04-22" version="1.0.0">
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
"name": "sanctum",
|
"name": "sanctum",
|
||||||
"productName": "Sanctum",
|
"productName": "Sanctum",
|
||||||
"version": "1.0.5",
|
"version": "1.0.6",
|
||||||
"aviaVersion": "1.0.5",
|
"aviaVersion": "1.0.6",
|
||||||
"main": ".vite/build/main.js",
|
"main": ".vite/build/main.js",
|
||||||
"repository": "https://git.mithraic.cloud/ad3laid3/sanctum",
|
"repository": "https://git.mithraic.cloud/ad3laid3/sanctum",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue