refactor store

This commit is contained in:
pa
2026-03-06 22:42:43 +09:00
parent e665b3815d
commit 8ddedb2d2d
29 changed files with 3269 additions and 888 deletions
+71 -113
View File
@@ -9,6 +9,12 @@ import {
isRpcWorld,
parseLocation
} from '../../shared/utils';
import {
getPlatformLabel,
getRpcWorldConfig,
getStatusInfo,
isPopcornPalaceWorld
} from '../../shared/utils/discordPresence';
import {
ActivityType,
StatusDisplayType
@@ -59,14 +65,23 @@ export const useDiscordPresenceSettingsStore = defineStore(
const discordWorldIntegration = ref(true);
const discordWorldNameAsDiscordStatus = ref(false);
/**
*
*/
function setDiscordActive() {
discordActive.value = !discordActive.value;
configRepository.setBool('discordActive', discordActive.value);
}
/**
*
*/
function setDiscordInstance() {
discordInstance.value = !discordInstance.value;
configRepository.setBool('discordInstance', discordInstance.value);
}
/**
*
*/
function setDiscordHideInvite() {
discordHideInvite.value = !discordHideInvite.value;
configRepository.setBool(
@@ -74,6 +89,9 @@ export const useDiscordPresenceSettingsStore = defineStore(
discordHideInvite.value
);
}
/**
*
*/
function setDiscordJoinButton() {
discordJoinButton.value = !discordJoinButton.value;
configRepository.setBool(
@@ -81,6 +99,9 @@ export const useDiscordPresenceSettingsStore = defineStore(
discordJoinButton.value
);
}
/**
*
*/
function setDiscordHideImage() {
discordHideImage.value = !discordHideImage.value;
configRepository.setBool(
@@ -88,6 +109,9 @@ export const useDiscordPresenceSettingsStore = defineStore(
discordHideImage.value
);
}
/**
*
*/
function setDiscordShowPlatform() {
discordShowPlatform.value = !discordShowPlatform.value;
configRepository.setBool(
@@ -95,6 +119,9 @@ export const useDiscordPresenceSettingsStore = defineStore(
discordShowPlatform.value
);
}
/**
*
*/
function setDiscordWorldIntegration() {
discordWorldIntegration.value = !discordWorldIntegration.value;
configRepository.setBool(
@@ -102,6 +129,9 @@ export const useDiscordPresenceSettingsStore = defineStore(
discordWorldIntegration.value
);
}
/**
*
*/
function setDiscordWorldNameAsDiscordStatus() {
discordWorldNameAsDiscordStatus.value =
!discordWorldNameAsDiscordStatus.value;
@@ -111,6 +141,9 @@ export const useDiscordPresenceSettingsStore = defineStore(
);
}
/**
*
*/
async function initDiscordPresenceSettings() {
const [
discordActiveConfig,
@@ -148,6 +181,9 @@ export const useDiscordPresenceSettingsStore = defineStore(
initDiscordPresenceSettings();
/**
*
*/
async function updateDiscord() {
let currentLocation = locationStore.lastLocation.location;
let startTime = locationStore.lastLocation.date;
@@ -204,27 +240,12 @@ export const useDiscordPresenceSettingsStore = defineStore(
let platform = '';
if (discordShowPlatform.value) {
if (gameStore.isGameRunning) {
platform = gameStore.isGameNoVR
? ` (${t('view.settings.discord_presence.rpc.desktop')})`
: ` (${t('view.settings.discord_presence.rpc.vr')})`;
} else {
switch (userStore.currentUser.presence.platform) {
case 'web':
break;
case 'standalonewindows':
platform = ` (PC)`;
break;
case 'android':
platform = ` (Android)`;
break;
case 'ios':
platform = ` (iOS)`;
break;
default:
platform = ` (${userStore.currentUser.presence.platform})`;
}
}
platform = getPlatformLabel(
userStore.currentUser.presence.platform,
gameStore.isGameRunning,
gameStore.isGameNoVR,
t
);
}
state.lastLocationDetails.groupAccessType = L.groupAccessType;
if (L.groupAccessType) {
@@ -281,34 +302,14 @@ export const useDiscordPresenceSettingsStore = defineStore(
) {
hidePrivate = true;
}
let statusName = '';
let statusImage = '';
switch (userStore.currentUser.status) {
case 'active':
statusName = t('dialog.user.status.active');
statusImage = 'active';
break;
case 'join me':
statusName = t('dialog.user.status.join_me');
statusImage = 'joinme';
break;
case 'ask me':
statusName = t('dialog.user.status.ask_me');
statusImage = 'askme';
if (discordHideInvite.value) {
hidePrivate = true;
}
break;
case 'busy':
statusName = t('dialog.user.status.busy');
statusImage = 'busy';
hidePrivate = true;
break;
default:
statusName = t('dialog.user.status.offline');
statusImage = 'offline';
hidePrivate = true;
break;
const statusInfo = getStatusInfo(
userStore.currentUser.status,
discordHideInvite.value,
t
);
const { statusName, statusImage } = statusInfo;
if (statusInfo.hidePrivate) {
hidePrivate = true;
}
let details = state.lastLocationDetails.worldName;
let stateText = state.lastLocationDetails.accessName;
@@ -345,74 +346,23 @@ export const useDiscordPresenceSettingsStore = defineStore(
buttonUrl = '';
}
if (
const rpcConfig =
isRpcWorld(state.lastLocationDetails.tag) &&
discordWorldIntegration.value
) {
// custom world rpc
? getRpcWorldConfig(state.lastLocationDetails.worldId)
: null;
if (rpcConfig) {
activityType = rpcConfig.activityType;
statusDisplayType = rpcConfig.statusDisplayType;
appId = rpcConfig.appId;
bigIcon = rpcConfig.bigIcon;
if (
state.lastLocationDetails.worldId ===
'wrld_f20326da-f1ac-45fc-a062-609723b097b1' ||
state.lastLocationDetails.worldId ===
'wrld_10e5e467-fc65-42ed-8957-f02cace1398c' ||
state.lastLocationDetails.worldId ===
'wrld_04899f23-e182-4a8d-b2c7-2c74c7c15534'
isPopcornPalaceWorld(state.lastLocationDetails.worldId) &&
!discordHideImage.value &&
gameLogStore.nowPlaying.thumbnailUrl
) {
activityType = ActivityType.Listening;
statusDisplayType = StatusDisplayType.Details;
appId = '784094509008551956';
bigIcon = 'pypy';
} else if (
state.lastLocationDetails.worldId ===
'wrld_42377cf1-c54f-45ed-8996-5875b0573a83' ||
state.lastLocationDetails.worldId ===
'wrld_dd6d2888-dbdc-47c2-bc98-3d631b2acd7c'
) {
activityType = ActivityType.Listening;
statusDisplayType = StatusDisplayType.Details;
appId = '846232616054030376';
bigIcon = 'vr_dancing';
} else if (
state.lastLocationDetails.worldId ===
'wrld_52bdcdab-11cd-4325-9655-0fb120846945' ||
state.lastLocationDetails.worldId ===
'wrld_2d40da63-8f1f-4011-8a9e-414eb8530acd'
) {
activityType = ActivityType.Listening;
statusDisplayType = StatusDisplayType.Details;
appId = '939473404808007731';
bigIcon = 'zuwa_zuwa_dance';
} else if (
state.lastLocationDetails.worldId ===
'wrld_74970324-58e8-4239-a17b-2c59dfdf00db' ||
state.lastLocationDetails.worldId ===
'wrld_db9d878f-6e76-4776-8bf2-15bcdd7fc445' ||
state.lastLocationDetails.worldId ===
'wrld_435bbf25-f34f-4b8b-82c6-cd809057eb8e' ||
state.lastLocationDetails.worldId ===
'wrld_f767d1c8-b249-4ecc-a56f-614e433682c8'
) {
activityType = ActivityType.Watching;
statusDisplayType = StatusDisplayType.Details;
appId = '968292722391785512';
bigIcon = 'ls_media';
} else if (
state.lastLocationDetails.worldId ===
'wrld_266523e8-9161-40da-acd0-6bd82e075833' ||
state.lastLocationDetails.worldId ===
'wrld_27c7e6b2-d938-447e-a270-3d1a873e2cf3'
) {
activityType = ActivityType.Watching;
statusDisplayType = StatusDisplayType.Details;
appId = '1095440531821170820';
if (
!discordHideImage.value &&
gameLogStore.nowPlaying.thumbnailUrl
) {
bigIcon = gameLogStore.nowPlaying.thumbnailUrl;
} else {
bigIcon = 'popcorn_palace';
}
bigIcon = gameLogStore.nowPlaying.thumbnailUrl;
}
if (gameLogStore.nowPlaying.name) {
details = gameLogStore.nowPlaying.name;
@@ -476,12 +426,20 @@ export const useDiscordPresenceSettingsStore = defineStore(
);
}
/**
*
* @param active
*/
async function setIsDiscordActive(active) {
if (active !== state.isDiscordActive) {
state.isDiscordActive = await Discord.SetActive(active);
}
}
/**
*
* @param configLabel
*/
async function saveDiscordOption(configLabel = '') {
state.lastLocationDetails.tag = '';
updateLoopStore.nextDiscordUpdate = 3;