plugin.go 921 Bytes
// plugin 热更插件
package main

import (
	"github.com/golang/protobuf/proto"
	"pro2d/common/components"
	"pro2d/common/logger"
	"pro2d/models"
	"pro2d/pb"
)

func init() {
	logger.Debug("init game server plugin")
}

func GetActionMap() map[interface{}]interface{} {
	logger.Debug("init protocode...")
	am := make(map[interface{}]interface{})
	am[uint32(pb.ProtoCode_LoginRsp)] = LoginRpc

	return am
}

func LoginRpc(msg components.IMessage) (int32, interface{}) {
	logger.Debug("11111111cmd: %v, msg: %s", msg.GetHeader().GetMsgID(), msg.GetData())
	req := pb.LoginReq{}
	if err := proto.Unmarshal(msg.GetData(), &req); err != nil {
		logger.Error("loginRpc err: %v", err)
		return 1, nil
	}

	role := models.RoleExistByUid(req.Token)
	if role == nil {
		return 2, nil
	}
	role.SetProperty("Device", req.Device)

	return 0, &pb.RoleRsp{
		Role: role.Data,
		Hero: role.GetAllHero(),
		Team: role.GetAllTeam(),
	}
}