Interfaccia per la gestione dei plugin in ShogunCore

interface PluginManager {
    checkPluginCompatibility(): {
        compatible: { name: string; version: string }[];
        incompatible: { name: string; reason: string; version: string }[];
        unknown: { name: string; version: string }[];
    };
    getPlugin<T = ShogunPlugin>(name: string): undefined | T;
    getPluginCount(): number;
    getPluginsByCategory(category: PluginCategory): ShogunPlugin[];
    getPluginsInfo(): {
        category?: PluginCategory;
        description?: string;
        name: string;
        version: string;
    }[];
    getPluginsInitializationStatus(): Record<
        string,
        { error?: string; initialized: boolean },
    >;
    getPluginSystemDebugInfo(): {
        compatibility: {
            compatible: { name: string; version: string }[];
            incompatible: { name: string; reason: string; version: string }[];
            unknown: { name: string; version: string }[];
        };
        initializationStatus: Record<
            string,
            { error?: string; initialized: boolean },
        >;
        plugins: {
            category?: PluginCategory;
            description?: string;
            error?: string;
            initialized: boolean;
            name: string;
            version: string;
        }[];
        shogunCoreVersion: string;
        totalPlugins: number;
        validation: {
            failedPlugins: string[];
            initializedPlugins: number;
            totalPlugins: number;
            warnings: string[];
        };
    };
    hasPlugin(name: string): boolean;
    register(plugin: ShogunPlugin): void;
    reinitializeFailedPlugins(): {
        failed: { error: string; name: string }[];
        success: string[];
    };
    unregister(pluginName: string): void;
    validatePluginSystem(): {
        failedPlugins: string[];
        initializedPlugins: number;
        totalPlugins: number;
        warnings: string[];
    };
}

Hierarchy (View Summary)

Methods

  • Verifica la compatibilità dei plugin con la versione corrente di ShogunCore

    Returns {
        compatible: { name: string; version: string }[];
        incompatible: { name: string; reason: string; version: string }[];
        unknown: { name: string; version: string }[];
    }

    Oggetto con informazioni sulla compatibilità

  • Recupera un plugin registrato per nome

    Type Parameters

    • T = ShogunPlugin

      Tipo del plugin o dell'interfaccia pubblica del plugin

    Parameters

    • name: string

      Nome del plugin

    Returns undefined | T

    Il plugin richiesto o undefined se non trovato

  • Ottiene il numero totale di plugin registrati

    Returns number

    Numero di plugin registrati

  • Ottiene informazioni su tutti i plugin registrati

    Returns {
        category?: PluginCategory;
        description?: string;
        name: string;
        version: string;
    }[]

    Array di oggetti con informazioni sui plugin

  • Verifica se tutti i plugin sono inizializzati correttamente

    Returns Record<string, { error?: string; initialized: boolean }>

    Oggetto con stato di inizializzazione per ogni plugin

  • Ottiene informazioni complete di debug sul sistema di plugin

    Returns {
        compatibility: {
            compatible: { name: string; version: string }[];
            incompatible: { name: string; reason: string; version: string }[];
            unknown: { name: string; version: string }[];
        };
        initializationStatus: Record<
            string,
            { error?: string; initialized: boolean },
        >;
        plugins: {
            category?: PluginCategory;
            description?: string;
            error?: string;
            initialized: boolean;
            name: string;
            version: string;
        }[];
        shogunCoreVersion: string;
        totalPlugins: number;
        validation: {
            failedPlugins: string[];
            initializedPlugins: number;
            totalPlugins: number;
            warnings: string[];
        };
    }

    Informazioni complete di debug del sistema di plugin

  • Verifica se un plugin è registrato

    Parameters

    • name: string

      Nome del plugin da verificare

    Returns boolean

    true se il plugin è registrato, false altrimenti

  • Registra un nuovo plugin

    Parameters

    Returns void

  • Tenta di reinizializzare i plugin falliti

    Returns { failed: { error: string; name: string }[]; success: string[] }

    Oggetto con risultati della reinizializzazione

  • Cancella la registrazione di un plugin

    Parameters

    • pluginName: string

      Nome del plugin da cancellare

    Returns void

  • Valida l'integrità del sistema di plugin

    Returns {
        failedPlugins: string[];
        initializedPlugins: number;
        totalPlugins: number;
        warnings: string[];
    }

    Oggetto con risultati della validazione