syntax = "proto3"; option csharp_namespace = "EllieBot.GrpcApi"; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; package other; service GrpcOther { rpc GetGuilds(google.protobuf.Empty) returns (GetGuildsReply); rpc GetTextChannels(GetTextChannelsRequest) returns (GetTextChannelsReply); rpc GetCurrencyLb(GetLbRequest) returns (CurrencyLbReply); rpc GetXpLb(GetLbRequest) returns (XpLbReply); rpc GetWaifuLb(GetLbRequest) returns (WaifuLbReply); rpc GetShardStatuses(google.protobuf.Empty) returns (GetShardStatusesReply); rpc GetServerInfo(ServerInfoRequest) returns (GetServerInfoReply); } message GetGuildsReply { repeated GuildReply guilds = 1; } message GuildReply { uint64 id = 1; string name = 2; string iconUrl = 3; } message GetShardStatusesReply { repeated ShardStatusReply shards = 1; } message ShardStatusReply { int32 id = 1; string status = 2; int32 guildCount = 3; google.protobuf.Timestamp lastUpdate = 4; } message GetTextChannelsRequest{ uint64 guildId = 1; } message GetTextChannelsReply { repeated TextChannelReply textChannels = 1; } message TextChannelReply { uint64 id = 1; string name = 2; } message CurrencyLbReply { repeated CurrencyLbEntryReply entries = 1; } message CurrencyLbEntryReply { string user = 1; uint64 userId = 2; int64 amount = 3; string avatar = 4; } message GetLbRequest { int32 page = 1; int32 perPage = 2; } message XpLbReply { repeated XpLbEntryReply entries = 1; } message XpLbEntryReply { string user = 1; uint64 userId = 2; int64 totalXp = 3; int64 level = 4; } message WaifuLbReply { repeated WaifuLbEntry entries = 1; } message WaifuLbEntry { string user = 1; string claimedBy = 2; int64 value = 3; bool isMutual = 4; } message ServerInfoRequest { uint64 guildId = 1; } message GetServerInfoReply { uint64 id = 1; string name = 2; string iconUrl = 3; uint64 ownerId = 4; string ownerName = 5; repeated RoleReply roles = 6; repeated EmojiReply emojis = 7; repeated string features = 8; int32 textChannels = 9; int32 voiceChannels = 10; int32 memberCount = 11; int64 createdAt = 12; } message RoleReply { uint64 id = 1; string name = 2; string iconUrl = 3; string color = 4; } message EmojiReply { string name = 1; string url = 2; string code = 3; } message ChannelReply { uint64 id = 1; string name = 2; ChannelType type = 3; } enum ChannelType { Text = 0; Voice = 1; }