Optionale Interfaces
Neben Module prüft Goroku bei der Registrierung auf diese. Deklariere die Methode, und die Fähigkeit schaltet sich ein; lass sie weg, und nichts passiert.
Zur Compilezeit absichern
Ein optionales Interface wird über die Form erkannt. Ein Tippfehler in der Signatur bedeutet, dass deine Methode still ignoriert wird. Eine Zeile verhindert das:
var _ goroku.ModuleWithConfigSchema = (*Weather)(nil)ModuleWithMeta
CommandMetas() map[string]CommandMetaAliase und Filter pro Befehl. Siehe CommandMeta.
ModuleWithWatcherMetas
WatcherMetas() []CommandMetaFilter für Watcher, positionsweise zu Watchers() zugeordnet.
ModuleWithConfigSchema
ConfigSchema() []ConfigFieldTypisierte Einstellungen mit Standardwerten und Validierung. Die bevorzugte Konfigurationsfläche. Siehe ConfigField.
ModuleWithConfigReady
ConfigReady(config map[string]any) errorWird beim Start und bei jeder Änderung aufgerufen. Ein zurückgegebener Fehler lehnt die Änderung ab.
ModuleWithConfig
ConfigDefaults() map[string]anyÄltere, untypisierte Konfigurationsfläche. Bevorzuge ConfigSchema.
ModuleWithConfigValidators
ConfigValidators() map[string]ValidatorValidatoren für ConfigDefaults. Mit ConfigSchema unnötig — das bringt seine eigenen mit.
ModuleWithTranslationAliases
TranslationAliases() []stringZusätzliche Namen beim Auflösen von Übersetzungsschlüsseln, für Module, deren Übersetzungsdateien einen Namen nutzen, der sich nicht aus Name() ableitet.
func (m *APIProtection) Name() string { return "APILimiter" }
func (m *APIProtection) TranslationAliases() []string {
return []string{"api_protection"}
}ModuleWithAllModules
SetAllModules(*Modules)Erhält die Modul-Registry, für Module, die andere Module inspizieren oder steuern — Hilfe, Konfigurationsoberfläche, Loader.
ModuleWithTranslator
SetTranslator(*Translator)Erhält einen Übersetzer. Beim Einbetten von Base unnötig, das hat bereits einen.
SecuredModule
CommandPermissions() map[string]intStandard-Berechtigungsmasken pro Befehl. Siehe Berechtigungen.
RatelimitedModule
RatelimitedCommands() map[string]boolRatenlimitierte Befehle. Entspricht Ratelimit: true in CommandMeta.