mirror of
https://github.com/modrinth/code.git
synced 2026-08-31 03:55:59 +00:00
feat: start on content tab env focused design
This commit is contained in:
@@ -105,6 +105,57 @@ export class ArchonContentV1Module extends AbstractModule {
|
||||
})
|
||||
}
|
||||
|
||||
/** POST /v1/:server_id/worlds/:world_id/addons/set-enabled-server */
|
||||
public async setAddonEnabledServer(
|
||||
serverId: string,
|
||||
worldId: string,
|
||||
request: Archon.Content.v1.SetAddonEnabledRequest,
|
||||
): Promise<void> {
|
||||
await this.client.request<void>(
|
||||
`/servers/${serverId}/worlds/${worldId}/addons/set-enabled-server`,
|
||||
{
|
||||
api: 'archon',
|
||||
version: 1,
|
||||
method: 'POST',
|
||||
body: request,
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
/** POST /v1/:server_id/worlds/:world_id/addons/set-enabled-player */
|
||||
public async setAddonEnabledPlayer(
|
||||
serverId: string,
|
||||
worldId: string,
|
||||
request: Archon.Content.v1.SetAddonEnabledRequest,
|
||||
): Promise<void> {
|
||||
await this.client.request<void>(
|
||||
`/servers/${serverId}/worlds/${worldId}/addons/set-enabled-player`,
|
||||
{
|
||||
api: 'archon',
|
||||
version: 1,
|
||||
method: 'POST',
|
||||
body: request,
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
/** POST /v1/:server_id/worlds/:world_id/addons/set-locked-side-toggle */
|
||||
public async setAddonSideToggleLocked(
|
||||
serverId: string,
|
||||
worldId: string,
|
||||
request: Archon.Content.v1.SetAddonSideToggleLockedRequest,
|
||||
): Promise<void> {
|
||||
await this.client.request<void>(
|
||||
`/servers/${serverId}/worlds/${worldId}/addons/set-locked-side-toggle`,
|
||||
{
|
||||
api: 'archon',
|
||||
version: 1,
|
||||
method: 'POST',
|
||||
body: request,
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
/** POST /v1/:server_id/worlds/:world_id/addons/delete-many */
|
||||
public async deleteAddons(
|
||||
serverId: string,
|
||||
|
||||
@@ -301,6 +301,25 @@ export namespace Archon {
|
||||
environment?: Labrinth.Projects.v3.Environment | null
|
||||
}
|
||||
|
||||
export type AddonManifestEnvironment =
|
||||
| 'client_and_server'
|
||||
| 'client_only'
|
||||
| 'dedicated_server_only'
|
||||
|
||||
export type AddonManifestWarnings = {
|
||||
multiple_mod_entries: number | null
|
||||
malformed: boolean
|
||||
}
|
||||
|
||||
export type AddonManifest = {
|
||||
platform: Modloader
|
||||
name: string | null
|
||||
version: string | null
|
||||
environment: AddonManifestEnvironment | null
|
||||
icon_embedded: boolean
|
||||
warnings: AddonManifestWarnings
|
||||
}
|
||||
|
||||
export type AddonStatus =
|
||||
| 'pending'
|
||||
| 'installed'
|
||||
@@ -316,6 +335,10 @@ export namespace Archon {
|
||||
filesize: number
|
||||
btime?: string
|
||||
disabled: boolean
|
||||
disabled_server: boolean
|
||||
disabled_player: boolean
|
||||
side_toggle_unlocked: boolean
|
||||
manifest: AddonManifest | null
|
||||
kind: AddonKind
|
||||
from_modpack: boolean
|
||||
status: AddonStatus
|
||||
@@ -354,6 +377,14 @@ export namespace Archon {
|
||||
filename: string
|
||||
}
|
||||
|
||||
export type SetAddonEnabledRequest = RemoveAddonRequest & {
|
||||
enabled: boolean
|
||||
}
|
||||
|
||||
export type SetAddonSideToggleLockedRequest = RemoveAddonRequest & {
|
||||
locked: boolean
|
||||
}
|
||||
|
||||
export type UpdateAddonRequest = {
|
||||
filename: string
|
||||
version_id?: string | null
|
||||
@@ -1063,6 +1094,7 @@ export namespace Archon {
|
||||
project_id: string | null
|
||||
pack_client_retained: boolean
|
||||
pack_client_depends: boolean
|
||||
manifest?: Archon.Content.v1.AddonManifest | null
|
||||
status: Archon.Content.v1.AddonStatus
|
||||
filesize: number | null
|
||||
name: string | null
|
||||
|
||||
@@ -7,6 +7,24 @@ export class KyrosContentV1Module extends AbstractModule {
|
||||
return 'kyros_content_v1'
|
||||
}
|
||||
|
||||
/** GET /v1/worlds/:world_id/content/embedded-icon */
|
||||
public async getEmbeddedAddonIcon(
|
||||
worldId: string,
|
||||
parentDirectory: 'mods' | 'plugins',
|
||||
filename: string,
|
||||
): Promise<Blob> {
|
||||
return this.client.request<Blob>(`/worlds/${worldId}/content/embedded-icon`, {
|
||||
api: '',
|
||||
version: 'v1',
|
||||
method: 'GET',
|
||||
params: {
|
||||
parent_directory: parentDirectory,
|
||||
filename,
|
||||
},
|
||||
useNodeAuth: true,
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* Upload addon files to a world via multipart form data
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user