refactor: 移除遥测并修复启动器流程
This commit is contained in:
1 parent
1fa56add19
commit
1593ac7a7c
175 files changed
+547
-12210
No files matched your search
@@ -137,11 +137,11 @@
|
||||
</template>
|
||||
</div>
|
||||
<div
|
||||
v-if="downloadTelemetry(job).length"
|
||||
v-if="downloadDetails(job).length"
|
||||
class="mt-1 flex flex-wrap items-center gap-2 text-sm text-secondary"
|
||||
>
|
||||
<template
|
||||
v-for="(metric, index) in downloadTelemetry(job)"
|
||||
v-for="(metric, index) in downloadDetails(job)"
|
||||
:key="`${index}-${metric}`"
|
||||
>
|
||||
<BulletDivider v-if="index > 0" />
|
||||
@@ -1058,7 +1058,7 @@ function totalRequiredFiles(job: InstallJobSnapshot) {
|
||||
return Math.max(job.summary.files_total ?? 0, job.items.length, completed + missing)
|
||||
}
|
||||
|
||||
function downloadTelemetry(job: InstallJobSnapshot) {
|
||||
function downloadDetails(job: InstallJobSnapshot) {
|
||||
const summary = job.summary
|
||||
const metrics: string[] = []
|
||||
if (summary.source && !isRecoveryValidation(job)) {
|
||||
|
||||
@@ -419,7 +419,6 @@ import { useMinecraftLaunchError } from '@/composables/useMinecraftLaunchError'
|
||||
import { useNetworkStatus } from '@/composables/useNetworkStatus'
|
||||
import { postUpgradeNoticeQueryKey, usePostUpgradeNotice } from '@/composables/usePostUpgradeNotice'
|
||||
import { useSymlinkWarningDismiss } from '@/composables/useSymlinkWarningDismiss'
|
||||
import { trackEvent } from '@/helpers/analytics'
|
||||
import { get_project_v3 } from '@/helpers/cache.js'
|
||||
import { instance_listener, process_listener } from '@/helpers/events'
|
||||
import {
|
||||
@@ -776,11 +775,6 @@ const startInstance = async (context: string) => {
|
||||
loading.value = false
|
||||
}
|
||||
|
||||
trackEvent('InstanceStart', {
|
||||
loader: instance.value.loader,
|
||||
game_version: instance.value.game_version,
|
||||
source: context,
|
||||
})
|
||||
}
|
||||
|
||||
const stopInstance = async (context: string) => {
|
||||
@@ -790,11 +784,6 @@ const stopInstance = async (context: string) => {
|
||||
playing.value = false
|
||||
|
||||
if (!instance.value) return
|
||||
trackEvent('InstanceStop', {
|
||||
loader: instance.value.loader,
|
||||
game_version: instance.value.game_version,
|
||||
source: context,
|
||||
})
|
||||
}
|
||||
|
||||
const handlePlayServer = async () => {
|
||||
|
||||
@@ -264,7 +264,6 @@ import ContentToggleDependenciesModal from '@/components/ui/modal/ContentToggleD
|
||||
import ShareModalWrapper from '@/components/ui/modal/ShareModalWrapper.vue'
|
||||
import { postUpgradeNoticeQueryKey, usePostUpgradeNotice } from '@/composables/usePostUpgradeNotice'
|
||||
import { useWorldDatapacks } from '@/composables/useWorldDatapacks'
|
||||
import { trackEvent } from '@/helpers/analytics'
|
||||
import { get_project_versions, get_version, get_version_many } from '@/helpers/cache.js'
|
||||
import { applyContentItemUpdates, matchesContentItem } from '@/helpers/content-item-state'
|
||||
import { lookupContentWikiIds, translateContentItemTitles } from '@/helpers/content-search'
|
||||
@@ -1580,14 +1579,6 @@ async function toggleDisableMod(
|
||||
const enabled = desiredEnabled ?? !mod.enabled
|
||||
try {
|
||||
await toggleWorldDatapackItem(mod, enabled)
|
||||
trackEvent('InstanceProjectDisable', {
|
||||
loader: props.instance.loader,
|
||||
game_version: props.instance.game_version,
|
||||
id: mod.project?.id,
|
||||
name: mod.project?.title ?? mod.file_name,
|
||||
project_type: mod.project_type,
|
||||
disabled: !enabled,
|
||||
})
|
||||
} catch (err) {
|
||||
handleError(err as Error)
|
||||
}
|
||||
@@ -1646,14 +1637,6 @@ async function applyToggleDisableMod(mod: ContentItem, enabled: boolean) {
|
||||
enabled: actualEnabled,
|
||||
})
|
||||
|
||||
trackEvent('InstanceProjectDisable', {
|
||||
loader: props.instance.loader,
|
||||
game_version: props.instance.game_version,
|
||||
id: mod.project?.id,
|
||||
name: mod.project?.title ?? mod.file_name,
|
||||
project_type: mod.project_type,
|
||||
disabled: !actualEnabled,
|
||||
})
|
||||
} catch (err) {
|
||||
applyContentItemToggleState(mod, operation.originalFileName, originalFilePath, {
|
||||
file_path: originalFilePath,
|
||||
@@ -1733,14 +1716,6 @@ async function applyToggleDisableBatch(items: ContentItem[], enabled: boolean) {
|
||||
)
|
||||
|
||||
for (const operation of operations) {
|
||||
trackEvent('InstanceProjectDisable', {
|
||||
loader: props.instance.loader,
|
||||
game_version: props.instance.game_version,
|
||||
id: operation.item.project?.id,
|
||||
name: operation.item.project?.title ?? operation.originalFileName,
|
||||
project_type: operation.item.project_type,
|
||||
disabled: !enabled,
|
||||
})
|
||||
}
|
||||
} catch (error) {
|
||||
for (const operation of operations) {
|
||||
@@ -1831,13 +1806,6 @@ async function removeMod(mod: ContentItem) {
|
||||
projects.value = projects.value.filter((x) => removedPath !== x.file_path)
|
||||
}
|
||||
|
||||
trackEvent('InstanceProjectRemove', {
|
||||
loader: props.instance.loader,
|
||||
game_version: props.instance.game_version,
|
||||
id: mod.project?.id,
|
||||
name: mod.project?.title ?? mod.file_name,
|
||||
project_type: mod.project_type,
|
||||
})
|
||||
} catch (err) {
|
||||
handleError(err as Error)
|
||||
} finally {
|
||||
@@ -1999,13 +1967,6 @@ async function updateProject(mod: ContentItem) {
|
||||
try {
|
||||
await update_content_entry(props.instance.id, contentId)
|
||||
|
||||
trackEvent('InstanceProjectUpdate', {
|
||||
loader: props.instance.loader,
|
||||
game_version: props.instance.game_version,
|
||||
id: mod.project?.id,
|
||||
name: mod.project?.title ?? mod.file_name,
|
||||
project_type: mod.project_type,
|
||||
})
|
||||
} catch (err) {
|
||||
handleError(err as Error)
|
||||
throw err
|
||||
@@ -2024,13 +1985,6 @@ async function switchProjectVersion(mod: ContentItem, version: Labrinth.Versions
|
||||
try {
|
||||
await switch_content_entry_version(props.instance.id, contentId, version.id)
|
||||
|
||||
trackEvent('InstanceProjectUpdate', {
|
||||
loader: props.instance.loader,
|
||||
game_version: props.instance.game_version,
|
||||
id: mod.project?.id,
|
||||
name: mod.project?.title ?? mod.file_name,
|
||||
project_type: mod.project_type,
|
||||
})
|
||||
} catch (err) {
|
||||
handleError(err as Error)
|
||||
} finally {
|
||||
@@ -2046,13 +2000,6 @@ async function handleRollbackContent(mod: ContentItem) {
|
||||
|
||||
try {
|
||||
await rollback_project(props.instance.id, mod.file_path)
|
||||
trackEvent('InstanceProjectRollback', {
|
||||
loader: props.instance.loader,
|
||||
game_version: props.instance.game_version,
|
||||
id: mod.project?.id,
|
||||
name: mod.project?.title ?? mod.file_name,
|
||||
project_type: mod.project_type,
|
||||
})
|
||||
} catch (err) {
|
||||
handleError(err as Error)
|
||||
} finally {
|
||||
|
||||
@@ -204,7 +204,6 @@ import ConfirmRemoveWorldModal from '@/components/ui/world/modal/ConfirmRemoveWo
|
||||
import EditServerModal from '@/components/ui/world/modal/EditServerModal.vue'
|
||||
import WorldItem from '@/components/ui/world/WorldItem.vue'
|
||||
import { useMinecraftLaunchError } from '@/composables/useMinecraftLaunchError'
|
||||
import { trackEvent } from '@/helpers/analytics'
|
||||
import { get_project, get_project_v3 } from '@/helpers/cache.js'
|
||||
import { instance_listener } from '@/helpers/events'
|
||||
import { get_game_versions } from '@/helpers/tags'
|
||||
@@ -592,20 +591,10 @@ async function joinWorld(world: World) {
|
||||
const managedProjectId = instance.value.link?.project_id
|
||||
if (managedProjectId && isManagedServerWorld(world)) {
|
||||
await playServerProject(managedProjectId).catch(handleJoinError)
|
||||
trackEvent('InstanceStart', {
|
||||
loader: instance.value.loader,
|
||||
game_version: instance.value.game_version,
|
||||
source: 'WorldsPage',
|
||||
})
|
||||
startingInstance.value = false
|
||||
return
|
||||
}
|
||||
await start_join_server(instance.value.id, world.address).catch(handleJoinError)
|
||||
trackEvent('InstanceStart', {
|
||||
loader: instance.value.loader,
|
||||
game_version: instance.value.game_version,
|
||||
source: 'WorldsPage',
|
||||
})
|
||||
} else if (world.type === 'singleplayer') {
|
||||
await start_join_singleplayer_world(instance.value.id, world.path).catch(handleJoinError)
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ import {
|
||||
} from '@modrinth/ui'
|
||||
import { computed, onMounted, onUnmounted, ref } from 'vue'
|
||||
|
||||
import { trackEvent } from '@/helpers/analytics'
|
||||
import {
|
||||
type ProjectGalleryCaptionField,
|
||||
projectGalleryTranslationSegmentId,
|
||||
@@ -130,10 +129,6 @@ function viewImage(entry: GalleryEntry) {
|
||||
zoomedIn.value = false
|
||||
viewerModal.value?.show()
|
||||
|
||||
trackEvent('GalleryImageExpand', {
|
||||
project_id: props.project.id,
|
||||
url: entry.image.url,
|
||||
})
|
||||
}
|
||||
|
||||
function changeImage(offset: number) {
|
||||
@@ -146,10 +141,6 @@ function changeImage(offset: number) {
|
||||
selectedGalleryItem.value = filteredGallery.value[nextIndex]
|
||||
zoomedIn.value = false
|
||||
|
||||
trackEvent(offset > 0 ? 'GalleryImageNext' : 'GalleryImagePrevious', {
|
||||
project_id: props.project.id,
|
||||
url: selectedGalleryItem.value.image.url,
|
||||
})
|
||||
}
|
||||
|
||||
function handleViewerHide() {
|
||||
|
||||
@@ -210,25 +210,6 @@
|
||||
{{ installButtonLabel }}
|
||||
</button>
|
||||
</ButtonStyled>
|
||||
<!-- 开服功能暂有问题,隐藏该按钮
|
||||
<Transition name="start-server">
|
||||
<ButtonStyled
|
||||
v-if="serverCapableModpack"
|
||||
key="modpack-start-server"
|
||||
size="large"
|
||||
type="outlined"
|
||||
>
|
||||
<button
|
||||
v-tooltip="formatMessage(messages.startServer)"
|
||||
type="button"
|
||||
@click="openModpackServerFlow"
|
||||
>
|
||||
<ServerIcon />
|
||||
{{ formatMessage(messages.startServer) }}
|
||||
</button>
|
||||
</ButtonStyled>
|
||||
</Transition>
|
||||
-->
|
||||
<ButtonStyled size="large" circular type="transparent">
|
||||
<OverflowMenu
|
||||
:tooltip="`More options`"
|
||||
@@ -339,7 +320,6 @@
|
||||
:translations="translations"
|
||||
:translation-mode="translationMode"
|
||||
:translation-style="translationStyle"
|
||||
:start-server="(version) => openModpackServerFlow(version)"
|
||||
/>
|
||||
</template>
|
||||
<template v-else> Project data couldn't not be loaded. </template>
|
||||
@@ -408,7 +388,6 @@ import {
|
||||
PlusIcon,
|
||||
ReportIcon,
|
||||
SearchIcon,
|
||||
ServerIcon,
|
||||
SpinnerIcon,
|
||||
StopCircleIcon,
|
||||
} from '@modrinth/assets'
|
||||
@@ -424,7 +403,6 @@ import {
|
||||
getLatestMatchingInstallVersion,
|
||||
getTargetInstallPreferences,
|
||||
injectNotificationManager,
|
||||
injectPopupNotificationManager,
|
||||
NavTabs,
|
||||
OverflowMenu,
|
||||
ProjectBackgroundGradient,
|
||||
@@ -501,7 +479,6 @@ import UpgradeProjectReturnBar from './UpgradeProjectReturnBar.vue'
|
||||
dayjs.extend(relativeTime)
|
||||
|
||||
const { addNotification, handleError } = injectNotificationManager()
|
||||
const popupNotificationManager = injectPopupNotificationManager()
|
||||
const { install: installVersion } = injectContentInstall()
|
||||
const contentSelection = injectContentSelection()
|
||||
const route = useRoute()
|
||||
@@ -603,22 +580,6 @@ const messages = defineMessages({
|
||||
id: 'project.actions.view-modpacks',
|
||||
defaultMessage: 'View modpacks',
|
||||
},
|
||||
startServer: {
|
||||
id: 'app.project.modpack-server.start',
|
||||
defaultMessage: 'Start server',
|
||||
},
|
||||
serverCreated: {
|
||||
id: 'app.project.modpack-server.created-title',
|
||||
defaultMessage: 'Server created',
|
||||
},
|
||||
serverCreatedDescription: {
|
||||
id: 'app.project.modpack-server.created-description',
|
||||
defaultMessage: '{name} is ready. Configure and start it in Multiplayer.',
|
||||
},
|
||||
openServer: {
|
||||
id: 'app.project.modpack-server.open',
|
||||
defaultMessage: 'Open server',
|
||||
},
|
||||
})
|
||||
|
||||
const { installingServerProjects, playServerProject, showAddServerToInstanceModal } =
|
||||
@@ -642,15 +603,6 @@ const favoriteSaved = computed(() =>
|
||||
data.value ? contentFavorites.isFavorite('modrinth', data.value.id) : false,
|
||||
)
|
||||
|
||||
const serverCapableModpack = computed(
|
||||
() => data.value?.project_type === 'modpack' && data.value.server_side !== 'unsupported',
|
||||
)
|
||||
|
||||
async function openModpackServerFlow() {
|
||||
// 服务器创建弹窗(CreateModpackServerModal)已在上游移除,此流程暂不可用。
|
||||
// 如需恢复:重新实现该组件,并在此处调用其 show() 方法。
|
||||
}
|
||||
|
||||
async function toggleFavorite() {
|
||||
if (!data.value || !favoriteSupported.value || favoritePending.value) return
|
||||
await contentFavorites
|
||||
|
||||
@@ -30,16 +30,6 @@
|
||||
<CheckIcon v-else />
|
||||
</button>
|
||||
</ButtonStyled>
|
||||
<!-- 开服功能暂有问题,隐藏该按钮
|
||||
<ButtonStyled v-if="serverCapable && startServer" circular type="transparent">
|
||||
<button
|
||||
v-tooltip="formatMessage(messages.startServer)"
|
||||
@click.stop="() => startServer(version)"
|
||||
>
|
||||
<ServerIcon />
|
||||
</button>
|
||||
</ButtonStyled>
|
||||
-->
|
||||
<ButtonStyled circular type="transparent">
|
||||
<OverflowMenu
|
||||
v-if="false"
|
||||
@@ -87,7 +77,6 @@ import {
|
||||
DownloadIcon,
|
||||
ExternalIcon,
|
||||
MoreVerticalIcon,
|
||||
ServerIcon,
|
||||
} from '@modrinth/assets'
|
||||
import {
|
||||
ButtonStyled,
|
||||
@@ -98,7 +87,7 @@ import {
|
||||
ProjectPageVersions,
|
||||
useVIntl,
|
||||
} from '@modrinth/ui'
|
||||
import { computed, ref } from 'vue'
|
||||
import { ref } from 'vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
|
||||
import { SwapIcon } from '@/assets/icons/index.js'
|
||||
@@ -117,10 +106,6 @@ const messages = defineMessages({
|
||||
id: 'app.project.versions.add-to-another-instance',
|
||||
defaultMessage: 'Add to another instance',
|
||||
},
|
||||
startServer: {
|
||||
id: 'app.project.versions.start-server',
|
||||
defaultMessage: 'Create server',
|
||||
},
|
||||
})
|
||||
|
||||
const props = defineProps({
|
||||
@@ -152,16 +137,8 @@ const props = defineProps({
|
||||
type: String,
|
||||
default: null,
|
||||
},
|
||||
startServer: {
|
||||
type: Function,
|
||||
default: null,
|
||||
},
|
||||
})
|
||||
|
||||
const serverCapable = computed(
|
||||
() => props.project?.project_type === 'modpack' && props.project?.server_side !== 'unsupported',
|
||||
)
|
||||
|
||||
const { handleError } = injectNotificationManager()
|
||||
const route = useRoute()
|
||||
|
||||
|
||||
Reference in new issue
Block a user