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) } }