feat: 添加野怪查询指令及支持服务
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
All checks were successful
ci/woodpecker/push/my-first-workflow Pipeline was successful
This commit is contained in:
41
modules/config/controller/robot/mappit.go
Normal file
41
modules/config/controller/robot/mappit.go
Normal file
@@ -0,0 +1,41 @@
|
||||
package robot
|
||||
|
||||
import (
|
||||
"blazing/modules/config/service"
|
||||
dict "blazing/modules/dict/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())
|
||||
maps := dict.NewDictInfoService().GetData("mapid")
|
||||
pets := dict.NewDictInfoService().GetNameData("pet")
|
||||
|
||||
if len(msgs) > 1 {
|
||||
var count uint32 = 0
|
||||
t, ok := pets[msgs[1]]
|
||||
if ok {
|
||||
count = uint32(t.Value)
|
||||
} else {
|
||||
count = gconv.Uint32(msgs[1])
|
||||
}
|
||||
if count != 0 {
|
||||
var cdks []string
|
||||
for _, v := range service.NewMapPitService().GetPet(count) {
|
||||
|
||||
cdks = append(cdks, gconv.String(maps[uint32(v.MapID)].Name))
|
||||
|
||||
}
|
||||
|
||||
ctx.Send(strings.Join(cdks, "\n"))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
}
|
||||
@@ -37,3 +37,12 @@ func (s *MapPitService) GetDataALL(mapid uint32) []model.MapPit {
|
||||
return pet
|
||||
|
||||
}
|
||||
|
||||
func (s *MapPitService) GetPet(petid uint32) []model.MapPit {
|
||||
|
||||
var pet []model.MapPit //一个特性应该是唯一的,但是我们要获取默认随机特性
|
||||
dbm_enable(s.Model).Wheref(`refresh_id @> ARRAY[?]::integer[]`, petid).Scan(&pet)
|
||||
|
||||
return pet
|
||||
|
||||
}
|
||||
|
||||
@@ -91,6 +91,38 @@ func (s *DictInfoService) GetData(types string) (data map[uint32]model.DictInfo)
|
||||
})
|
||||
return fusions
|
||||
|
||||
}
|
||||
func (s *DictInfoService) GetNameData(types string) (data map[string]model.DictInfo) {
|
||||
var (
|
||||
dictInfoModel = model.NewDictInfo()
|
||||
dictTypeModel = model.NewDictType()
|
||||
)
|
||||
// 如果typeData为空, 则返回空
|
||||
var ty *model.DictType
|
||||
mType := cool.DBM(dictTypeModel)
|
||||
mType.Where("key in (?)", types).Cache(gdb.CacheOption{
|
||||
// Duration: time.Hour,
|
||||
|
||||
Force: false,
|
||||
}).Scan(&ty)
|
||||
|
||||
// 如果typeData为空, 则返回空
|
||||
if ty == nil {
|
||||
return nil
|
||||
}
|
||||
m := cool.DBM(dictInfoModel)
|
||||
var ress []model.DictInfo
|
||||
m.Where("typeId", ty.ID).Cache(gdb.CacheOption{
|
||||
// Duration: time.Hour,
|
||||
|
||||
Force: false,
|
||||
}).Scan(&ress)
|
||||
fusions := utils.ToMap(ress, func(t model.DictInfo) string {
|
||||
|
||||
return t.Name //物品id转id
|
||||
})
|
||||
return fusions
|
||||
|
||||
}
|
||||
|
||||
// 获取物品的最大数限制
|
||||
|
||||
Reference in New Issue
Block a user