mirror of
https://github.com/MrUnknownDE/VRCX.git
synced 2026-05-07 06:56:04 +02:00
Toggle self invite/open in-game
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-tooltip
|
<el-tooltip
|
||||||
v-if="!isGameRunning || isLinux || gameLogDisabled"
|
v-if="!canOpenInstanceInGame()"
|
||||||
placement="top"
|
placement="top"
|
||||||
:content="t('dialog.user.info.self_invite_tooltip')"
|
:content="t('dialog.user.info.self_invite_tooltip')"
|
||||||
:disabled="hideTooltips">
|
:disabled="hideTooltips">
|
||||||
@@ -18,9 +18,8 @@
|
|||||||
import { instanceRequest } from '../api';
|
import { instanceRequest } from '../api';
|
||||||
import { checkCanInviteSelf, parseLocation } from '../shared/utils';
|
import { checkCanInviteSelf, parseLocation } from '../shared/utils';
|
||||||
import { useAppearanceSettingsStore } from '../stores/settings/appearance';
|
import { useAppearanceSettingsStore } from '../stores/settings/appearance';
|
||||||
import { useGameStore } from '../stores/game';
|
|
||||||
import { useLaunchStore } from '../stores/launch';
|
import { useLaunchStore } from '../stores/launch';
|
||||||
import { useAdvancedSettingsStore } from '../stores/settings/advanced';
|
import { useInviteStore } from '../stores/invite';
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
location: String,
|
location: String,
|
||||||
@@ -30,17 +29,14 @@
|
|||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
|
|
||||||
const { hideTooltips } = storeToRefs(useAppearanceSettingsStore());
|
const { hideTooltips } = storeToRefs(useAppearanceSettingsStore());
|
||||||
const { isGameRunning } = storeToRefs(useGameStore());
|
|
||||||
const { gameLogDisabled } = storeToRefs(useAdvancedSettingsStore());
|
|
||||||
|
|
||||||
|
const { canOpenInstanceInGame } = useInviteStore();
|
||||||
const { tryOpenInstanceInVrc } = useLaunchStore();
|
const { tryOpenInstanceInVrc } = useLaunchStore();
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
|
|
||||||
const isVisible = computed(() => checkCanInviteSelf(props.location));
|
const isVisible = computed(() => checkCanInviteSelf(props.location));
|
||||||
|
|
||||||
const isLinux = computed(() => LINUX);
|
|
||||||
|
|
||||||
function confirmInvite() {
|
function confirmInvite() {
|
||||||
const L = parseLocation(props.location);
|
const L = parseLocation(props.location);
|
||||||
if (!L.isRealInstance) {
|
if (!L.isRealInstance) {
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
@click="showInviteDialog(launchDialog.location)">
|
@click="showInviteDialog(launchDialog.location)">
|
||||||
{{ t('dialog.launch.invite') }}
|
{{ t('dialog.launch.invite') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<template v-if="isGameRunning">
|
<template v-if="canOpenInstanceInGame()">
|
||||||
<el-button
|
<el-button
|
||||||
type="default"
|
type="default"
|
||||||
size="small"
|
size="small"
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
import {
|
import {
|
||||||
useAppearanceSettingsStore,
|
useAppearanceSettingsStore,
|
||||||
useFriendStore,
|
useFriendStore,
|
||||||
useGameStore,
|
useInviteStore,
|
||||||
useInstanceStore,
|
useInstanceStore,
|
||||||
useLaunchStore,
|
useLaunchStore,
|
||||||
useLocationStore
|
useLocationStore
|
||||||
@@ -122,7 +122,7 @@
|
|||||||
const { launchGame, tryOpenInstanceInVrc } = useLaunchStore();
|
const { launchGame, tryOpenInstanceInVrc } = useLaunchStore();
|
||||||
const { launchDialogData } = storeToRefs(useLaunchStore());
|
const { launchDialogData } = storeToRefs(useLaunchStore());
|
||||||
const { showPreviousInstancesInfoDialog } = useInstanceStore();
|
const { showPreviousInstancesInfoDialog } = useInstanceStore();
|
||||||
const { isGameRunning } = storeToRefs(useGameStore());
|
const { canOpenInstanceInGame } = useInviteStore();
|
||||||
|
|
||||||
const launchDialogRef = ref(null);
|
const launchDialogRef = ref(null);
|
||||||
|
|
||||||
|
|||||||
@@ -410,12 +410,28 @@
|
|||||||
@click="showInviteDialog(newInstanceDialog.location)"
|
@click="showInviteDialog(newInstanceDialog.location)"
|
||||||
>{{ t('dialog.new_instance.invite') }}</el-button
|
>{{ t('dialog.new_instance.invite') }}</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<template v-if="canOpenInstanceInGame()">
|
||||||
type="primary"
|
<el-button
|
||||||
size="small"
|
type="default"
|
||||||
@click="showLaunchDialog(newInstanceDialog.location, newInstanceDialog.shortName)"
|
size="small"
|
||||||
>{{ t('dialog.new_instance.launch') }}</el-button
|
@click="showLaunchDialog(newInstanceDialog.location, newInstanceDialog.shortName)"
|
||||||
>
|
>{{ t('dialog.new_instance.launch') }}</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="handleAttachGame(newInstanceDialog.location, newInstanceDialog.shortName)">
|
||||||
|
{{ t('dialog.new_instance.open_ingame') }}
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="showLaunchDialog(newInstanceDialog.location, newInstanceDialog.shortName)"
|
||||||
|
>{{ t('dialog.new_instance.launch') }}</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<el-button type="primary" size="small" @click="handleCreateNewInstance">{{
|
<el-button type="primary" size="small" @click="handleCreateNewInstance">{{
|
||||||
@@ -439,12 +455,28 @@
|
|||||||
@click="showInviteDialog(newInstanceDialog.location)"
|
@click="showInviteDialog(newInstanceDialog.location)"
|
||||||
>{{ t('dialog.new_instance.invite') }}</el-button
|
>{{ t('dialog.new_instance.invite') }}</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<template v-if="canOpenInstanceInGame()">
|
||||||
type="primary"
|
<el-button
|
||||||
size="small"
|
type="default"
|
||||||
@click="showLaunchDialog(newInstanceDialog.location, newInstanceDialog.shortName)"
|
size="small"
|
||||||
>{{ t('dialog.new_instance.launch') }}</el-button
|
@click="showLaunchDialog(newInstanceDialog.location, newInstanceDialog.shortName)"
|
||||||
>
|
>{{ t('dialog.new_instance.launch') }}</el-button
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="handleAttachGame(newInstanceDialog.location, newInstanceDialog.shortName)">
|
||||||
|
{{ t('dialog.new_instance.open_ingame') }}
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="showLaunchDialog(newInstanceDialog.location, newInstanceDialog.shortName)"
|
||||||
|
>{{ t('dialog.new_instance.launch') }}</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
</template>
|
</template>
|
||||||
<InviteDialog :invite-dialog="inviteDialog" @closeInviteDialog="closeInviteDialog" />
|
<InviteDialog :invite-dialog="inviteDialog" @closeInviteDialog="closeInviteDialog" />
|
||||||
</safe-dialog>
|
</safe-dialog>
|
||||||
@@ -472,7 +504,8 @@
|
|||||||
useInstanceStore,
|
useInstanceStore,
|
||||||
useLaunchStore,
|
useLaunchStore,
|
||||||
useLocationStore,
|
useLocationStore,
|
||||||
useUserStore
|
useUserStore,
|
||||||
|
useInviteStore
|
||||||
} from '../../stores';
|
} from '../../stores';
|
||||||
import InviteDialog from './InviteDialog/InviteDialog.vue';
|
import InviteDialog from './InviteDialog/InviteDialog.vue';
|
||||||
|
|
||||||
@@ -494,6 +527,8 @@
|
|||||||
const { showLaunchDialog } = useLaunchStore();
|
const { showLaunchDialog } = useLaunchStore();
|
||||||
const { createNewInstance } = useInstanceStore();
|
const { createNewInstance } = useInstanceStore();
|
||||||
const { currentUser } = storeToRefs(useUserStore());
|
const { currentUser } = storeToRefs(useUserStore());
|
||||||
|
const { tryOpenInstanceInVrc } = useLaunchStore();
|
||||||
|
const { canOpenInstanceInGame } = useInviteStore();
|
||||||
|
|
||||||
const newInstanceDialogRef = ref(null);
|
const newInstanceDialogRef = ref(null);
|
||||||
|
|
||||||
@@ -573,6 +608,11 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleAttachGame(location, shortName) {
|
||||||
|
tryOpenInstanceInVrc(location, shortName);
|
||||||
|
closeInviteDialog();
|
||||||
|
}
|
||||||
|
|
||||||
async function initNewInstanceDialog(tag) {
|
async function initNewInstanceDialog(tag) {
|
||||||
if (!isRealInstance(tag)) {
|
if (!isRealInstance(tag)) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -233,8 +233,8 @@
|
|||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
<el-dropdown-item icon="el-icon-message" command="New Instance and Self Invite">
|
<el-dropdown-item icon="el-icon-message" command="New Instance and Self Invite">
|
||||||
{{
|
{{
|
||||||
isGameRunning
|
canOpenInstanceInGame()
|
||||||
? t('dialog.world.actions.new_instance_and_open_in_vrchat')
|
? t('dialog.world.actions.new_instance_and_open_ingame')
|
||||||
: t('dialog.world.actions.new_instance_and_self_invite')
|
: t('dialog.world.actions.new_instance_and_self_invite')
|
||||||
}}
|
}}
|
||||||
</el-dropdown-item>
|
</el-dropdown-item>
|
||||||
@@ -826,7 +826,7 @@
|
|||||||
const { worldDialog, cachedWorlds } = storeToRefs(useWorldStore());
|
const { worldDialog, cachedWorlds } = storeToRefs(useWorldStore());
|
||||||
const { showWorldDialog } = useWorldStore();
|
const { showWorldDialog } = useWorldStore();
|
||||||
const { lastLocation } = storeToRefs(useLocationStore());
|
const { lastLocation } = storeToRefs(useLocationStore());
|
||||||
const { newInstanceSelfInvite } = useInviteStore();
|
const { newInstanceSelfInvite, canOpenInstanceInGame } = useInviteStore();
|
||||||
const { showFavoriteDialog } = useFavoriteStore();
|
const { showFavoriteDialog } = useFavoriteStore();
|
||||||
const { showPreviousInstancesInfoDialog } = useInstanceStore();
|
const { showPreviousInstancesInfoDialog } = useInstanceStore();
|
||||||
const { instanceJoinHistory } = storeToRefs(useInstanceStore());
|
const { instanceJoinHistory } = storeToRefs(useInstanceStore());
|
||||||
|
|||||||
@@ -569,6 +569,10 @@
|
|||||||
"header": "Automatically Manage Cache When Closing VRChat",
|
"header": "Automatically Manage Cache When Closing VRChat",
|
||||||
"description": "Auto delete old versions from cache"
|
"description": "Auto delete old versions from cache"
|
||||||
},
|
},
|
||||||
|
"self_invite": {
|
||||||
|
"header": "Self Invite",
|
||||||
|
"description": "Self invite instead of opening instance in VRChat"
|
||||||
|
},
|
||||||
"save_instance_prints_to_file": {
|
"save_instance_prints_to_file": {
|
||||||
"header": "Save Instance Prints To File",
|
"header": "Save Instance Prints To File",
|
||||||
"header_tooltip": "Requires \"--enable-sdk-log-levels\" VRC launch option",
|
"header_tooltip": "Requires \"--enable-sdk-log-levels\" VRC launch option",
|
||||||
@@ -907,7 +911,7 @@
|
|||||||
"share": "Share",
|
"share": "Share",
|
||||||
"new_instance": "New Instance",
|
"new_instance": "New Instance",
|
||||||
"new_instance_and_self_invite": "New Instance and Self Invite",
|
"new_instance_and_self_invite": "New Instance and Self Invite",
|
||||||
"new_instance_and_open_in_vrchat": "New Instance and Open in VRChat",
|
"new_instance_and_open_ingame": "New Instance and Open In-game",
|
||||||
"make_home": "Make Home",
|
"make_home": "Make Home",
|
||||||
"reset_home": "Reset Home",
|
"reset_home": "Reset Home",
|
||||||
"show_previous_instances": "Show Previous Instances",
|
"show_previous_instances": "Show Previous Instances",
|
||||||
@@ -1222,7 +1226,8 @@
|
|||||||
"normal": "Normal",
|
"normal": "Normal",
|
||||||
"group": "Group",
|
"group": "Group",
|
||||||
"legacy": "Legacy",
|
"legacy": "Legacy",
|
||||||
"roles": "Roles"
|
"roles": "Roles",
|
||||||
|
"open_ingame": "Open in-game"
|
||||||
},
|
},
|
||||||
"launch_options": {
|
"launch_options": {
|
||||||
"header": "VRChat Launch Options",
|
"header": "VRChat Launch Options",
|
||||||
@@ -1324,7 +1329,7 @@
|
|||||||
"info": "Info",
|
"info": "Info",
|
||||||
"invite": "Invite",
|
"invite": "Invite",
|
||||||
"launch": "Launch",
|
"launch": "Launch",
|
||||||
"open_ingame": "Open in Game"
|
"open_ingame": "Open in-game"
|
||||||
},
|
},
|
||||||
"export_friends_list": {
|
"export_friends_list": {
|
||||||
"header": "Export Friends List",
|
"header": "Export Friends List",
|
||||||
|
|||||||
+14
-3
@@ -7,11 +7,13 @@ import { parseLocation } from '../shared/utils';
|
|||||||
import { useInstanceStore } from './instance';
|
import { useInstanceStore } from './instance';
|
||||||
import { useGameStore } from './game';
|
import { useGameStore } from './game';
|
||||||
import { useLaunchStore } from './launch';
|
import { useLaunchStore } from './launch';
|
||||||
|
import { useAdvancedSettingsStore } from './settings/advanced';
|
||||||
|
|
||||||
export const useInviteStore = defineStore('Invite', () => {
|
export const useInviteStore = defineStore('Invite', () => {
|
||||||
const instanceStore = useInstanceStore();
|
const instanceStore = useInstanceStore();
|
||||||
const gameStore = useGameStore();
|
const gameStore = useGameStore();
|
||||||
const launchStore = useLaunchStore();
|
const launchStore = useLaunchStore();
|
||||||
|
const advancedSettingsStore = useAdvancedSettingsStore();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
editInviteMessageDialog: {
|
editInviteMessageDialog: {
|
||||||
visible: false,
|
visible: false,
|
||||||
@@ -111,7 +113,7 @@ export const useInviteStore = defineStore('Invite', () => {
|
|||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {string} messageType
|
* @param {string} messageType
|
||||||
* @param {string} inviteMessage
|
* @param {any} inviteMessage
|
||||||
*/
|
*/
|
||||||
function showEditInviteMessageDialog(messageType, inviteMessage) {
|
function showEditInviteMessageDialog(messageType, inviteMessage) {
|
||||||
const D = state.editInviteMessageDialog;
|
const D = state.editInviteMessageDialog;
|
||||||
@@ -149,6 +151,14 @@ export const useInviteStore = defineStore('Invite', () => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function canOpenInstanceInGame() {
|
||||||
|
return (
|
||||||
|
!LINUX &&
|
||||||
|
gameStore.isGameRunning &&
|
||||||
|
!advancedSettingsStore.selfInviteOverride
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
function newInstanceSelfInvite(worldId) {
|
function newInstanceSelfInvite(worldId) {
|
||||||
instanceStore.createNewInstance(worldId).then((args) => {
|
instanceStore.createNewInstance(worldId).then((args) => {
|
||||||
const location = args?.json?.location;
|
const location = args?.json?.location;
|
||||||
@@ -164,7 +174,7 @@ export const useInviteStore = defineStore('Invite', () => {
|
|||||||
if (!L.isRealInstance) {
|
if (!L.isRealInstance) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (gameStore.isGameRunning && !LINUX) {
|
if (canOpenInstanceInGame()) {
|
||||||
const secureOrShortName =
|
const secureOrShortName =
|
||||||
args.json.shortName || args.json.secureName;
|
args.json.shortName || args.json.secureName;
|
||||||
launchStore.tryOpenInstanceInVrc(location, secureOrShortName);
|
launchStore.tryOpenInstanceInVrc(location, secureOrShortName);
|
||||||
@@ -194,6 +204,7 @@ export const useInviteStore = defineStore('Invite', () => {
|
|||||||
inviteRequestResponseMessageTable,
|
inviteRequestResponseMessageTable,
|
||||||
showEditInviteMessageDialog,
|
showEditInviteMessageDialog,
|
||||||
refreshInviteMessageTableData,
|
refreshInviteMessageTableData,
|
||||||
newInstanceSelfInvite
|
newInstanceSelfInvite,
|
||||||
|
canOpenInstanceInGame
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
|
|||||||
relaunchVRChatAfterCrash: false,
|
relaunchVRChatAfterCrash: false,
|
||||||
vrcQuitFix: true,
|
vrcQuitFix: true,
|
||||||
autoSweepVRChatCache: false,
|
autoSweepVRChatCache: false,
|
||||||
|
selfInviteOverride: false,
|
||||||
saveInstancePrints: false,
|
saveInstancePrints: false,
|
||||||
cropInstancePrints: false,
|
cropInstancePrints: false,
|
||||||
saveInstanceStickers: false,
|
saveInstanceStickers: false,
|
||||||
@@ -53,6 +54,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
|
|||||||
relaunchVRChatAfterCrash,
|
relaunchVRChatAfterCrash,
|
||||||
vrcQuitFix,
|
vrcQuitFix,
|
||||||
autoSweepVRChatCache,
|
autoSweepVRChatCache,
|
||||||
|
selfInviteOverride,
|
||||||
saveInstancePrints,
|
saveInstancePrints,
|
||||||
cropInstancePrints,
|
cropInstancePrints,
|
||||||
saveInstanceStickers,
|
saveInstanceStickers,
|
||||||
@@ -80,6 +82,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
|
|||||||
configRepository.getBool('VRCX_relaunchVRChatAfterCrash', false),
|
configRepository.getBool('VRCX_relaunchVRChatAfterCrash', false),
|
||||||
configRepository.getBool('VRCX_vrcQuitFix', true),
|
configRepository.getBool('VRCX_vrcQuitFix', true),
|
||||||
configRepository.getBool('VRCX_autoSweepVRChatCache', false),
|
configRepository.getBool('VRCX_autoSweepVRChatCache', false),
|
||||||
|
configRepository.getBool('VRCX_selfInviteOverride', false),
|
||||||
configRepository.getBool('VRCX_saveInstancePrints', false),
|
configRepository.getBool('VRCX_saveInstancePrints', false),
|
||||||
configRepository.getBool('VRCX_cropInstancePrints', false),
|
configRepository.getBool('VRCX_cropInstancePrints', false),
|
||||||
configRepository.getBool('VRCX_saveInstanceStickers', false),
|
configRepository.getBool('VRCX_saveInstanceStickers', false),
|
||||||
@@ -120,6 +123,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
|
|||||||
state.relaunchVRChatAfterCrash = relaunchVRChatAfterCrash;
|
state.relaunchVRChatAfterCrash = relaunchVRChatAfterCrash;
|
||||||
state.vrcQuitFix = vrcQuitFix;
|
state.vrcQuitFix = vrcQuitFix;
|
||||||
state.autoSweepVRChatCache = autoSweepVRChatCache;
|
state.autoSweepVRChatCache = autoSweepVRChatCache;
|
||||||
|
state.selfInviteOverride = selfInviteOverride;
|
||||||
state.saveInstancePrints = saveInstancePrints;
|
state.saveInstancePrints = saveInstancePrints;
|
||||||
state.cropInstancePrints = cropInstancePrints;
|
state.cropInstancePrints = cropInstancePrints;
|
||||||
state.saveInstanceStickers = saveInstanceStickers;
|
state.saveInstanceStickers = saveInstanceStickers;
|
||||||
@@ -166,6 +170,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
|
|||||||
);
|
);
|
||||||
const vrcQuitFix = computed(() => state.vrcQuitFix);
|
const vrcQuitFix = computed(() => state.vrcQuitFix);
|
||||||
const autoSweepVRChatCache = computed(() => state.autoSweepVRChatCache);
|
const autoSweepVRChatCache = computed(() => state.autoSweepVRChatCache);
|
||||||
|
const selfInviteOverride = computed(() => state.selfInviteOverride);
|
||||||
const saveInstancePrints = computed(() => state.saveInstancePrints);
|
const saveInstancePrints = computed(() => state.saveInstancePrints);
|
||||||
const cropInstancePrints = computed(() => state.cropInstancePrints);
|
const cropInstancePrints = computed(() => state.cropInstancePrints);
|
||||||
const saveInstanceStickers = computed(() => state.saveInstanceStickers);
|
const saveInstanceStickers = computed(() => state.saveInstanceStickers);
|
||||||
@@ -243,6 +248,13 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
|
|||||||
state.autoSweepVRChatCache
|
state.autoSweepVRChatCache
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
function setSelfInviteOverride() {
|
||||||
|
state.selfInviteOverride = !state.selfInviteOverride;
|
||||||
|
configRepository.setBool(
|
||||||
|
'VRCX_selfInviteOverride',
|
||||||
|
state.selfInviteOverride
|
||||||
|
);
|
||||||
|
}
|
||||||
function setSaveInstancePrints() {
|
function setSaveInstancePrints() {
|
||||||
state.saveInstancePrints = !state.saveInstancePrints;
|
state.saveInstancePrints = !state.saveInstancePrints;
|
||||||
configRepository.setBool(
|
configRepository.setBool(
|
||||||
@@ -692,6 +704,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
|
|||||||
relaunchVRChatAfterCrash,
|
relaunchVRChatAfterCrash,
|
||||||
vrcQuitFix,
|
vrcQuitFix,
|
||||||
autoSweepVRChatCache,
|
autoSweepVRChatCache,
|
||||||
|
selfInviteOverride,
|
||||||
saveInstancePrints,
|
saveInstancePrints,
|
||||||
cropInstancePrints,
|
cropInstancePrints,
|
||||||
saveInstanceStickers,
|
saveInstanceStickers,
|
||||||
@@ -722,6 +735,7 @@ export const useAdvancedSettingsStore = defineStore('AdvancedSettings', () => {
|
|||||||
setRelaunchVRChatAfterCrash,
|
setRelaunchVRChatAfterCrash,
|
||||||
setVrcQuitFix,
|
setVrcQuitFix,
|
||||||
setAutoSweepVRChatCache,
|
setAutoSweepVRChatCache,
|
||||||
|
setSelfInviteOverride,
|
||||||
setSaveInstancePrints,
|
setSaveInstancePrints,
|
||||||
setCropInstancePrints,
|
setCropInstancePrints,
|
||||||
setSaveInstanceStickers,
|
setSaveInstanceStickers,
|
||||||
|
|||||||
@@ -54,8 +54,8 @@
|
|||||||
<el-tooltip placement="left" :disabled="hideTooltips">
|
<el-tooltip placement="left" :disabled="hideTooltips">
|
||||||
<template #content>
|
<template #content>
|
||||||
{{
|
{{
|
||||||
isGameRunning
|
canOpenInstanceInGame()
|
||||||
? $t('dialog.world.actions.new_instance_and_open_in_vrchat')
|
? $t('dialog.world.actions.new_instance_and_open_ingame')
|
||||||
: $t('dialog.world.actions.new_instance_and_self_invite')
|
: $t('dialog.world.actions.new_instance_and_self_invite')
|
||||||
}}
|
}}
|
||||||
</template>
|
</template>
|
||||||
@@ -160,6 +160,7 @@
|
|||||||
const { newInstanceSelfInvite } = useInviteStore();
|
const { newInstanceSelfInvite } = useInviteStore();
|
||||||
const { shiftHeld } = storeToRefs(useUiStore());
|
const { shiftHeld } = storeToRefs(useUiStore());
|
||||||
const { isGameRunning } = storeToRefs(useGameStore());
|
const { isGameRunning } = storeToRefs(useGameStore());
|
||||||
|
const { canOpenInstanceInGame } = useInviteStore();
|
||||||
|
|
||||||
const isSelected = computed({
|
const isSelected = computed({
|
||||||
get: () => props.favorite.$selected,
|
get: () => props.favorite.$selected,
|
||||||
|
|||||||
@@ -1478,6 +1478,15 @@
|
|||||||
setAutoSweepVRChatCache();
|
setAutoSweepVRChatCache();
|
||||||
saveOpenVROption();
|
saveOpenVROption();
|
||||||
" />
|
" />
|
||||||
|
<span class="sub-header">{{ t('view.settings.advanced.advanced.self_invite.header') }}</span>
|
||||||
|
<simple-switch
|
||||||
|
:label="t('view.settings.advanced.advanced.self_invite.description')"
|
||||||
|
:value="selfInviteOverride"
|
||||||
|
:long-label="true"
|
||||||
|
@change="
|
||||||
|
setSelfInviteOverride();
|
||||||
|
saveOpenVROption();
|
||||||
|
" />
|
||||||
<!--//- Advanced | Disable local world database-->
|
<!--//- Advanced | Disable local world database-->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -2118,6 +2127,7 @@
|
|||||||
relaunchVRChatAfterCrash,
|
relaunchVRChatAfterCrash,
|
||||||
vrcQuitFix,
|
vrcQuitFix,
|
||||||
autoSweepVRChatCache,
|
autoSweepVRChatCache,
|
||||||
|
selfInviteOverride,
|
||||||
saveInstancePrints,
|
saveInstancePrints,
|
||||||
cropInstancePrints,
|
cropInstancePrints,
|
||||||
saveInstanceStickers,
|
saveInstanceStickers,
|
||||||
@@ -2144,6 +2154,7 @@
|
|||||||
setRelaunchVRChatAfterCrash,
|
setRelaunchVRChatAfterCrash,
|
||||||
setVrcQuitFix,
|
setVrcQuitFix,
|
||||||
setAutoSweepVRChatCache,
|
setAutoSweepVRChatCache,
|
||||||
|
setSelfInviteOverride,
|
||||||
setSaveInstancePrints,
|
setSaveInstancePrints,
|
||||||
setCropInstancePrints,
|
setCropInstancePrints,
|
||||||
setSaveInstanceStickers,
|
setSaveInstanceStickers,
|
||||||
|
|||||||
Reference in New Issue
Block a user