summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-10-09 15:39:43 +0200
committernsensfel <SpamShield0@noot-noot.org>2018-10-09 15:39:43 +0200
commit80cf57bc91d25a043ed8c1de557ebe1ccbe17022 (patch)
treeb59e4a825748de5eb96382cbb9fbaa3c6d280e7f
parentf027695551d297b02f4bfa614d060d8f0e0d68d7 (diff)
Creates roster & inventory alongside player.
-rw-r--r--src/roster/rst_shim.erl2
-rw-r--r--src/roster/struct/rst_roster.erl12
-rw-r--r--src/special/spe_player.erl34
3 files changed, 38 insertions, 10 deletions
diff --git a/src/roster/rst_shim.erl b/src/roster/rst_shim.erl
index 57a62f5..681ff8e 100644
--- a/src/roster/rst_shim.erl
+++ b/src/roster/rst_shim.erl
@@ -18,7 +18,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-spec generate_random_character_roster () -> rst_roster:type().
generate_random_character_roster () ->
- Result = rst_roster:new(<<"0">>, <<"0">>),
+ Result = rst_roster:new(<<"0">>),
%% TODO [DEBUG][REQUIRED]: unimplemented.
diff --git a/src/roster/struct/rst_roster.erl b/src/roster/struct/rst_roster.erl
index a362619..7841fb4 100644
--- a/src/roster/struct/rst_roster.erl
+++ b/src/roster/struct/rst_roster.erl
@@ -9,7 +9,6 @@
(
roster,
{
- id :: id(),
owner :: binary(),
characters :: array:array(rst_character:type())
}
@@ -26,7 +25,6 @@
-export
(
[
- get_id/1,
get_owner/1,
get_characters/1,
get_character/2,
@@ -49,7 +47,7 @@
-export
(
[
- new/2
+ new/1
]
).
@@ -61,9 +59,6 @@
%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% Accessors
--spec get_id (type()) -> id().
-get_id (Roster) -> Roster#roster.id.
-
-spec get_owner (type()) -> binary().
get_owner (Roster) -> Roster#roster.owner.
@@ -117,11 +112,10 @@ remove_character (IX, Roster) ->
-spec get_characters_field () -> non_neg_integer().
get_characters_field () -> #roster.characters.
--spec new (binary(), binary()) -> type().
-new (ID, Owner) ->
+-spec new (binary()) -> type().
+new (Owner) ->
#roster
{
- id = ID,
owner = Owner,
characters = array:new()
}.
diff --git a/src/special/spe_player.erl b/src/special/spe_player.erl
index 50f7784..7560a2d 100644
--- a/src/special/spe_player.erl
+++ b/src/special/spe_player.erl
@@ -45,6 +45,34 @@ finalize_login (UsernameLC, EmailLC, PlayerID) ->
'ok'.
+-spec generate_inventory (binary()) -> binary().
+generate_inventory (PlayerID) ->
+ Inventory = shr_inventory:new(PlayerID),
+ {ok, InventoryID} =
+ shr_database:insert
+ (
+ inventory_db,
+ [{user, PlayerID}],
+ [{user, PlayerID}],
+ Inventory
+ ),
+
+ InventoryID.
+
+-spec generate_roster (binary()) -> binary().
+generate_roster (PlayerID) ->
+ Roster = rst_roster:new(PlayerID),
+ {ok, RosterID} =
+ shr_database:insert
+ (
+ roster_db,
+ [{user, PlayerID}],
+ [{user, PlayerID}],
+ Roster
+ ),
+
+ RosterID.
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% EXPORTED FUNCTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -59,11 +87,17 @@ generate (Username, Password, Email) ->
{ok, PlayerID} = shr_database:insert(player_db, janitor, janitor, Player),
+
shr_janitor:new(player_db, PlayerID),
+ InvID = generate_inventory(PlayerID),
+ RosterID = generate_roster(PlayerID),
+
PlayerUpdateQueryOps =
[
shr_db_query:set_field(shr_player:get_id_field(), PlayerID),
+ shr_db_query:set_field(shr_player:get_inventory_id_field(), InvID),
+ shr_db_query:set_field(shr_player:get_roster_id_field(), RosterID),
shr_db_query:set_read_permission(any),
shr_db_query:set_write_permission([{user, PlayerID}])
],