79 lines
1.8 KiB
Go
79 lines
1.8 KiB
Go
package backend
|
|
|
|
import (
|
|
"context"
|
|
"net"
|
|
"server/conf"
|
|
"server/game"
|
|
"server/msg"
|
|
|
|
"gitea.bywaystudios.com/pet_home/leaf/log"
|
|
|
|
"google.golang.org/grpc"
|
|
)
|
|
|
|
type backendServer struct {
|
|
msg.UnimplementedBackendServer
|
|
}
|
|
|
|
func (s *backendServer) ReloadActivity(ctx context.Context, req *msg.ReqActivityCfgReload) (*msg.ResActivityCfgReload, error) {
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
log.Error("ReloadActivity panic: %v", r)
|
|
}
|
|
}()
|
|
log.Debug("Received ReloadActivity request: %v", req)
|
|
game.AcitivityCfgReload()
|
|
return nil, nil
|
|
}
|
|
|
|
func (s *backendServer) OrderShipping(ctx context.Context, req *msg.ReqOrderShipping) (*msg.ResOrderShipping, error) {
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
log.Error("OrderShipping panic: %v", r)
|
|
}
|
|
}()
|
|
log.Debug("Received OrderShipping request: %v", req)
|
|
res, err := game.AdminShipping(req)
|
|
if err != nil {
|
|
log.Error("OrderShipping error: %v", err)
|
|
return nil, err
|
|
}
|
|
return res, nil
|
|
}
|
|
|
|
func (s *backendServer) UserDetail(ctx context.Context, req *msg.UserDetailParam) (*msg.ResUserDetail, error) {
|
|
defer func() {
|
|
if r := recover(); r != nil {
|
|
log.Error("UserDetail panic: %v", r)
|
|
}
|
|
}()
|
|
log.Debug("Received UserDetail request: %v", req)
|
|
res, err := game.AdminPlayerDetailInfo(req)
|
|
if err != nil {
|
|
log.Error("UserDetail error: %v", err)
|
|
return nil, err
|
|
}
|
|
return res, nil
|
|
}
|
|
|
|
func Start() {
|
|
if conf.Server.RPCAddr == "" {
|
|
log.Debug("RPC server address not configured, skipping gRPC server startup")
|
|
return
|
|
}
|
|
lis, err := net.Listen("tcp", conf.Server.RPCAddr)
|
|
if err != nil {
|
|
log.Error("failed to listen: %v", err)
|
|
return
|
|
}
|
|
|
|
s := grpc.NewServer()
|
|
msg.RegisterBackendServer(s, &backendServer{})
|
|
|
|
log.Debug("gRPC server listening on %s", conf.Server.RPCAddr)
|
|
if err := s.Serve(lis); err != nil {
|
|
log.Error("server exited with error: %v", err)
|
|
}
|
|
}
|