- add: Character service can now actually create a character correctly in the database

- add: character db client to allow the character service to talk to the database service
- update: character.proto to make character data shared
This commit is contained in:
2025-01-07 13:41:07 -05:00
parent c6c502fd8a
commit cb6ee657f0
13 changed files with 318 additions and 72 deletions

View File

@@ -2,10 +2,12 @@ syntax = "proto3";
package character;
import "character_common.proto";
service CharacterService {
rpc GetCharacterList(GetCharacterListRequest) returns (GetCharacterListResponse);
rpc CreateCharacter(CreateCharacterRequest) returns (Empty);
rpc DeleteCharacter(DeleteCharacterRequest) returns (Empty);
rpc CreateCharacter(CreateCharacterRequest) returns (CreateCharacterResponse);
rpc DeleteCharacter(DeleteCharacterRequest) returns (DeleteCharacterResponse);
rpc GetCharacter(GetCharacterRequest) returns (Empty);
}
@@ -14,11 +16,20 @@ message GetCharacterListRequest {
}
message GetCharacterListResponse {
repeated Character characters = 1;
repeated character_common.Character characters = 1;
}
message CreateCharacterRequest {
string user_id = 1;
string name = 2;
int32 race = 3;
int32 face = 4;
int32 hair = 5;
int32 stone = 6;
}
message CreateCharacterResponse {
int32 result = 1;
}
message DeleteCharacterRequest {
@@ -26,28 +37,13 @@ message DeleteCharacterRequest {
string char_id = 2;
}
message DeleteCharacterResponse {
int64 remaining_time = 1;
string name = 2;
}
message GetCharacterRequest {
string user_id = 1;
}
message Character {
string character_id = 1; // Unique ID for the character
string name = 2; // Name of the character
int32 level = 3; // Character's level
int32 race = 4; // Character's level
int32 job = 5; // Character's class or type
int64 last_played = 6; // Last played timestamp (Unix time)
int64 delete_time = 7; // Time until character deletion (seconds)
int32 face = 8; // Character's face
int32 hair = 9; // Character's hair
repeated EquippedItem items = 10;
}
message EquippedItem {
int32 id = 1;
int32 gem_option = 2;
int32 socket = 3;
int32 grade = 4;
}
message Empty {}

View File

@@ -0,0 +1,31 @@
syntax = "proto3";
package character_common;
message Stats {
int32 level = 1;
int32 job = 2;
}
message Looks {
int32 race = 1;
int32 hair = 2;
int32 face = 3;
}
message EquippedItem {
int32 id = 1;
int32 gem_option = 2;
int32 socket = 3;
int32 grade = 4;
}
message Character {
string character_id = 1; // Unique ID for the character
string name = 2; // Name of the character
int64 last_played = 3; // Last played timestamp (Unix time)
int64 delete_time = 4; // Time until character deletion (seconds)
Stats stats = 5; // Character's stats
Looks looks = 6; // Character's Looks
repeated EquippedItem items = 7;
}

View File

@@ -6,7 +6,7 @@ service CharacterService {
rpc GetCharacter (CharacterRequest) returns (Character);
rpc GetCharacterList (CharacterListRequest) returns (CharacterListResponse);
rpc CreateCharacter (CreateCharacterRequest) returns (CreateCharacterResponse);
rpc DeleteCharacter (DeleteCharacterRequest) returns (Empty);
rpc DeleteCharacter (DeleteCharacterRequest) returns (DeleteCharacterResponse);
}
message CharacterRequest {
@@ -31,11 +31,18 @@ message CreateCharacterRequest {
}
message CreateCharacterResponse {
int32 character_id = 1;
int32 result = 1;
int32 character_id = 2;
}
message DeleteCharacterRequest {
int32 character_id = 1;
int32 user_id = 1;
int32 character_id = 2;
}
message DeleteCharacterResponse {
int64 remaining_time = 1;
string name = 2;
}
message Character {