From 67345d58c55e513f9b11a5b3e1af33164a4103ef Mon Sep 17 00:00:00 2001 From: nsensfel Date: Fri, 24 Aug 2018 13:02:16 +0200 Subject: Working on the character editor... --- src/shared/struct/shr_player.erl | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) (limited to 'src/shared/struct/shr_player.erl') diff --git a/src/shared/struct/shr_player.erl b/src/shared/struct/shr_player.erl index 2b394c6..13fa1ed 100644 --- a/src/shared/struct/shr_player.erl +++ b/src/shared/struct/shr_player.erl @@ -17,7 +17,8 @@ email :: binary(), last_active :: integer(), maps :: list(binary()), - characters :: list(binary()) + roster_id :: binary(), + inventory_id :: binary() } ). @@ -46,7 +47,8 @@ get_email/1, get_last_active/1, get_maps/1, - get_characters/1, + get_inventory_id/1, + get_roster_id/1, set_id/2, set_username/2, @@ -55,7 +57,8 @@ set_email/2, refresh_active/1, set_maps/2, - set_characters/2 + set_inventory_id/2, + set_roster_id/2 ] ). @@ -69,7 +72,8 @@ get_email_field/0, get_last_active_field/0, get_maps_field/0, - get_characters_field/0 + get_inventory_id_field/0, + get_roster_id_field/0 ] ). @@ -85,6 +89,9 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -spec secure_value (binary(), binary()) -> binary(). secure_value (Salt, Val) -> + % TODO: Maybe it would be a good idea to include the user's IP in there as + % well. This would ensure that sessions alway use the same server (and thus, + % the same caches), and make timed cache exploits easier to prevent. SaltedVal = erlang:iolist_to_binary([Salt, Val]), HashedSaltedVal = crypto:hash(sha384, SaltedVal), @@ -105,7 +112,8 @@ new (ID, Username, Password, Email) -> email = Email, last_active = 0, maps = [], - characters = [] + inventory_id = <<"0">>, + roster_id = <<"0">> }, S0Result = set_password(Password, Result), @@ -136,8 +144,11 @@ get_last_active (Player) -> Player#player.last_active. -spec get_maps (type()) -> list(binary()). get_maps (Player) -> Player#player.maps. --spec get_characters (type()) -> list(binary()). -get_characters (Player) -> Player#player.characters. +-spec get_roster_id (type()) -> binary(). +get_roster_id (Player) -> Player#player.roster_id. + +-spec get_inventory_id (type()) -> binary(). +get_inventory_id (Player) -> Player#player.inventory_id. -spec set_id (binary(), type()) -> type(). set_id (Val, Player) -> Player#player{ id = Val }. @@ -175,8 +186,11 @@ refresh_active (Player) -> -spec set_maps (list(binary()), type()) -> type(). set_maps (Maps, Player) -> Player#player{ maps = Maps }. --spec set_characters (list(binary()), type()) -> type(). -set_characters (Characters, Player) -> Player#player{ characters = Characters }. +-spec set_roster_id (binary(), type()) -> type(). +set_roster_id (RosterID, Player) -> Player#player{ roster_id = RosterID }. + +-spec set_inventory_id (binary(), type()) -> type(). +set_inventory_id (InvID, Player) -> Player#player{ inventory_id = InvID }. -spec get_id_field () -> non_neg_integer(). get_id_field () -> #player.id. @@ -199,8 +213,11 @@ get_last_active_field () -> #player.last_active. -spec get_maps_field () -> non_neg_integer(). get_maps_field () -> #player.maps. --spec get_characters_field () -> non_neg_integer(). -get_characters_field () -> #player.characters. +-spec get_roster_id_field () -> non_neg_integer(). +get_roster_id_field () -> #player.roster_id. + +-spec get_inventory_id_field () -> non_neg_integer(). +get_inventory_id_field () -> #player.inventory_id. -spec password_is (binary(), type()) -> boolean(). password_is (Val, Player) -> -- cgit v1.2.3-70-g09d2