chore(api)!: improvements in contract
This commit is contained in:
@@ -0,0 +1,468 @@
|
||||
// Code generated by protoc-gen-go. DO NOT EDIT.
|
||||
// versions:
|
||||
// protoc-gen-go v1.36.11
|
||||
// protoc v6.33.2
|
||||
// source: api/proto/achievements.proto
|
||||
|
||||
package achievements
|
||||
|
||||
import (
|
||||
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
|
||||
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
|
||||
emptypb "google.golang.org/protobuf/types/known/emptypb"
|
||||
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
|
||||
reflect "reflect"
|
||||
sync "sync"
|
||||
unsafe "unsafe"
|
||||
)
|
||||
|
||||
const (
|
||||
// Verify that this generated code is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
|
||||
// Verify that runtime/protoimpl is sufficiently up-to-date.
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
type Achievement struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
|
||||
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
|
||||
IconUrl string `protobuf:"bytes,4,opt,name=icon_url,json=iconUrl,proto3" json:"icon_url,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *Achievement) Reset() {
|
||||
*x = Achievement{}
|
||||
mi := &file_api_proto_achievements_proto_msgTypes[0]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *Achievement) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*Achievement) ProtoMessage() {}
|
||||
|
||||
func (x *Achievement) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_proto_achievements_proto_msgTypes[0]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use Achievement.ProtoReflect.Descriptor instead.
|
||||
func (*Achievement) Descriptor() ([]byte, []int) {
|
||||
return file_api_proto_achievements_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
func (x *Achievement) GetId() string {
|
||||
if x != nil {
|
||||
return x.Id
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Achievement) GetName() string {
|
||||
if x != nil {
|
||||
return x.Name
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Achievement) GetDescription() string {
|
||||
if x != nil {
|
||||
return x.Description
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *Achievement) GetIconUrl() string {
|
||||
if x != nil {
|
||||
return x.IconUrl
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type AchievementUser struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Achievement *Achievement `protobuf:"bytes,1,opt,name=achievement,proto3" json:"achievement,omitempty"`
|
||||
ReceivedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=received_at,json=receivedAt,proto3" json:"received_at,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *AchievementUser) Reset() {
|
||||
*x = AchievementUser{}
|
||||
mi := &file_api_proto_achievements_proto_msgTypes[1]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *AchievementUser) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*AchievementUser) ProtoMessage() {}
|
||||
|
||||
func (x *AchievementUser) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_proto_achievements_proto_msgTypes[1]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use AchievementUser.ProtoReflect.Descriptor instead.
|
||||
func (*AchievementUser) Descriptor() ([]byte, []int) {
|
||||
return file_api_proto_achievements_proto_rawDescGZIP(), []int{1}
|
||||
}
|
||||
|
||||
func (x *AchievementUser) GetAchievement() *Achievement {
|
||||
if x != nil {
|
||||
return x.Achievement
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *AchievementUser) GetReceivedAt() *timestamppb.Timestamp {
|
||||
if x != nil {
|
||||
return x.ReceivedAt
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type GetAchievementRequest struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *GetAchievementRequest) Reset() {
|
||||
*x = GetAchievementRequest{}
|
||||
mi := &file_api_proto_achievements_proto_msgTypes[2]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetAchievementRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*GetAchievementRequest) ProtoMessage() {}
|
||||
|
||||
func (x *GetAchievementRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_proto_achievements_proto_msgTypes[2]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use GetAchievementRequest.ProtoReflect.Descriptor instead.
|
||||
func (*GetAchievementRequest) Descriptor() ([]byte, []int) {
|
||||
return file_api_proto_achievements_proto_rawDescGZIP(), []int{2}
|
||||
}
|
||||
|
||||
func (x *GetAchievementRequest) GetId() string {
|
||||
if x != nil {
|
||||
return x.Id
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type DeleteAchievementRequest struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
AchievementId string `protobuf:"bytes,1,opt,name=achievement_id,json=achievementId,proto3" json:"achievement_id,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *DeleteAchievementRequest) Reset() {
|
||||
*x = DeleteAchievementRequest{}
|
||||
mi := &file_api_proto_achievements_proto_msgTypes[3]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *DeleteAchievementRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*DeleteAchievementRequest) ProtoMessage() {}
|
||||
|
||||
func (x *DeleteAchievementRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_proto_achievements_proto_msgTypes[3]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use DeleteAchievementRequest.ProtoReflect.Descriptor instead.
|
||||
func (*DeleteAchievementRequest) Descriptor() ([]byte, []int) {
|
||||
return file_api_proto_achievements_proto_rawDescGZIP(), []int{3}
|
||||
}
|
||||
|
||||
func (x *DeleteAchievementRequest) GetAchievementId() string {
|
||||
if x != nil {
|
||||
return x.AchievementId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type ListAchievementsResponse struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
Achievements []*Achievement `protobuf:"bytes,1,rep,name=achievements,proto3" json:"achievements,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *ListAchievementsResponse) Reset() {
|
||||
*x = ListAchievementsResponse{}
|
||||
mi := &file_api_proto_achievements_proto_msgTypes[4]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *ListAchievementsResponse) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*ListAchievementsResponse) ProtoMessage() {}
|
||||
|
||||
func (x *ListAchievementsResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_proto_achievements_proto_msgTypes[4]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use ListAchievementsResponse.ProtoReflect.Descriptor instead.
|
||||
func (*ListAchievementsResponse) Descriptor() ([]byte, []int) {
|
||||
return file_api_proto_achievements_proto_rawDescGZIP(), []int{4}
|
||||
}
|
||||
|
||||
func (x *ListAchievementsResponse) GetAchievements() []*Achievement {
|
||||
if x != nil {
|
||||
return x.Achievements
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type GetUserAchievementsRequest struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *GetUserAchievementsRequest) Reset() {
|
||||
*x = GetUserAchievementsRequest{}
|
||||
mi := &file_api_proto_achievements_proto_msgTypes[5]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetUserAchievementsRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*GetUserAchievementsRequest) ProtoMessage() {}
|
||||
|
||||
func (x *GetUserAchievementsRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_proto_achievements_proto_msgTypes[5]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use GetUserAchievementsRequest.ProtoReflect.Descriptor instead.
|
||||
func (*GetUserAchievementsRequest) Descriptor() ([]byte, []int) {
|
||||
return file_api_proto_achievements_proto_rawDescGZIP(), []int{5}
|
||||
}
|
||||
|
||||
func (x *GetUserAchievementsRequest) GetUserId() string {
|
||||
if x != nil {
|
||||
return x.UserId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type GetUserAchievementsResponse struct {
|
||||
state protoimpl.MessageState `protogen:"open.v1"`
|
||||
UserAchievements []*AchievementUser `protobuf:"bytes,1,rep,name=user_achievements,json=userAchievements,proto3" json:"user_achievements,omitempty"`
|
||||
unknownFields protoimpl.UnknownFields
|
||||
sizeCache protoimpl.SizeCache
|
||||
}
|
||||
|
||||
func (x *GetUserAchievementsResponse) Reset() {
|
||||
*x = GetUserAchievementsResponse{}
|
||||
mi := &file_api_proto_achievements_proto_msgTypes[6]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
|
||||
func (x *GetUserAchievementsResponse) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*GetUserAchievementsResponse) ProtoMessage() {}
|
||||
|
||||
func (x *GetUserAchievementsResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_api_proto_achievements_proto_msgTypes[6]
|
||||
if x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use GetUserAchievementsResponse.ProtoReflect.Descriptor instead.
|
||||
func (*GetUserAchievementsResponse) Descriptor() ([]byte, []int) {
|
||||
return file_api_proto_achievements_proto_rawDescGZIP(), []int{6}
|
||||
}
|
||||
|
||||
func (x *GetUserAchievementsResponse) GetUserAchievements() []*AchievementUser {
|
||||
if x != nil {
|
||||
return x.UserAchievements
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
var File_api_proto_achievements_proto protoreflect.FileDescriptor
|
||||
|
||||
const file_api_proto_achievements_proto_rawDesc = "" +
|
||||
"\n" +
|
||||
"\x1capi/proto/achievements.proto\x12\fachievements\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1bgoogle/protobuf/empty.proto\"n\n" +
|
||||
"\vAchievement\x12\x0e\n" +
|
||||
"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
|
||||
"\x04name\x18\x02 \x01(\tR\x04name\x12 \n" +
|
||||
"\vdescription\x18\x03 \x01(\tR\vdescription\x12\x19\n" +
|
||||
"\bicon_url\x18\x04 \x01(\tR\aiconUrl\"\x8b\x01\n" +
|
||||
"\x0fAchievementUser\x12;\n" +
|
||||
"\vachievement\x18\x01 \x01(\v2\x19.achievements.AchievementR\vachievement\x12;\n" +
|
||||
"\vreceived_at\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\n" +
|
||||
"receivedAt\"'\n" +
|
||||
"\x15GetAchievementRequest\x12\x0e\n" +
|
||||
"\x02id\x18\x01 \x01(\tR\x02id\"A\n" +
|
||||
"\x18DeleteAchievementRequest\x12%\n" +
|
||||
"\x0eachievement_id\x18\x01 \x01(\tR\rachievementId\"Y\n" +
|
||||
"\x18ListAchievementsResponse\x12=\n" +
|
||||
"\fachievements\x18\x01 \x03(\v2\x19.achievements.AchievementR\fachievements\"5\n" +
|
||||
"\x1aGetUserAchievementsRequest\x12\x17\n" +
|
||||
"\auser_id\x18\x01 \x01(\tR\x06userId\"i\n" +
|
||||
"\x1bGetUserAchievementsResponse\x12J\n" +
|
||||
"\x11user_achievements\x18\x01 \x03(\v2\x1d.achievements.AchievementUserR\x10userAchievements2\x90\x04\n" +
|
||||
"\x13AchievementsService\x12I\n" +
|
||||
"\x11CreateAchievement\x12\x19.achievements.Achievement\x1a\x19.achievements.Achievement\x12P\n" +
|
||||
"\x0eGetAchievement\x12#.achievements.GetAchievementRequest\x1a\x19.achievements.Achievement\x12G\n" +
|
||||
"\x0fEditAchievement\x12\x19.achievements.Achievement\x1a\x19.achievements.Achievement\x12S\n" +
|
||||
"\x11DeleteAchievement\x12&.achievements.DeleteAchievementRequest\x1a\x16.google.protobuf.Empty\x12R\n" +
|
||||
"\x10ListAchievements\x12\x16.google.protobuf.Empty\x1a&.achievements.ListAchievementsResponse\x12j\n" +
|
||||
"\x13GetUserAchievements\x12(.achievements.GetUserAchievementsRequest\x1a).achievements.GetUserAchievementsResponseB\x16Z\x14pkg/api/achievementsb\x06proto3"
|
||||
|
||||
var (
|
||||
file_api_proto_achievements_proto_rawDescOnce sync.Once
|
||||
file_api_proto_achievements_proto_rawDescData []byte
|
||||
)
|
||||
|
||||
func file_api_proto_achievements_proto_rawDescGZIP() []byte {
|
||||
file_api_proto_achievements_proto_rawDescOnce.Do(func() {
|
||||
file_api_proto_achievements_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_api_proto_achievements_proto_rawDesc), len(file_api_proto_achievements_proto_rawDesc)))
|
||||
})
|
||||
return file_api_proto_achievements_proto_rawDescData
|
||||
}
|
||||
|
||||
var file_api_proto_achievements_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
|
||||
var file_api_proto_achievements_proto_goTypes = []any{
|
||||
(*Achievement)(nil), // 0: achievements.Achievement
|
||||
(*AchievementUser)(nil), // 1: achievements.AchievementUser
|
||||
(*GetAchievementRequest)(nil), // 2: achievements.GetAchievementRequest
|
||||
(*DeleteAchievementRequest)(nil), // 3: achievements.DeleteAchievementRequest
|
||||
(*ListAchievementsResponse)(nil), // 4: achievements.ListAchievementsResponse
|
||||
(*GetUserAchievementsRequest)(nil), // 5: achievements.GetUserAchievementsRequest
|
||||
(*GetUserAchievementsResponse)(nil), // 6: achievements.GetUserAchievementsResponse
|
||||
(*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp
|
||||
(*emptypb.Empty)(nil), // 8: google.protobuf.Empty
|
||||
}
|
||||
var file_api_proto_achievements_proto_depIdxs = []int32{
|
||||
0, // 0: achievements.AchievementUser.achievement:type_name -> achievements.Achievement
|
||||
7, // 1: achievements.AchievementUser.received_at:type_name -> google.protobuf.Timestamp
|
||||
0, // 2: achievements.ListAchievementsResponse.achievements:type_name -> achievements.Achievement
|
||||
1, // 3: achievements.GetUserAchievementsResponse.user_achievements:type_name -> achievements.AchievementUser
|
||||
0, // 4: achievements.AchievementsService.CreateAchievement:input_type -> achievements.Achievement
|
||||
2, // 5: achievements.AchievementsService.GetAchievement:input_type -> achievements.GetAchievementRequest
|
||||
0, // 6: achievements.AchievementsService.EditAchievement:input_type -> achievements.Achievement
|
||||
3, // 7: achievements.AchievementsService.DeleteAchievement:input_type -> achievements.DeleteAchievementRequest
|
||||
8, // 8: achievements.AchievementsService.ListAchievements:input_type -> google.protobuf.Empty
|
||||
5, // 9: achievements.AchievementsService.GetUserAchievements:input_type -> achievements.GetUserAchievementsRequest
|
||||
0, // 10: achievements.AchievementsService.CreateAchievement:output_type -> achievements.Achievement
|
||||
0, // 11: achievements.AchievementsService.GetAchievement:output_type -> achievements.Achievement
|
||||
0, // 12: achievements.AchievementsService.EditAchievement:output_type -> achievements.Achievement
|
||||
8, // 13: achievements.AchievementsService.DeleteAchievement:output_type -> google.protobuf.Empty
|
||||
4, // 14: achievements.AchievementsService.ListAchievements:output_type -> achievements.ListAchievementsResponse
|
||||
6, // 15: achievements.AchievementsService.GetUserAchievements:output_type -> achievements.GetUserAchievementsResponse
|
||||
10, // [10:16] is the sub-list for method output_type
|
||||
4, // [4:10] is the sub-list for method input_type
|
||||
4, // [4:4] is the sub-list for extension type_name
|
||||
4, // [4:4] is the sub-list for extension extendee
|
||||
0, // [0:4] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_api_proto_achievements_proto_init() }
|
||||
func file_api_proto_achievements_proto_init() {
|
||||
if File_api_proto_achievements_proto != nil {
|
||||
return
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
File: protoimpl.DescBuilder{
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_proto_achievements_proto_rawDesc), len(file_api_proto_achievements_proto_rawDesc)),
|
||||
NumEnums: 0,
|
||||
NumMessages: 7,
|
||||
NumExtensions: 0,
|
||||
NumServices: 1,
|
||||
},
|
||||
GoTypes: file_api_proto_achievements_proto_goTypes,
|
||||
DependencyIndexes: file_api_proto_achievements_proto_depIdxs,
|
||||
MessageInfos: file_api_proto_achievements_proto_msgTypes,
|
||||
}.Build()
|
||||
File_api_proto_achievements_proto = out.File
|
||||
file_api_proto_achievements_proto_goTypes = nil
|
||||
file_api_proto_achievements_proto_depIdxs = nil
|
||||
}
|
||||
Reference in New Issue
Block a user