elliebot/src/EllieBot.GrpcApiBase/protos/xp.proto
2025-03-22 12:10:17 +13:00

94 lines
No EOL
1.6 KiB
Protocol Buffer

syntax = "proto3";
option csharp_namespace = "EllieBot.GrpcApi";
package xp;
service GrpcXp {
rpc GetXpLb(GetXpLbRequest) returns (GetXpLbReply);
rpc ResetUserXp(ResetUserXpRequest) returns (ResetUserXpReply);
rpc GetXpSettings(GetXpSettingsRequest) returns (GetXpSettingsReply);
rpc AddReward(AddRewardRequest) returns (AddRewardReply);
rpc DeleteReward(DeleteRewardRequest) returns (DeleteRewardReply);
rpc GetUserXp(GetUserXpRequest) returns (GetUserXpReply);
}
message GetXpLbRequest {
uint64 guildId = 1;
int32 page = 2;
}
message GetXpLbReply {
repeated XpLbUserReply users = 1;
int32 total = 2;
}
message XpLbUserReply {
uint64 userId = 1;
string username = 2;
int64 xp = 3;
int64 level = 4;
int64 levelPercent = 5;
string avatar = 6;
}
message ResetUserXpRequest {
uint64 guildId = 1;
uint64 userId = 2;
}
message ResetUserXpReply {
bool success = 1;
}
message GetXpSettingsReply {
repeated RewItemReply rewards = 2;
}
message GetXpSettingsRequest {
uint64 guildId = 1;
}
message RewItemReply {
int32 level = 1;
string type = 2;
string value = 3;
}
message AddRewardRequest {
uint64 guildId = 1;
int32 level = 2;
string type = 3;
string value = 4;
}
message AddRewardReply {
bool success = 1;
}
message DeleteRewardRequest {
uint64 guildId = 1;
int32 level = 2;
string type = 3;
}
message DeleteRewardReply {
bool success = 1;
}
message GetUserXpRequest {
uint64 guildId = 1;
uint64 userId = 2;
}
message GetUserXpReply {
int64 xp = 1;
int64 requiredXp = 2;
int64 level = 3;
string club = 4;
string clubIcon = 5;
int32 rank = 6;
}