{#snippet actions()}
addOpen = true}>Add plugin
{/snippet}
{#if importComplete}
{importComplete.alreadyImported ? 'This plugin version was already imported.' : 'Plugin imported.'}
View version
·
Start beta
{/if} {#if successBanner}
{artifactVersionLabel(successBanner)} of "{successBanner.name}" uploaded — untested.
Review the version and start a beta
{/if} {#if flash && !addOpen}
{flash}
Retry
{/if} {#if loading || plugins.length || flash}
All games
Black Ops I
Black Ops II
All statuses
Needs testing
Beta active
Test failed
Test passed
Promoted
Name A–Z
Recently uploaded
{/if} {#if game}
Game results include unscoped plugins that can use explicitly selected beta servers.
{/if} {#if plugins.length}
updatesOpen = event.currentTarget.open}>
Check plugin updates
{#if updatesOpen}{#key importCount}
{/key}{/if}
{/if}
All plugins
{plugins.length}
{#if loading}
Loading…
{:else if visible.length === 0 && !flash}
{:else}
{#each visible.slice(0,limit) as a (a.id)}
{a.name}
{scopeLabel(a)}
{a.target_rel_path}
{a.currentVersion ? `Promoted ${artifactVersionLabel(a.currentVersion)}` : 'Never promoted'}
Latest {artifactVersionLabel(a.latestVersion)} · {a.versionCount} version{a.versionCount === 1 ? '' : 's'}
{#if a.servers.length}
{a.servers.length} matching server{a.servers.length === 1 ? '' : 's'}
{/if}
{/each}
{/if}
{#if method === 'github'}
{ importComplete = result; importCount++; addOpen = false; await load(); }} /> {:else}
{#if newScopeType === 'game' || newScopeType === 'map'}
newScopeMap = ''} options={gameOptions} disabled={uploading} /> {/if} {#if newScopeType === 'map'}
{/if}
Upload plugin
{#if flash}
{flash}
{/if}
{/if}