Commit c2791869a590be1194c76ea3640d5f3dcdaeb815
1 parent
e448498a
fix: gm增加删除装备删除物品接口
Showing
6 changed files
with
150 additions
and
53 deletions
Show diff stats
cmd/gameserver/action/GmAction.go
1 | package action | 1 | package action |
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | + "github.com/golang/protobuf/proto" | ||
5 | + "pro2d/common/db/mongoproxy" | ||
4 | "pro2d/common/logger" | 6 | "pro2d/common/logger" |
5 | "pro2d/models" | 7 | "pro2d/models" |
6 | "pro2d/pb" | 8 | "pro2d/pb" |
@@ -10,28 +12,51 @@ import ( | @@ -10,28 +12,51 @@ import ( | ||
10 | type GmAction struct { | 12 | type GmAction struct { |
11 | } | 13 | } |
12 | 14 | ||
13 | -func (gm *GmAction) AddExp(role *models.RoleModel, properties map[string]interface{}) int { | ||
14 | - logger.Debug(properties) | ||
15 | - exp, _ := strconv.Atoi(properties["exp"].(string)) | ||
16 | - role.IncrPropertyChan("exp", int64(exp), true) | ||
17 | - return 0 | 15 | +func (gm *GmAction) AddExp(role *models.RoleModel, params ...interface{}) { |
16 | + logger.Debug(params) | ||
17 | + expIncrease, _ := strconv.Atoi(params[0].(string)) | ||
18 | + exp := role.IncrProperty("exp", int64(expIncrease)) | ||
19 | + role.UpdateProperty("exp", exp, true) | ||
18 | } | 20 | } |
19 | 21 | ||
20 | -func (gm *GmAction) AddEquip(role *models.RoleModel, properties map[string]interface{}) int { | ||
21 | - logger.Debug(properties) | 22 | +func (gm *GmAction) AddEquip(role *models.RoleModel, params ...interface{}) { |
23 | + logger.Debug(params) | ||
24 | + //TODO 验证装备是否存在 | ||
25 | + | ||
22 | equip := &pb.Equipment{ | 26 | equip := &pb.Equipment{ |
23 | - Id: role.IncreEquipByKey(1), | ||
24 | - RoleId: role.Role.Id, | ||
25 | - Type: properties["id"].(string), | 27 | + Id: role.IncreEquipByKey(1), |
28 | + RoleId: role.Role.Id, | ||
29 | + Type: params[0].(string), | ||
30 | + Quality: 1, | ||
26 | } | 31 | } |
27 | - //TODO 验证装备是否存在 | 32 | + role.AddEquip(equip) |
33 | +} | ||
28 | 34 | ||
29 | - if role.GetConn() != nil { | ||
30 | - role.GetConn().CustomChan() <- func() { | ||
31 | - role.AddEquip(equip) | ||
32 | - } | 35 | +func (gm *GmAction) DelEquip(role *models.RoleModel, params ...interface{}) { |
36 | + logger.Debug(params) | ||
37 | + id := params[0].(string) | ||
38 | + if err := mongoproxy.DelOne("equip", "id", id); err != nil { | ||
39 | + logger.Error(err.Error()) | ||
40 | + return | ||
41 | + } | ||
42 | + delete(role.Equipments, id) | ||
43 | + update := &pb.EquipmentDelRsp{Id: id} | ||
44 | + if rsp, err := proto.Marshal(update); err != nil { | ||
45 | + logger.Error(" err:", err.Error()) | ||
46 | + return | ||
33 | } else { | 47 | } else { |
34 | - role.AddEquip(equip) | 48 | + if role.GetConn() != nil { |
49 | + role.GetConn().SendSuccess(uint32(pb.ProtoCode_EquipmentDelRsp), rsp) | ||
50 | + } | ||
51 | + } | ||
52 | +} | ||
53 | + | ||
54 | +func (gm *GmAction) DelItem(role *models.RoleModel, params ...interface{}) { | ||
55 | + logger.Debug(params) | ||
56 | + id := params[0].(string) | ||
57 | + count := params[1].(int32) | ||
58 | + | ||
59 | + if !role.CostItem(id, count) { | ||
60 | + logger.Error("item cost error: ", id) | ||
35 | } | 61 | } |
36 | - return 0 | ||
37 | } | 62 | } |
cmd/gameserver/service/gm.go
@@ -25,19 +25,19 @@ func (s *GmServer) HandlerFuncObj(tvl, obj reflect.Value) gin.HandlerFunc { | @@ -25,19 +25,19 @@ func (s *GmServer) HandlerFuncObj(tvl, obj reflect.Value) gin.HandlerFunc { | ||
25 | return func(c *gin.Context) { | 25 | return func(c *gin.Context) { |
26 | var roleId string | 26 | var roleId string |
27 | var ok bool | 27 | var ok bool |
28 | - properties := make(map[string]interface{}) | 28 | + properties := make([]interface{}, 2) |
29 | //请求类型,以及 format 参数 | 29 | //请求类型,以及 format 参数 |
30 | if c.Request.Method == "POST" { | 30 | if c.Request.Method == "POST" { |
31 | c.Request.ParseForm() | 31 | c.Request.ParseForm() |
32 | - for k, v := range c.Request.PostForm { | ||
33 | - properties[k] = v[0] | 32 | + for _, v := range c.Request.PostForm { |
33 | + properties = append(properties, v[0]) | ||
34 | } | 34 | } |
35 | roleId, ok = c.GetPostForm("role_id") | 35 | roleId, ok = c.GetPostForm("role_id") |
36 | 36 | ||
37 | } else if c.Request.Method == "GET" { | 37 | } else if c.Request.Method == "GET" { |
38 | roleId, ok = c.GetQuery("role_id") | 38 | roleId, ok = c.GetQuery("role_id") |
39 | - for k, v := range c.Request.URL.Query() { | ||
40 | - properties[k] = v[0] | 39 | + for _, v := range c.Request.URL.Query() { |
40 | + properties = append(properties, v[0]) | ||
41 | } | 41 | } |
42 | } else { | 42 | } else { |
43 | c.JSON(http.StatusOK, gin.H{"code": -101, "message": "not support method"}) | 43 | c.JSON(http.StatusOK, gin.H{"code": -101, "message": "not support method"}) |
@@ -52,9 +52,14 @@ func (s *GmServer) HandlerFuncObj(tvl, obj reflect.Value) gin.HandlerFunc { | @@ -52,9 +52,14 @@ func (s *GmServer) HandlerFuncObj(tvl, obj reflect.Value) gin.HandlerFunc { | ||
52 | //role start | 52 | //role start |
53 | conn := s.Server.GetConnManage().GetConnByRID(roleId) | 53 | conn := s.Server.GetConnManage().GetConnByRID(roleId) |
54 | var role *models.RoleModel | 54 | var role *models.RoleModel |
55 | + callback := func() { | ||
56 | + tvl.Call([]reflect.Value{obj, reflect.ValueOf(role), reflect.ValueOf(properties)}) | ||
57 | + role.SaveRoleData(0) | ||
58 | + } | ||
55 | if conn != nil { | 59 | if conn != nil { |
56 | //在线 | 60 | //在线 |
57 | role = conn.(*Agent).Role | 61 | role = conn.(*Agent).Role |
62 | + conn.CustomChan() <- callback | ||
58 | } else { | 63 | } else { |
59 | //离线 | 64 | //离线 |
60 | role = models.NewRole(roleId) | 65 | role = models.NewRole(roleId) |
@@ -63,17 +68,9 @@ func (s *GmServer) HandlerFuncObj(tvl, obj reflect.Value) gin.HandlerFunc { | @@ -63,17 +68,9 @@ func (s *GmServer) HandlerFuncObj(tvl, obj reflect.Value) gin.HandlerFunc { | ||
63 | return | 68 | return |
64 | } | 69 | } |
65 | role.LoadAll() | 70 | role.LoadAll() |
71 | + callback() | ||
66 | } | 72 | } |
67 | - | ||
68 | - //func start | ||
69 | - v := tvl.Call([]reflect.Value{obj, reflect.ValueOf(role), reflect.ValueOf(properties)}) | ||
70 | - role.SaveRoleDataChan(0) | ||
71 | - | ||
72 | - if len(v) != 1 { | ||
73 | - c.JSON(http.StatusNotFound, gin.H{"code": -100, "message": "request param len is error"}) | ||
74 | - return | ||
75 | - } | ||
76 | - c.JSON(http.StatusOK, gin.H{"code": v[0].Interface()}) | 73 | + c.JSON(http.StatusOK, gin.H{"code": 0}) |
77 | } | 74 | } |
78 | } | 75 | } |
79 | 76 |
common/db/mongoproxy/mongoplugin.go
@@ -79,6 +79,12 @@ func FindMany(coll string, key string, val interface{}, schema interface{}) erro | @@ -79,6 +79,12 @@ func FindMany(coll string, key string, val interface{}, schema interface{}) erro | ||
79 | return r.All(context.TODO(), schema) | 79 | return r.All(context.TODO(), schema) |
80 | } | 80 | } |
81 | 81 | ||
82 | +func DelOne(coll string, key string, value interface{}) error { | ||
83 | + filter := bson.D{{key, value}} | ||
84 | + _, err := mongoDatabase.Collection(coll).DeleteOne(context.TODO(), filter, nil) | ||
85 | + return err | ||
86 | +} | ||
87 | + | ||
82 | func GetBsonD(key string, value interface{}) interface{} { | 88 | func GetBsonD(key string, value interface{}) interface{} { |
83 | return bson.D{{key, value}} | 89 | return bson.D{{key, value}} |
84 | } | 90 | } |
models/rolePlugin.go
@@ -51,7 +51,10 @@ func (m *RoleModel) AddItem(key string, count int32) bool { | @@ -51,7 +51,10 @@ func (m *RoleModel) AddItem(key string, count int32) bool { | ||
51 | logger.Error(err.Error()) | 51 | logger.Error(err.Error()) |
52 | return true | 52 | return true |
53 | } | 53 | } |
54 | - m.GetConn().Send(0, uint32(pb.ProtoCode_RoleUpdateItemsRsp), rsp) | 54 | + |
55 | + if m.GetConn() != nil { | ||
56 | + m.GetConn().Send(0, uint32(pb.ProtoCode_RoleUpdateItemsRsp), rsp) | ||
57 | + } | ||
55 | return true | 58 | return true |
56 | } | 59 | } |
57 | 60 |
pb/game.pb.go
@@ -562,6 +562,53 @@ func (x *EquipmentAddRsp) GetEquip() *Equipment { | @@ -562,6 +562,53 @@ func (x *EquipmentAddRsp) GetEquip() *Equipment { | ||
562 | return nil | 562 | return nil |
563 | } | 563 | } |
564 | 564 | ||
565 | +type EquipmentDelRsp struct { | ||
566 | + state protoimpl.MessageState | ||
567 | + sizeCache protoimpl.SizeCache | ||
568 | + unknownFields protoimpl.UnknownFields | ||
569 | + | ||
570 | + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` | ||
571 | +} | ||
572 | + | ||
573 | +func (x *EquipmentDelRsp) Reset() { | ||
574 | + *x = EquipmentDelRsp{} | ||
575 | + if protoimpl.UnsafeEnabled { | ||
576 | + mi := &file_game_proto_msgTypes[10] | ||
577 | + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
578 | + ms.StoreMessageInfo(mi) | ||
579 | + } | ||
580 | +} | ||
581 | + | ||
582 | +func (x *EquipmentDelRsp) String() string { | ||
583 | + return protoimpl.X.MessageStringOf(x) | ||
584 | +} | ||
585 | + | ||
586 | +func (*EquipmentDelRsp) ProtoMessage() {} | ||
587 | + | ||
588 | +func (x *EquipmentDelRsp) ProtoReflect() protoreflect.Message { | ||
589 | + mi := &file_game_proto_msgTypes[10] | ||
590 | + if protoimpl.UnsafeEnabled && x != nil { | ||
591 | + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) | ||
592 | + if ms.LoadMessageInfo() == nil { | ||
593 | + ms.StoreMessageInfo(mi) | ||
594 | + } | ||
595 | + return ms | ||
596 | + } | ||
597 | + return mi.MessageOf(x) | ||
598 | +} | ||
599 | + | ||
600 | +// Deprecated: Use EquipmentDelRsp.ProtoReflect.Descriptor instead. | ||
601 | +func (*EquipmentDelRsp) Descriptor() ([]byte, []int) { | ||
602 | + return file_game_proto_rawDescGZIP(), []int{10} | ||
603 | +} | ||
604 | + | ||
605 | +func (x *EquipmentDelRsp) GetId() string { | ||
606 | + if x != nil { | ||
607 | + return x.Id | ||
608 | + } | ||
609 | + return "" | ||
610 | +} | ||
611 | + | ||
565 | var File_game_proto protoreflect.FileDescriptor | 612 | var File_game_proto protoreflect.FileDescriptor |
566 | 613 | ||
567 | var file_game_proto_rawDesc = []byte{ | 614 | var file_game_proto_rawDesc = []byte{ |
@@ -608,9 +655,11 @@ var file_game_proto_rawDesc = []byte{ | @@ -608,9 +655,11 @@ var file_game_proto_rawDesc = []byte{ | ||
608 | 0x6d, 0x73, 0x22, 0x3a, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x41, | 655 | 0x6d, 0x73, 0x22, 0x3a, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x41, |
609 | 0x64, 0x64, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x18, 0x01, | 656 | 0x64, 0x64, 0x52, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x18, 0x01, |
610 | 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x71, | 657 | 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2e, 0x45, 0x71, |
611 | - 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x42, 0x0a, | ||
612 | - 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, | ||
613 | - 0x6f, 0x33, | 658 | + 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x71, 0x75, 0x69, 0x70, 0x22, 0x21, |
659 | + 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x52, 0x73, | ||
660 | + 0x70, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, | ||
661 | + 0x64, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, | ||
662 | + 0x72, 0x6f, 0x74, 0x6f, 0x33, | ||
614 | } | 663 | } |
615 | 664 | ||
616 | var ( | 665 | var ( |
@@ -625,7 +674,7 @@ func file_game_proto_rawDescGZIP() []byte { | @@ -625,7 +674,7 @@ func file_game_proto_rawDescGZIP() []byte { | ||
625 | return file_game_proto_rawDescData | 674 | return file_game_proto_rawDescData |
626 | } | 675 | } |
627 | 676 | ||
628 | -var file_game_proto_msgTypes = make([]protoimpl.MessageInfo, 10) | 677 | +var file_game_proto_msgTypes = make([]protoimpl.MessageInfo, 11) |
629 | var file_game_proto_goTypes = []interface{}{ | 678 | var file_game_proto_goTypes = []interface{}{ |
630 | (*HeartReq)(nil), // 0: game.HeartReq | 679 | (*HeartReq)(nil), // 0: game.HeartReq |
631 | (*HeartRsp)(nil), // 1: game.HeartRsp | 680 | (*HeartRsp)(nil), // 1: game.HeartRsp |
@@ -637,19 +686,20 @@ var file_game_proto_goTypes = []interface{}{ | @@ -637,19 +686,20 @@ var file_game_proto_goTypes = []interface{}{ | ||
637 | (*RoleUpdatePropertyRsp)(nil), // 7: game.RoleUpdatePropertyRsp | 686 | (*RoleUpdatePropertyRsp)(nil), // 7: game.RoleUpdatePropertyRsp |
638 | (*RoleUpdateItemsRsp)(nil), // 8: game.RoleUpdateItemsRsp | 687 | (*RoleUpdateItemsRsp)(nil), // 8: game.RoleUpdateItemsRsp |
639 | (*EquipmentAddRsp)(nil), // 9: game.EquipmentAddRsp | 688 | (*EquipmentAddRsp)(nil), // 9: game.EquipmentAddRsp |
640 | - (*Team)(nil), // 10: models.Team | ||
641 | - (*Role)(nil), // 11: models.Role | ||
642 | - (*Hero)(nil), // 12: models.Hero | ||
643 | - (*Equipment)(nil), // 13: models.Equipment | 689 | + (*EquipmentDelRsp)(nil), // 10: game.EquipmentDelRsp |
690 | + (*Team)(nil), // 11: models.Team | ||
691 | + (*Role)(nil), // 12: models.Role | ||
692 | + (*Hero)(nil), // 13: models.Hero | ||
693 | + (*Equipment)(nil), // 14: models.Equipment | ||
644 | } | 694 | } |
645 | var file_game_proto_depIdxs = []int32{ | 695 | var file_game_proto_depIdxs = []int32{ |
646 | - 10, // 0: game.ChangeTeamReq.team:type_name -> models.Team | ||
647 | - 11, // 1: game.RoleRsp.role:type_name -> models.Role | ||
648 | - 12, // 2: game.RoleRsp.hero:type_name -> models.Hero | ||
649 | - 10, // 3: game.RoleRsp.team:type_name -> models.Team | ||
650 | - 13, // 4: game.RoleRsp.equipments:type_name -> models.Equipment | ||
651 | - 11, // 5: game.RoleUpdatePropertyRsp.role:type_name -> models.Role | ||
652 | - 13, // 6: game.EquipmentAddRsp.equip:type_name -> models.Equipment | 696 | + 11, // 0: game.ChangeTeamReq.team:type_name -> models.Team |
697 | + 12, // 1: game.RoleRsp.role:type_name -> models.Role | ||
698 | + 13, // 2: game.RoleRsp.hero:type_name -> models.Hero | ||
699 | + 11, // 3: game.RoleRsp.team:type_name -> models.Team | ||
700 | + 14, // 4: game.RoleRsp.equipments:type_name -> models.Equipment | ||
701 | + 12, // 5: game.RoleUpdatePropertyRsp.role:type_name -> models.Role | ||
702 | + 14, // 6: game.EquipmentAddRsp.equip:type_name -> models.Equipment | ||
653 | 7, // [7:7] is the sub-list for method output_type | 703 | 7, // [7:7] is the sub-list for method output_type |
654 | 7, // [7:7] is the sub-list for method input_type | 704 | 7, // [7:7] is the sub-list for method input_type |
655 | 7, // [7:7] is the sub-list for extension type_name | 705 | 7, // [7:7] is the sub-list for extension type_name |
@@ -784,6 +834,18 @@ func file_game_proto_init() { | @@ -784,6 +834,18 @@ func file_game_proto_init() { | ||
784 | return nil | 834 | return nil |
785 | } | 835 | } |
786 | } | 836 | } |
837 | + file_game_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { | ||
838 | + switch v := v.(*EquipmentDelRsp); i { | ||
839 | + case 0: | ||
840 | + return &v.state | ||
841 | + case 1: | ||
842 | + return &v.sizeCache | ||
843 | + case 2: | ||
844 | + return &v.unknownFields | ||
845 | + default: | ||
846 | + return nil | ||
847 | + } | ||
848 | + } | ||
787 | } | 849 | } |
788 | type x struct{} | 850 | type x struct{} |
789 | out := protoimpl.TypeBuilder{ | 851 | out := protoimpl.TypeBuilder{ |
@@ -791,7 +853,7 @@ func file_game_proto_init() { | @@ -791,7 +853,7 @@ func file_game_proto_init() { | ||
791 | GoPackagePath: reflect.TypeOf(x{}).PkgPath(), | 853 | GoPackagePath: reflect.TypeOf(x{}).PkgPath(), |
792 | RawDescriptor: file_game_proto_rawDesc, | 854 | RawDescriptor: file_game_proto_rawDesc, |
793 | NumEnums: 0, | 855 | NumEnums: 0, |
794 | - NumMessages: 10, | 856 | + NumMessages: 11, |
795 | NumExtensions: 0, | 857 | NumExtensions: 0, |
796 | NumServices: 0, | 858 | NumServices: 0, |
797 | }, | 859 | }, |
pb/protocode.pb.go
@@ -35,6 +35,7 @@ const ( | @@ -35,6 +35,7 @@ const ( | ||
35 | ProtoCode_RoleUpdatePropertyRsp ProtoCode = 9 | 35 | ProtoCode_RoleUpdatePropertyRsp ProtoCode = 9 |
36 | ProtoCode_RoleUpdateItemsRsp ProtoCode = 10 | 36 | ProtoCode_RoleUpdateItemsRsp ProtoCode = 10 |
37 | ProtoCode_EquipmentAddRsp ProtoCode = 11 | 37 | ProtoCode_EquipmentAddRsp ProtoCode = 11 |
38 | + ProtoCode_EquipmentDelRsp ProtoCode = 12 | ||
38 | ) | 39 | ) |
39 | 40 | ||
40 | // Enum value maps for ProtoCode. | 41 | // Enum value maps for ProtoCode. |
@@ -52,6 +53,7 @@ var ( | @@ -52,6 +53,7 @@ var ( | ||
52 | 9: "RoleUpdatePropertyRsp", | 53 | 9: "RoleUpdatePropertyRsp", |
53 | 10: "RoleUpdateItemsRsp", | 54 | 10: "RoleUpdateItemsRsp", |
54 | 11: "EquipmentAddRsp", | 55 | 11: "EquipmentAddRsp", |
56 | + 12: "EquipmentDelRsp", | ||
55 | } | 57 | } |
56 | ProtoCode_value = map[string]int32{ | 58 | ProtoCode_value = map[string]int32{ |
57 | "UNKNOWN": 0, | 59 | "UNKNOWN": 0, |
@@ -66,6 +68,7 @@ var ( | @@ -66,6 +68,7 @@ var ( | ||
66 | "RoleUpdatePropertyRsp": 9, | 68 | "RoleUpdatePropertyRsp": 9, |
67 | "RoleUpdateItemsRsp": 10, | 69 | "RoleUpdateItemsRsp": 10, |
68 | "EquipmentAddRsp": 11, | 70 | "EquipmentAddRsp": 11, |
71 | + "EquipmentDelRsp": 12, | ||
69 | } | 72 | } |
70 | ) | 73 | ) |
71 | 74 | ||
@@ -100,7 +103,7 @@ var File_protocode_proto protoreflect.FileDescriptor | @@ -100,7 +103,7 @@ var File_protocode_proto protoreflect.FileDescriptor | ||
100 | 103 | ||
101 | var file_protocode_proto_rawDesc = []byte{ | 104 | var file_protocode_proto_rawDesc = []byte{ |
102 | 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, | 105 | 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, |
103 | - 0x6f, 0x12, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x64, 0x65, 0x2a, 0xde, 0x01, 0x0a, | 106 | + 0x6f, 0x12, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x64, 0x65, 0x2a, 0xf3, 0x01, 0x0a, |
104 | 0x09, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, | 107 | 0x09, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, |
105 | 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, | 108 | 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x69, 0x6e, |
106 | 0x52, 0x73, 0x70, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x48, 0x65, 0x61, 0x72, 0x74, 0x52, 0x65, | 109 | 0x52, 0x73, 0x70, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x48, 0x65, 0x61, 0x72, 0x74, 0x52, 0x65, |
@@ -114,9 +117,10 @@ var file_protocode_proto_rawDesc = []byte{ | @@ -114,9 +117,10 @@ var file_protocode_proto_rawDesc = []byte{ | ||
114 | 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x73, 0x70, 0x10, 0x09, | 117 | 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x73, 0x70, 0x10, 0x09, |
115 | 0x12, 0x16, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, | 118 | 0x12, 0x16, 0x0a, 0x12, 0x52, 0x6f, 0x6c, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x74, |
116 | 0x65, 0x6d, 0x73, 0x52, 0x73, 0x70, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, | 119 | 0x65, 0x6d, 0x73, 0x52, 0x73, 0x70, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x71, 0x75, 0x69, |
117 | - 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x52, 0x73, 0x70, 0x10, 0x0b, 0x42, 0x0a, 0x5a, | ||
118 | - 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, | ||
119 | - 0x33, | 120 | + 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x52, 0x73, 0x70, 0x10, 0x0b, 0x12, 0x13, 0x0a, |
121 | + 0x0f, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x52, 0x73, 0x70, | ||
122 | + 0x10, 0x0c, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2e, 0x2f, 0x70, 0x62, 0x3b, 0x70, 0x62, 0x62, 0x06, | ||
123 | + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, | ||
120 | } | 124 | } |
121 | 125 | ||
122 | var ( | 126 | var ( |