|
8 | 8 | import type { Version, VersionDependency, VersionTarget } from '$lib/generated'; |
9 | 9 | import { T } from '@tolgee/svelte'; |
10 | 10 |
|
11 | | - type IVersion = Pick<Version, 'id' | 'link' | 'version' | 'created_at'> & { |
| 11 | + type IVersion = Pick<Version, 'id' | 'link' | 'version' | 'created_at' | 'required_on_remote'> & { |
12 | 12 | targets?: Pick<VersionTarget, 'targetName' | 'size' | 'hash'>[]; |
13 | 13 | } & { dependencies?: Pick<VersionDependency, 'mod_id' | 'optional' | 'condition'>[] }; |
14 | 14 |
|
|
27 | 27 | export let modReference!: string; |
28 | 28 |
|
29 | 29 | export const { t } = getTranslate(); |
| 30 | +
|
| 31 | + function formatRemote(targets: Pick<VersionTarget, 'targetName'>[]) { |
| 32 | + if (!Array.isArray(targets)) { |
| 33 | + return; |
| 34 | + } |
| 35 | +
|
| 36 | + const HasClient = targets.some((target) => target.targetName === 'Windows'); |
| 37 | + const HasServer = |
| 38 | + targets.some((target) => target.targetName === 'WindowsServer') || |
| 39 | + targets.some((target) => target.targetName === 'LinuxServer'); |
| 40 | +
|
| 41 | + if (HasClient && !HasServer) { |
| 42 | + return $t({ |
| 43 | + key: 'version.required_on_remote.client', |
| 44 | + defaultValue: `This mod is only required on the client to function, so no server builds are provided.` |
| 45 | + }); |
| 46 | + } else if (!HasClient && HasServer) { |
| 47 | + return $t({ |
| 48 | + key: 'version.required_on_remote.server', |
| 49 | + defaultValue: `This mod is only required on the server to function, so no client builds are provided.` |
| 50 | + }); |
| 51 | + } else if (HasClient && HasServer) { |
| 52 | + return $t({ |
| 53 | + key: 'version.required_on_remote.both', |
| 54 | + defaultValue: `This mod is only required on the server or the client to function, but not required on both. See mod page/documentation for details.` |
| 55 | + }); |
| 56 | + } |
| 57 | + } |
30 | 58 | </script> |
31 | 59 |
|
32 | 60 | <div class="card p-4"> |
|
62 | 90 | </a> |
63 | 91 | </div> |
64 | 92 | </div> |
| 93 | + {#if !latestVersions[stability].required_on_remote} |
| 94 | + <div class="grid grid-flow-row text-center"> |
| 95 | + {formatRemote(latestVersions[stability].targets ?? [])} |
| 96 | + </div> |
| 97 | + {/if} |
65 | 98 | <VersionTargetSupportGrid targets={latestVersions[stability].targets} /> |
66 | 99 | <VersionDependenciesGrid dependencies={latestVersions[stability].dependencies} /> |
67 | 100 | {/if} |
|
0 commit comments