Skip to content

Commit 07703e4

Browse files
authored
fix: broken jump right in for worlds (#4227)
* fix: broken jump right in for worlds * revert: Worlds.vue change
1 parent 0801116 commit 07703e4

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

apps/app-frontend/src/components/ui/world/RecentWorldsList.vue

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
<script setup lang="ts">
2+
import type { GameVersion } from '@modrinth/ui'
23
import { GAME_MODES, HeadingLink, injectNotificationManager } from '@modrinth/ui'
34
import type { Dayjs } from 'dayjs'
45
import dayjs from 'dayjs'
@@ -10,11 +11,14 @@ import { trackEvent } from '@/helpers/analytics'
1011
import { process_listener, profile_listener } from '@/helpers/events'
1112
import { get_all } from '@/helpers/process'
1213
import { kill, run } from '@/helpers/profile'
14+
import { get_game_versions } from '@/helpers/tags'
1315
import type { GameInstance } from '@/helpers/types'
1416
import {
1517
get_profile_protocol_version,
1618
get_recent_worlds,
1719
getWorldIdentifier,
20+
hasServerQuickPlaySupport,
21+
hasWorldQuickPlaySupport,
1822
type ProtocolVersion,
1923
refreshServerData,
2024
type ServerData,
@@ -37,6 +41,7 @@ const theme = useTheming()
3741
const jumpBackInItems = ref<JumpBackInItem[]>([])
3842
const serverData = ref<Record<string, ServerData>>({})
3943
const protocolVersions = ref<Record<string, ProtocolVersion | null>>({})
44+
const gameVersions = ref<GameVersion[]>(await get_game_versions().catch(() => []))
4045
4146
const MIN_JUMP_BACK_IN = 3
4247
const MAX_JUMP_BACK_IN = 6
@@ -255,7 +260,14 @@ onUnmounted(() => {
255260
? serverData[item.world.address].refreshing && !serverData[item.world.address].status
256261
: undefined
257262
"
258-
supports-quick-play
263+
:supports-server-quick-play="
264+
item.world.type === 'server' &&
265+
hasServerQuickPlaySupport(gameVersions, item.instance.game_version || '')
266+
"
267+
:supports-world-quick-play="
268+
item.world.type === 'singleplayer' &&
269+
hasWorldQuickPlaySupport(gameVersions, item.instance.game_version || '')
270+
"
259271
:server-status="
260272
item.world.type === 'server' ? serverData[item.world.address].status : undefined
261273
"

apps/app-frontend/src/components/ui/world/WorldItem.vue

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -336,17 +336,21 @@ const messages = defineMessages({
336336
<ButtonStyled v-else>
337337
<button
338338
v-tooltip="
339-
world.type == 'server' && !supportsServerQuickPlay
340-
? formatMessage(messages.noServerQuickPlay)
341-
: world.type == 'singleplayer' && !supportsWorldQuickPlay
342-
? formatMessage(messages.noSingleplayerQuickPlay)
343-
: playingOtherWorld || locked
339+
world.type === 'server'
340+
? !supportsServerQuickPlay
341+
? formatMessage(messages.noServerQuickPlay)
342+
: playingOtherWorld
344343
? formatMessage(messages.gameAlreadyOpen)
345344
: !serverStatus
346345
? formatMessage(messages.noContact)
347346
: serverIncompatible
348347
? formatMessage(messages.incompatibleServer)
349348
: null
349+
: !supportsWorldQuickPlay
350+
? formatMessage(messages.noSingleplayerQuickPlay)
351+
: playingOtherWorld || locked
352+
? formatMessage(messages.gameAlreadyOpen)
353+
: null
350354
"
351355
:disabled="
352356
playingOtherWorld ||

0 commit comments

Comments
 (0)