```
feat(config): 增加服务器在线状态检测功能 - 在ServerEvent中添加OnlineID到日志输出 - 修改玩家宠物闪光逻辑,仅在ShinyInfo为空时添加新闪光信息 - 在server.go中增加PageQueryOp配置,实现服务器假踢人功能 - 添加在线状态检测逻辑,通过GetClient获取连接状态并更新服务器列表 - 引入context、g和gconv依赖包用于服务逻辑处理 ```
This commit is contained in:
@@ -77,7 +77,7 @@ func (s *Server) OnClose(c gnet.Conn, err error) (action gnet.Action) {
|
||||
return
|
||||
}
|
||||
func (s *Server) OnTick() (delay time.Duration, action gnet.Action) {
|
||||
glog.Info(context.Background(), gtime.Now().ISO8601(), "链接数", atomic.LoadInt64(&s.connected))
|
||||
glog.Info(context.Background(), gtime.Now().ISO8601(), cool.Config.ServerInfo.OnlineID, "链接数", atomic.LoadInt64(&s.connected))
|
||||
if s.quit && atomic.LoadInt64(&s.connected) == 0 {
|
||||
//执行正常退出逻辑
|
||||
os.Exit(0)
|
||||
|
||||
@@ -52,7 +52,7 @@ func (o *OgrePetInfo) RandSHiny() {
|
||||
co = config.NewShinyService().RandShiny(o.Id)
|
||||
}
|
||||
|
||||
if co != nil {
|
||||
if co != nil && len(o.ShinyInfo) == 0 {
|
||||
o.ShinyInfo = append(o.ShinyInfo, *co)
|
||||
}
|
||||
|
||||
|
||||
@@ -4,11 +4,14 @@ import (
|
||||
"blazing/cool"
|
||||
"blazing/modules/config/model"
|
||||
"bufio"
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
"sort"
|
||||
|
||||
"github.com/gogf/gf/v2/database/gdb"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
"github.com/qiniu/go-sdk/v7/auth/qbox"
|
||||
"github.com/qiniu/go-sdk/v7/storage"
|
||||
"golang.org/x/crypto/ssh"
|
||||
@@ -24,6 +27,29 @@ func NewServerService() *ServerService {
|
||||
cf := &ServerService{
|
||||
Service: &cool.Service{
|
||||
Model: model.NewServerList(),
|
||||
PageQueryOp: &cool.QueryOp{
|
||||
ModifyResult: func(ctx g.Ctx, data interface{}) interface{} {
|
||||
|
||||
r, _ := gconv.Map(data)["list"].(gdb.Result)
|
||||
for _, v := range r {
|
||||
t, ok := cool.GetClient(gconv.Uint16(v.Map()["online_id"]))
|
||||
|
||||
if ok {
|
||||
cool.Logger.Info(context.TODO(), "服务器假踢人")
|
||||
err := t.KickPerson(0) //实现指定服务器踢人
|
||||
|
||||
if err == nil {
|
||||
// tt.Friends = v.Friends
|
||||
v.GMap().Set("isonline", 1)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
return data
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
cfg := storage.Config{
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user