Skip to content

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:

go
var _ goroku.ModuleWithConfigSchema = (*Weather)(nil)

ModuleWithMeta ​

go
CommandMetas() map[string]CommandMeta

Aliase und Filter pro Befehl. Siehe CommandMeta.

ModuleWithWatcherMetas ​

go
WatcherMetas() []CommandMeta

Filter für Watcher, positionsweise zu Watchers() zugeordnet.

ModuleWithConfigSchema ​

go
ConfigSchema() []ConfigField

Typisierte Einstellungen mit Standardwerten und Validierung. Die bevorzugte Konfigurationsfläche. Siehe ConfigField.

ModuleWithConfigReady ​

go
ConfigReady(config map[string]any) error

Wird beim Start und bei jeder Änderung aufgerufen. Ein zurückgegebener Fehler lehnt die Änderung ab.

ModuleWithConfig ​

go
ConfigDefaults() map[string]any

Ältere, untypisierte Konfigurationsfläche. Bevorzuge ConfigSchema.

ModuleWithConfigValidators ​

go
ConfigValidators() map[string]Validator

Validatoren für ConfigDefaults. Mit ConfigSchema unnötig — das bringt seine eigenen mit.

ModuleWithTranslationAliases ​

go
TranslationAliases() []string

Zusätzliche Namen beim Auflösen von Übersetzungsschlüsseln, für Module, deren Übersetzungsdateien einen Namen nutzen, der sich nicht aus Name() ableitet.

go
func (m *APIProtection) Name() string { return "APILimiter" }
func (m *APIProtection) TranslationAliases() []string {
	return []string{"api_protection"}
}

ModuleWithAllModules ​

go
SetAllModules(*Modules)

Erhält die Modul-Registry, für Module, die andere Module inspizieren oder steuern — Hilfe, Konfigurationsoberfläche, Loader.

ModuleWithTranslator ​

go
SetTranslator(*Translator)

Erhält einen Übersetzer. Beim Einbetten von Base unnötig, das hat bereits einen.

SecuredModule ​

go
CommandPermissions() map[string]int

Standard-Berechtigungsmasken pro Befehl. Siehe Berechtigungen.

RatelimitedModule ​

go
RatelimitedCommands() map[string]bool

Ratenlimitierte Befehle. Entspricht Ratelimit: true in CommandMeta.

Released under the GNU AGPL v3 License.