Files
bl/common/socket/kick.go
昔念 32f57732fe ```
refactor(common/cool/coolconfig): 修改RPC配置字段类型

将RPC字段从uint16类型更改为string类型的Address字段,
以支持更灵活的地址配置。同时更新了配置初始化逻辑,
从server.rpc改为server.address作为配置键。
```
2026-01-25 03:40:29 +08:00

60 lines
1.0 KiB
Go

package socket
import (
"blazing/cool"
"blazing/logic/service/player"
"context"
"fmt"
"time"
)
type Broadcast struct {
Name string
}
func (s *Server) Broadcast(t string) int {
cool.Logger.Info(context.TODO(), "全服广播", t)
var count int
player.Mainplayer.Range(func(key uint32, value *player.Player) bool {
count++
value.SendPackCmd(50003, &Broadcast{
Name: t,
})
return true
})
return count
}
func (s *Server) KickPerson(a int) error {
cool.Logger.Info(context.TODO(), "检测到踢人请求", a)
if a == 0 {
return nil
}
return player.KickPlayer(uint32(a))
}
// 参数不为0是强制踢出
func (s *Server) QuitSelf(a int) error {
//TODO 这里待退出
fmt.Println("检测到退出请求")
s.quit = true
if a != 0 {
player.Mainplayer.Range(func(key uint32, value *player.Player) bool {
value.Kick(1)
return true
})
} else {
go func() {
<-time.After(10 * time.Minute)
player.Mainplayer.Range(func(key uint32, value *player.Player) bool {
value.Kick(1)
return true
})
}()
}
return nil
}