new:MCP及openapi新增技能特殊属性查询
This commit is contained in:
@@ -68,18 +68,45 @@ func (s *OpenAPIService) JobsInfo(jobName string) ([]map[string]string, error) {
|
||||
return result, nil
|
||||
}
|
||||
|
||||
func (s *OpenAPIService) SkillsByJob(jobID string, jobGrowID string) (any, error) {
|
||||
func (s *OpenAPIService) SkillsByJob(jobID string, jobGrowID string, descSpecial string) (any, error) {
|
||||
jobDir, jobGrowDir, err := s.adventure.ResolveDirectories(jobID, jobGrowID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var data any
|
||||
var data []map[string]any
|
||||
path := filepath.Join(s.projectRoot, "openapi", "data", jobDir, jobGrowDir, "cn", "skill_tree.json")
|
||||
if err := s.readJSON(path, &data); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return data, nil
|
||||
detailDir := filepath.Join(s.projectRoot, "openapi", "data", jobDir, jobGrowDir, "cn", "skillDetail")
|
||||
for _, skill := range data {
|
||||
skillID, _ := skill["skillId"].(string)
|
||||
var detail map[string]any
|
||||
if skillID != "" {
|
||||
err := s.readJSON(filepath.Join(detailDir, skillID+".json"), &detail)
|
||||
if err != nil && !os.IsNotExist(err) {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
skill["descSpecial"] = detail["descSpecial"]
|
||||
}
|
||||
if descSpecial == "" {
|
||||
return data, nil
|
||||
}
|
||||
|
||||
filtered := make([]map[string]any, 0)
|
||||
for _, skill := range data {
|
||||
items, _ := skill["descSpecial"].([]any)
|
||||
for _, item := range items {
|
||||
text, _ := item.(string)
|
||||
if strings.Contains(text, descSpecial) {
|
||||
filtered = append(filtered, skill)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
return filtered, nil
|
||||
}
|
||||
|
||||
func (s *OpenAPIService) SkillDetail(jobID string, jobGrowID string, skillID string, level *int) (any, error) {
|
||||
|
||||
Reference in New Issue
Block a user