29 lines
851 B
Go
29 lines
851 B
Go
package skills
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"git.yeij.top/AskaEth/Cyrene_v2/internal/capability/registry"
|
|
"git.yeij.top/AskaEth/Cyrene_v2/pkg/plugins/sdk"
|
|
)
|
|
|
|
// Register publishes list into reg as KindSkill capabilities so they become
|
|
// globally available to every character and mode. It returns ErrNilRegistrar
|
|
// when reg is nil, ErrInvalidSkill when a skill is nil, and the registry's error
|
|
// (for example registry.ErrDuplicate) on the first failed registration; earlier
|
|
// skills in list stay registered.
|
|
func Register(reg *registry.Registry, list ...sdk.Skill) error {
|
|
if reg == nil {
|
|
return ErrNilRegistrar
|
|
}
|
|
for _, s := range list {
|
|
if s == nil {
|
|
return fmt.Errorf("skills: register: %w", ErrInvalidSkill)
|
|
}
|
|
if err := reg.RegisterSkill(s); err != nil {
|
|
return fmt.Errorf("skills: register %q: %w", s.Name(), err)
|
|
}
|
|
}
|
|
return nil
|
|
}
|