diff --git a/common/utils/help.go b/common/utils/help.go index b35cf44be..3f0ed8110 100644 --- a/common/utils/help.go +++ b/common/utils/help.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "math/rand/v2" + "strings" "time" "github.com/gogf/gf/v2/os/gtime" @@ -167,3 +168,12 @@ func IsCurrentTimeInRange(startStr, endStr string) (bool, error) { // 3. 比较当前时间是否在 [startToday, endToday] 区间内 return now.After(startToday) && now.Before(endToday), nil } + +// Format 把 args 按顺序填入 {0},{1},{2}... +func Format(s string, args ...interface{}) string { + for i, arg := range args { + placeholder := "{" + string(rune('0'+i)) + "}" + s = strings.ReplaceAll(s, placeholder, gconv.String(arg)) + } + return s +} diff --git a/modules/config/controller/robot/boss.go b/modules/config/controller/robot/boss.go new file mode 100644 index 000000000..3a3943928 --- /dev/null +++ b/modules/config/controller/robot/boss.go @@ -0,0 +1,43 @@ +package robot + +import ( + "blazing/common/data/xmlres" + "blazing/modules/config/service" + "strings" + + "github.com/gogf/gf/v2/util/gconv" + zero "github.com/wdvxdr1123/ZeroBot" +) + +func init() { + zero.OnCommand("勇者"). + Handle(func(ctx *zero.Ctx) { + msgs := strings.Fields(ctx.Event.Message.String()) + //eids := dict.NewDictInfoService().GetData("eid") + + if len(msgs) > 1 { + count := gconv.Uint32(msgs[1]) + if count != 0 { + var cdks []string + r := service.NewTower500Service().Boss(count) //获取第一个配置,因为塔只绑定一组boss,bossid也是0 + if len(r) > 0 { + var buf strings.Builder + for _, v := range service.NewBossService().Get(r[0].BossIds[0]) { + buf.WriteString(xmlres.PetMAP[int(v.MonID)].DefName + "\n") + + for _, effs := range service.NewEffectService().Args(v.Effect) { + + buf.WriteString(effs.Desc + "\n") + } + cdks = append(cdks, buf.String()) + + } + } + + ctx.Send(strings.Join(cdks, "\n")) + } + + } + + }) +}