上传pb工具代码
This commit is contained in:
parent
81931aed43
commit
b70da778cf
201
src/pb/proto.js
201
src/pb/proto.js
@ -887,6 +887,10 @@ var $root = ($protobuf.roots["default"] || ($protobuf.roots["default"] = new $pr
|
||||
Value: {
|
||||
type: "int32",
|
||||
id: 5
|
||||
},
|
||||
BaseValue: {
|
||||
type: "int32",
|
||||
id: 6
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -906,30 +910,34 @@ var $root = ($protobuf.roots["default"] || ($protobuf.roots["default"] = new $pr
|
||||
},
|
||||
heroId: {
|
||||
type: "string",
|
||||
id: 5
|
||||
id: 4
|
||||
},
|
||||
lv: {
|
||||
type: "sint32",
|
||||
id: 6
|
||||
type: "int32",
|
||||
id: 5
|
||||
},
|
||||
keepFailNum: {
|
||||
type: "sint32",
|
||||
id: 7
|
||||
type: "int32",
|
||||
id: 6
|
||||
},
|
||||
mainEntry: {
|
||||
type: "EquipmentAttributeEntry",
|
||||
id: 8
|
||||
id: 7
|
||||
},
|
||||
adverbEntry: {
|
||||
rule: "repeated",
|
||||
type: "EquipmentAttributeEntry",
|
||||
id: 9
|
||||
id: 8
|
||||
},
|
||||
overlayNum: {
|
||||
type: "uint32",
|
||||
id: 10
|
||||
id: 9
|
||||
},
|
||||
isInitialState: {
|
||||
type: "bool",
|
||||
id: 10
|
||||
},
|
||||
islock: {
|
||||
type: "bool",
|
||||
id: 11
|
||||
}
|
||||
@ -999,6 +1007,51 @@ var $root = ($protobuf.roots["default"] || ($protobuf.roots["default"] = new $pr
|
||||
}
|
||||
}
|
||||
},
|
||||
EquipmentLockReq: {
|
||||
fields: {
|
||||
EquipmentId: {
|
||||
type: "string",
|
||||
id: 1
|
||||
},
|
||||
IsLock: {
|
||||
type: "bool",
|
||||
id: 2
|
||||
}
|
||||
}
|
||||
},
|
||||
EquipmentLockResp: {
|
||||
fields: {
|
||||
IsSucc: {
|
||||
type: "bool",
|
||||
id: 1
|
||||
},
|
||||
EquipmentId: {
|
||||
type: "string",
|
||||
id: 2
|
||||
},
|
||||
IsLock: {
|
||||
type: "bool",
|
||||
id: 3
|
||||
}
|
||||
}
|
||||
},
|
||||
EquipmentSellReq: {
|
||||
fields: {
|
||||
EquipIds: {
|
||||
rule: "repeated",
|
||||
type: "string",
|
||||
id: 1
|
||||
}
|
||||
}
|
||||
},
|
||||
EquipmentSellResp: {
|
||||
fields: {
|
||||
IsSucc: {
|
||||
type: "bool",
|
||||
id: 1
|
||||
}
|
||||
}
|
||||
},
|
||||
CommentState: {
|
||||
values: {
|
||||
Release: 0,
|
||||
@ -2397,6 +2450,10 @@ var $root = ($protobuf.roots["default"] || ($protobuf.roots["default"] = new $pr
|
||||
rule: "repeated",
|
||||
type: "int32",
|
||||
id: 6
|
||||
},
|
||||
intensity: {
|
||||
type: "int32",
|
||||
id: 7
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2437,10 +2494,43 @@ var $root = ($protobuf.roots["default"] || ($protobuf.roots["default"] = new $pr
|
||||
mainlineId: {
|
||||
type: "uint32",
|
||||
id: 2
|
||||
},
|
||||
leadpos: {
|
||||
type: "int32",
|
||||
id: 3
|
||||
},
|
||||
teamids: {
|
||||
rule: "repeated",
|
||||
type: "string",
|
||||
id: 4
|
||||
}
|
||||
}
|
||||
},
|
||||
MainlineChallengeResp: {
|
||||
fields: {
|
||||
info: {
|
||||
type: "BattleInfo",
|
||||
id: 1
|
||||
}
|
||||
}
|
||||
},
|
||||
MainlineChallengeOverReq: {
|
||||
fields: {
|
||||
chapterObj: {
|
||||
type: "string",
|
||||
id: 1
|
||||
},
|
||||
mainlineId: {
|
||||
type: "uint32",
|
||||
id: 2
|
||||
},
|
||||
report: {
|
||||
type: "BattleReport",
|
||||
id: 3
|
||||
}
|
||||
}
|
||||
},
|
||||
MainlineChallengeOverResp: {
|
||||
fields: {
|
||||
data: {
|
||||
type: "DBMainline",
|
||||
@ -2902,6 +2992,11 @@ var $root = ($protobuf.roots["default"] || ($protobuf.roots["default"] = new $pr
|
||||
rule: "repeated",
|
||||
type: "int32",
|
||||
id: 3
|
||||
},
|
||||
buy: {
|
||||
keyType: "int32",
|
||||
type: "int32",
|
||||
id: 4
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -2937,32 +3032,6 @@ var $root = ($protobuf.roots["default"] || ($protobuf.roots["default"] = new $pr
|
||||
}
|
||||
}
|
||||
},
|
||||
DBShopItem: {
|
||||
fields: {
|
||||
id: {
|
||||
type: "string",
|
||||
id: 1
|
||||
},
|
||||
uid: {
|
||||
type: "string",
|
||||
id: 2
|
||||
},
|
||||
goodsId: {
|
||||
type: "int32",
|
||||
id: 3
|
||||
},
|
||||
buyNum: {
|
||||
keyType: "int32",
|
||||
type: "int32",
|
||||
id: 4
|
||||
},
|
||||
lastBuyTime: {
|
||||
keyType: "int32",
|
||||
type: "int64",
|
||||
id: 5
|
||||
}
|
||||
}
|
||||
},
|
||||
ShopItem: {
|
||||
fields: {
|
||||
GoodsId: {
|
||||
@ -3971,6 +4040,22 @@ var $root = ($protobuf.roots["default"] || ($protobuf.roots["default"] = new $pr
|
||||
}
|
||||
}
|
||||
},
|
||||
LineUp: {
|
||||
fields: {
|
||||
cid: {
|
||||
type: "string",
|
||||
id: 1
|
||||
},
|
||||
star: {
|
||||
type: "int32",
|
||||
id: 2
|
||||
},
|
||||
lv: {
|
||||
type: "int32",
|
||||
id: 3
|
||||
}
|
||||
}
|
||||
},
|
||||
DBVikingRank: {
|
||||
fields: {
|
||||
id: {
|
||||
@ -4001,9 +4086,18 @@ var $root = ($protobuf.roots["default"] || ($protobuf.roots["default"] = new $pr
|
||||
type: "int32",
|
||||
id: 7
|
||||
},
|
||||
costTime: {
|
||||
leadpos: {
|
||||
type: "int32",
|
||||
id: 8
|
||||
},
|
||||
line: {
|
||||
rule: "repeated",
|
||||
type: "LineUp",
|
||||
id: 9
|
||||
},
|
||||
costTime: {
|
||||
type: "int32",
|
||||
id: 10
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -4027,10 +4121,43 @@ var $root = ($protobuf.roots["default"] || ($protobuf.roots["default"] = new $pr
|
||||
difficulty: {
|
||||
type: "int32",
|
||||
id: 2
|
||||
},
|
||||
leadpos: {
|
||||
type: "int32",
|
||||
id: 3
|
||||
},
|
||||
teamids: {
|
||||
rule: "repeated",
|
||||
type: "string",
|
||||
id: 4
|
||||
}
|
||||
}
|
||||
},
|
||||
VikingChallengeResp: {
|
||||
fields: {
|
||||
info: {
|
||||
type: "BattleInfo",
|
||||
id: 1
|
||||
}
|
||||
}
|
||||
},
|
||||
VikingChallengeOverReq: {
|
||||
fields: {
|
||||
bossType: {
|
||||
type: "int32",
|
||||
id: 1
|
||||
},
|
||||
difficulty: {
|
||||
type: "int32",
|
||||
id: 2
|
||||
},
|
||||
report: {
|
||||
type: "BattleReport",
|
||||
id: 3
|
||||
}
|
||||
}
|
||||
},
|
||||
VikingChallengeOverResp: {
|
||||
fields: {
|
||||
data: {
|
||||
type: "DBViking",
|
||||
@ -4059,6 +4186,10 @@ var $root = ($protobuf.roots["default"] || ($protobuf.roots["default"] = new $pr
|
||||
boosType: {
|
||||
type: "int32",
|
||||
id: 1
|
||||
},
|
||||
friend: {
|
||||
type: "bool",
|
||||
id: 2
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -3,23 +3,27 @@ option go_package = ".;pb";
|
||||
|
||||
//装备属性词条
|
||||
message EquipmentAttributeEntry {
|
||||
int32 Id = 1; //属性词条主键id 唯一
|
||||
int32 libraryid = 2; //属性词条id 非唯一
|
||||
string AttrName = 3; //属性名
|
||||
int32 Lv = 4; //属性等级
|
||||
int32 Value = 5; //属性值
|
||||
int32 Id = 1; //属性词条主键id 唯一
|
||||
int32 libraryid = 2; //属性词条id 非唯一
|
||||
string AttrName = 3; //属性名
|
||||
int32 Lv = 4; //属性等级
|
||||
int32 Value = 5; //属性值
|
||||
int32 BaseValue = 6; //基础属性
|
||||
}
|
||||
|
||||
//武器数据
|
||||
message DB_Equipment {
|
||||
string Id = 1; //@go_tags(`bson:"_id"`) 装备id
|
||||
string cId = 2; //@go_tags(`bson:"cId"`) 配置Id
|
||||
string uId = 3; //@go_tags(`bson:"uid"`) 所属玩家Id
|
||||
string heroId = 5; //@go_tags(`bson:"heroId"`) 挂在的英雄卡片id 未装备 填 ''
|
||||
sint32 lv = 6; //@go_tags(`bson:"lv"`) 装备强化等级
|
||||
sint32 keepFailNum = 7; //@go_tags(`bson:"keepFailNum"`) 连续强化失败次数
|
||||
EquipmentAttributeEntry mainEntry = 8; //@go_tags(`bson:"mainEntry"`) 装备主词条
|
||||
repeated EquipmentAttributeEntry adverbEntry = 9; //@go_tags(`bson:"adverbEntry"`) 装备副词条
|
||||
uint32 overlayNum = 10; //@go_tags(`bson:"overlayNum"`) 叠加数量
|
||||
bool isInitialState = 11; //@go_tags(`bson:"isInitialState"`) 是否初始状态
|
||||
string Id = 1; //@go_tags(`bson:"_id"`) 装备id
|
||||
string cId = 2; //@go_tags(`bson:"cId"`) 配置Id
|
||||
string uId = 3; //@go_tags(`bson:"uid"`) 所属玩家Id
|
||||
string heroId = 4; //@go_tags(`bson:"heroId"`) 挂在的英雄卡片id 未装备 填 ''
|
||||
int32 lv = 5; //@go_tags(`bson:"lv"`) 装备强化等级
|
||||
int32 keepFailNum = 6; //@go_tags(`bson:"keepFailNum"`) 连续强化失败次数
|
||||
EquipmentAttributeEntry mainEntry =
|
||||
7; //@go_tags(`bson:"mainEntry"`) 装备主词条
|
||||
repeated EquipmentAttributeEntry adverbEntry =
|
||||
8; //@go_tags(`bson:"adverbEntry"`) 装备副词条
|
||||
uint32 overlayNum = 9; //@go_tags(`bson:"overlayNum"`) 叠加数量
|
||||
bool isInitialState = 10; //@go_tags(`bson:"isInitialState"`) 是否初始状态
|
||||
bool islock = 11; //@go_tags(`bson:"islock"`) 是否锁
|
||||
}
|
@ -3,37 +3,55 @@ option go_package = ".;pb";
|
||||
import "equipment_db.proto";
|
||||
|
||||
//获取装备列表请求
|
||||
message EquipmentGetListReq {
|
||||
|
||||
}
|
||||
message EquipmentGetListReq {}
|
||||
//获取装备列表请求 回应
|
||||
message EquipmentGetListResp {
|
||||
repeated DB_Equipment Equipments = 1; //装备列表
|
||||
repeated DB_Equipment Equipments = 1; //装备列表
|
||||
}
|
||||
|
||||
//推送装备背包变化
|
||||
message EquipmentChangePush {
|
||||
repeated DB_Equipment Equipments = 1; //装备列表
|
||||
repeated DB_Equipment Equipments = 1; //装备列表
|
||||
}
|
||||
|
||||
//装备挂在到英雄上
|
||||
message EquipmentEquipReq{
|
||||
string HeroCardId = 1; //英雄卡Id
|
||||
repeated string EquipmentId = 2; //装备Id 固定长度的数组 0-5 对应的装备栏
|
||||
message EquipmentEquipReq {
|
||||
string HeroCardId = 1; //英雄卡Id
|
||||
repeated string EquipmentId = 2; //装备Id 固定长度的数组 0-5 对应的装备栏
|
||||
}
|
||||
|
||||
//装备挂在到英雄上 回应
|
||||
message EquipmentEquipResp{
|
||||
repeated DB_Equipment Equipments = 1; //挂在装备列表
|
||||
message EquipmentEquipResp {
|
||||
repeated DB_Equipment Equipments = 1; //挂在装备列表
|
||||
}
|
||||
|
||||
//装备升级
|
||||
message EquipmentUpgradeReq{
|
||||
string EquipmentId = 1; //装备Id
|
||||
message EquipmentUpgradeReq {
|
||||
string EquipmentId = 1; //装备Id
|
||||
}
|
||||
|
||||
//装备升级 回应
|
||||
message EquipmentUpgradeResp{
|
||||
bool IsSucc = 1;
|
||||
repeated DB_Equipment Equipment = 2; //由于装备可以叠加 升级后会创建一个新的装备出来 所以可能影响两个装备
|
||||
}
|
||||
//装备升级 回应 由于装备可以叠加 升级后会创建一个新的装备出来
|
||||
//所以可能影响两个装备
|
||||
message EquipmentUpgradeResp {
|
||||
bool IsSucc = 1;
|
||||
repeated DB_Equipment Equipment = 2;
|
||||
}
|
||||
|
||||
//出售道具请求sailitem
|
||||
message EquipmentLockReq {
|
||||
string EquipmentId = 1; //装备的唯一id
|
||||
bool IsLock = 2; //是否锁
|
||||
}
|
||||
|
||||
//出售道具请求 回应
|
||||
message EquipmentLockResp {
|
||||
bool IsSucc = 1;
|
||||
string EquipmentId = 2;
|
||||
bool IsLock = 3;
|
||||
}
|
||||
|
||||
//出售道具请求sailitem
|
||||
message EquipmentSellReq { repeated string EquipIds = 1; }
|
||||
|
||||
//出售道具请求 回应
|
||||
message EquipmentSellResp { bool IsSucc = 1; }
|
@ -8,4 +8,5 @@ message DBMainline {
|
||||
int32 mainlineId = 4; //@go_tags(`bson:"mainlineId"`) 主线关卡ID
|
||||
int32 awaredID = 5; //@go_tags(`bson:"awaredID"`) 是否领奖(设置int是考虑后续扩展有多个宝箱情况)
|
||||
repeated int32 branchID = 6; // @go_tags(`bson:"branchID"`) 记录分支通关的情况
|
||||
int32 intensity = 7; // 难度
|
||||
}
|
@ -1,36 +1,41 @@
|
||||
syntax = "proto3";
|
||||
option go_package = ".;pb";
|
||||
import "mainline_db.proto";
|
||||
|
||||
import "battle_msg.proto";
|
||||
// 查询关卡进度
|
||||
message MainlineGetListReq {
|
||||
|
||||
}
|
||||
message MainlineGetListReq {}
|
||||
// 返回进度信息
|
||||
message MainlineGetListResp {
|
||||
repeated DBMainline data = 1;
|
||||
}
|
||||
message MainlineGetListResp { repeated DBMainline data = 1; }
|
||||
|
||||
// 领取关卡宝箱
|
||||
message MainlineGetRewardReq {
|
||||
string chapterObj = 1; // 章节唯一对象id
|
||||
string chapterObj = 1; // 章节唯一对象id
|
||||
}
|
||||
|
||||
message MainlineGetRewardResp {
|
||||
DBMainline data = 1; //当前章节信息
|
||||
DBMainline data = 1; //当前章节信息
|
||||
}
|
||||
|
||||
// 挑战关卡
|
||||
message MainlineChallengeReq {
|
||||
string chapterObj = 1; // 章节唯一对象id
|
||||
uint32 mainlineId = 2; // 小关ID
|
||||
string chapterObj = 1; // 章节唯一对象id
|
||||
uint32 mainlineId = 2; // 小关ID
|
||||
int32 leadpos = 3; //队长位置
|
||||
repeated string teamids = 4; //阵容信息
|
||||
}
|
||||
|
||||
message MainlineChallengeResp {
|
||||
DBMainline data = 1; //当前章节信息
|
||||
message MainlineChallengeResp { BattleInfo info = 1; }
|
||||
|
||||
// 客户端通知服务器打赢了
|
||||
message MainlineChallengeOverReq {
|
||||
string chapterObj = 1; // 章节唯一对象id
|
||||
uint32 mainlineId = 2; // 小关ID
|
||||
BattleReport report = 3; //战报
|
||||
}
|
||||
|
||||
message MainlineChallengeOverResp {
|
||||
DBMainline data = 1; //当前章节信息
|
||||
}
|
||||
|
||||
// 推送新章节
|
||||
message MainlineNewChapterPush{
|
||||
DBMainline data = 1;
|
||||
}
|
||||
message MainlineNewChapterPush { DBMainline data = 1; }
|
@ -2,34 +2,36 @@ syntax = "proto3";
|
||||
option go_package = ".;pb";
|
||||
|
||||
enum ShopType {
|
||||
Null = 0;
|
||||
GoldShop = 1;
|
||||
DiamondShop = 2;
|
||||
PVPShop = 3;
|
||||
PVEShop = 4;
|
||||
AllianceShop = 5;
|
||||
Null = 0;
|
||||
GoldShop = 1;
|
||||
DiamondShop = 2;
|
||||
PVPShop = 3;
|
||||
PVEShop = 4;
|
||||
AllianceShop = 5;
|
||||
}
|
||||
|
||||
message UserShopData {
|
||||
int64 LastRefreshTime = 1; //最后一次刷新时间
|
||||
int32 ManualRefreshNum = 2; //手动刷新次数
|
||||
repeated int32 Items = 3; //商品列表
|
||||
int64 LastRefreshTime = 1; //最后一次刷新时间
|
||||
int32 ManualRefreshNum = 2; //手动刷新次数
|
||||
repeated int32 Items = 3; //商品列表
|
||||
map<int32, int32> buy = 4; //购买记录
|
||||
}
|
||||
|
||||
message DBShop {
|
||||
string id = 1; //@go_tags(`bson:"_id"`) 装备id
|
||||
string uid = 2; //@go_tags(`bson:"uid"`) 装备id
|
||||
UserShopData goldShop = 3; //@go_tags(`bson:"goldShop"`) 金币商店数据
|
||||
UserShopData diamondShop = 4; //@go_tags(`bson:"diamondShop"`) 金币商店数据
|
||||
UserShopData pvpShop = 5; //@go_tags(`bson:"pvpShop"`) 金币商店数据
|
||||
UserShopData pveShop = 6; //@go_tags(`bson:"pveShop"`) 金币商店数据
|
||||
UserShopData allianceShop = 7; //@go_tags(`bson:"allianceShop"`) 金币商店数据
|
||||
string id = 1; //@go_tags(`bson:"_id"`) 装备id
|
||||
string uid = 2; //@go_tags(`bson:"uid"`) 装备id
|
||||
UserShopData goldShop = 3; //@go_tags(`bson:"goldShop"`) 金币商店数据
|
||||
UserShopData diamondShop = 4; //@go_tags(`bson:"diamondShop"`) 金币商店数据
|
||||
UserShopData pvpShop = 5; //@go_tags(`bson:"pvpShop"`) 金币商店数据
|
||||
UserShopData pveShop = 6; //@go_tags(`bson:"pveShop"`) 金币商店数据
|
||||
UserShopData allianceShop = 7; //@go_tags(`bson:"allianceShop"`) 金币商店数据
|
||||
}
|
||||
|
||||
message DBShopItem {
|
||||
string id = 1; //@go_tags(`bson:"_id"`) 装备id
|
||||
string uid = 2; //@go_tags(`bson:"uid"`) 装备id
|
||||
int32 goodsId = 3; //@go_tags(`bson:"goodsId"`) 商品Id
|
||||
map<int32,int32> buyNum = 4; //@go_tags(`bson:"buyNum"`) 购买数量
|
||||
map<int32,int64> lastBuyTime = 5; //@go_tags(`bson:"lastBuyTime"`) 最后一次购买的时间
|
||||
}
|
||||
// message DBShopItem {
|
||||
// string id = 1; //@go_tags(`bson:"_id"`) 装备id
|
||||
// string uid = 2; //@go_tags(`bson:"uid"`) 装备id
|
||||
// int32 goodsId = 3; //@go_tags(`bson:"goodsId"`) 商品Id
|
||||
// map<int32, int32> buyNum = 4; //@go_tags(`bson:"buyNum"`) 购买数量
|
||||
// map<int32, int64> lastBuyTime =
|
||||
// 5; //@go_tags(`bson:"lastBuyTime"`) 最后一次购买的时间
|
||||
// }
|
||||
|
@ -12,6 +12,13 @@ message DBViking {
|
||||
map<string,int32> bossTime = 7; //@go_tags(`bson:"bossTime"`)
|
||||
}
|
||||
|
||||
// 阵型数据
|
||||
message LineUp{
|
||||
string cid = 1; // 配置表id
|
||||
int32 star = 2; // 星级
|
||||
int32 lv = 3; // 等级
|
||||
}
|
||||
|
||||
// 维京远征排行榜
|
||||
message DBVikingRank {
|
||||
string id = 1; //@go_tags(`bson:"_id"`) ID
|
||||
@ -21,5 +28,7 @@ message DBVikingRank {
|
||||
string nickname = 5;// 昵称
|
||||
string icon = 6; // 玩家头像
|
||||
int32 lv = 7; // 玩家等级
|
||||
int32 costTime = 8; //@go_tags(`bson:"costTime"`) 闯关耗时 单位s
|
||||
int32 leadpos = 8; //队长位置
|
||||
repeated LineUp line = 9; // 阵容数据
|
||||
int32 costTime = 10; //@go_tags(`bson:"costTime"`) 闯关耗时 单位s
|
||||
}
|
@ -1,18 +1,29 @@
|
||||
syntax = "proto3";
|
||||
option go_package = ".;pb";
|
||||
import "viking_db.proto";
|
||||
|
||||
import "battle_msg.proto";
|
||||
message VikingGetListReq {}
|
||||
|
||||
message VikingGetListResp { DBViking data = 1; }
|
||||
|
||||
// 挑战
|
||||
message VikingChallengeReq {
|
||||
int32 bossType = 1; // boos 类型
|
||||
int32 difficulty = 2; // 难度
|
||||
int32 bossType = 1; // boos 类型
|
||||
int32 difficulty = 2; // 难度
|
||||
int32 leadpos = 3; //队长位置
|
||||
repeated string teamids = 4; //阵容信息
|
||||
}
|
||||
|
||||
message VikingChallengeResp { DBViking data = 1; }
|
||||
message VikingChallengeResp { BattleInfo info = 1; }
|
||||
|
||||
message VikingChallengeOverReq {
|
||||
int32 bossType = 1; // boos 类型
|
||||
int32 difficulty = 2; // 难度
|
||||
BattleReport report = 3; //战报
|
||||
}
|
||||
|
||||
// 客户端通知服务器打赢了
|
||||
message VikingChallengeOverResp { DBViking data = 1; }
|
||||
|
||||
// 购买
|
||||
message VikingBuyReq {
|
||||
@ -24,8 +35,9 @@ message VikingBuyResp { DBViking data = 1; }
|
||||
// 排行榜
|
||||
message VikingRankListReq {
|
||||
int32 boosType = 1; // boss 类型
|
||||
bool friend = 2; // 是否是好友榜
|
||||
}
|
||||
|
||||
message VikingRankListResp {
|
||||
repeated DBVikingRank ranks = 1; // 排行数据 有序的 注意boss类型
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user