feat: handle geyser extension (#5582)
* feat: add geyser extension detection * feat: only show geyser if inferred
This commit is contained in:
@@ -45,9 +45,10 @@ import { Chips, FormattedTag, TagItem } from '@modrinth/ui'
|
|||||||
|
|
||||||
const selectedLoaders = defineModel<string[]>({ default: [] })
|
const selectedLoaders = defineModel<string[]>({ default: [] })
|
||||||
|
|
||||||
const { loaders } = defineProps<{
|
const { loaders, includeGeyser } = defineProps<{
|
||||||
loaders: Labrinth.Tags.v2.Loader[]
|
loaders: Labrinth.Tags.v2.Loader[]
|
||||||
toggleLoader: (loader: string) => void
|
toggleLoader: (loader: string) => void
|
||||||
|
includeGeyser?: boolean
|
||||||
}>()
|
}>()
|
||||||
|
|
||||||
const loaderGroup = ref<GroupLabels>('mods')
|
const loaderGroup = ref<GroupLabels>('mods')
|
||||||
@@ -92,7 +93,7 @@ function groupLoaders(loaders: Labrinth.Tags.v2.Loader[]) {
|
|||||||
'bungeecord',
|
'bungeecord',
|
||||||
'velocity',
|
'velocity',
|
||||||
'waterfall',
|
'waterfall',
|
||||||
'geyser',
|
...(includeGeyser ? ['geyser'] : []),
|
||||||
]
|
]
|
||||||
|
|
||||||
const SHADER_SORT = ['optifine', 'iris', 'canvas', 'vanilla']
|
const SHADER_SORT = ['optifine', 'iris', 'canvas', 'vanilla']
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
v-model="draftVersion.loaders"
|
v-model="draftVersion.loaders"
|
||||||
:loaders="generatedState.loaders"
|
:loaders="generatedState.loaders"
|
||||||
:toggle-loader="toggleLoader"
|
:toggle-loader="toggleLoader"
|
||||||
|
:include-geyser="includeGeyser"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div v-if="draftVersion.loaders.length" class="space-y-1">
|
<div v-if="draftVersion.loaders.length" class="space-y-1">
|
||||||
@@ -52,7 +53,9 @@ const generatedState = useGeneratedState()
|
|||||||
|
|
||||||
const loaders = computed(() => generatedState.value.loaders)
|
const loaders = computed(() => generatedState.value.loaders)
|
||||||
|
|
||||||
const { draftVersion } = injectManageVersionContext()
|
const { draftVersion, inferredVersionData } = injectManageVersionContext()
|
||||||
|
|
||||||
|
const includeGeyser = computed(() => inferredVersionData.value?.loaders?.includes('geyser'))
|
||||||
|
|
||||||
const toggleLoader = (loader: string) => {
|
const toggleLoader = (loader: string) => {
|
||||||
if (draftVersion.value.loaders.includes(loader)) {
|
if (draftVersion.value.loaders.includes(loader)) {
|
||||||
|
|||||||
@@ -236,6 +236,17 @@ export function createLoaderParsers(
|
|||||||
loaders: ['sponge'],
|
loaders: ['sponge'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
// Geyser Extensions
|
||||||
|
'extension.yml': (file: string): InferredVersionInfo => {
|
||||||
|
const metadata = yaml.load(file) as any
|
||||||
|
|
||||||
|
return {
|
||||||
|
name: metadata.version ? `${project.title} ${metadata.version}` : '',
|
||||||
|
version_number: metadata.version,
|
||||||
|
version_type: versionType(metadata.version),
|
||||||
|
loaders: ['geyser'],
|
||||||
|
}
|
||||||
|
},
|
||||||
// Modpacks
|
// Modpacks
|
||||||
'modrinth.index.json': (file: string): InferredVersionInfo => {
|
'modrinth.index.json': (file: string): InferredVersionInfo => {
|
||||||
const metadata = JSON.parse(file) as any
|
const metadata = JSON.parse(file) as any
|
||||||
|
|||||||
Reference in New Issue
Block a user