@@ -59,9 +59,9 @@ impl ReplayManager {
5959 . wrap_err ( "Failed to load settings" ) ?;
6060
6161 match options {
62- Some ( options) => Ok ( ReplaySettings :: from ( options) ) ,
62+ Some ( options) => Ok ( ReplaySettings :: from_db ( options, user ) ) ,
6363 None => {
64- let settings = ReplaySettings :: default ( ) ;
64+ let settings = ReplaySettings :: new_default ( user ) ;
6565
6666 if let Err ( err) = self . set_settings ( user, & settings) . await {
6767 warn ! ( ?err) ;
@@ -105,7 +105,6 @@ impl ReplayError {
105105 pub const ALREADY_REQUESTED_TEXT : & str = "Failed to check whether replay was already requested" ;
106106}
107107
108- #[ derive( Default ) ]
109108pub struct ReplaySettings {
110109 options : RenderOptions ,
111110 official_skin : ReplaySkin ,
@@ -129,7 +128,24 @@ impl Default for ReplaySkin {
129128}
130129
131130impl ReplaySettings {
132- pub fn new_with_official_skin ( options : RenderOptions , skin : Skin ) -> Self {
131+ pub fn new_default ( discord_id : Id < UserMarker > ) -> Self {
132+ Self {
133+ options : RenderOptions {
134+ discord_user_id : Some ( discord_id. get ( ) ) ,
135+ ..Default :: default ( )
136+ } ,
137+ official_skin : Default :: default ( ) ,
138+ custom_skin : Default :: default ( ) ,
139+ }
140+ }
141+
142+ pub fn new_with_official_skin (
143+ mut options : RenderOptions ,
144+ skin : Skin ,
145+ discord_id : Id < UserMarker > ,
146+ ) -> Self {
147+ options. discord_user_id = Some ( discord_id. get ( ) ) ;
148+
133149 Self {
134150 options,
135151 official_skin : ReplaySkin {
@@ -140,7 +156,14 @@ impl ReplaySettings {
140156 }
141157 }
142158
143- pub fn new_with_custom_skin ( options : RenderOptions , skin : SkinInfo , id : u32 ) -> Self {
159+ pub fn new_with_custom_skin (
160+ mut options : RenderOptions ,
161+ skin : SkinInfo ,
162+ id : u32 ,
163+ discord_id : Id < UserMarker > ,
164+ ) -> Self {
165+ options. discord_user_id = Some ( discord_id. get ( ) ) ;
166+
144167 Self {
145168 options,
146169 official_skin : ReplaySkin :: default ( ) ,
@@ -201,21 +224,8 @@ impl ReplaySettings {
201224
202225 ( self . official_skin . display_name . as_ref ( ) , custom)
203226 }
204- }
205-
206- pub struct CustomSkinName < ' n > {
207- name : & ' n str ,
208- id : u32 ,
209- }
210-
211- impl Display for CustomSkinName < ' _ > {
212- fn fmt ( & self , f : & mut Formatter < ' _ > ) -> FmtResult {
213- write ! ( f, "{} (ID {})" , self . name, self . id)
214- }
215- }
216227
217- impl From < DbRenderOptions > for ReplaySettings {
218- fn from ( options : DbRenderOptions ) -> Self {
228+ fn from_db ( options : DbRenderOptions , discord_id : Id < UserMarker > ) -> Self {
219229 let settings = RenderOptions {
220230 resolution : RenderResolution :: HD720 ,
221231 global_volume : options. global_volume as u8 ,
@@ -267,6 +277,7 @@ impl From<DbRenderOptions> for ReplaySettings {
267277 show_strain_graph : options. show_strain_graph ,
268278 show_slider_breaks : options. show_slider_breaks ,
269279 ignore_fail : options. ignore_fail ,
280+ discord_user_id : Some ( discord_id. get ( ) ) ,
270281 } ;
271282
272283 let official_skin = ReplaySkin {
@@ -292,6 +303,17 @@ impl From<DbRenderOptions> for ReplaySettings {
292303 }
293304}
294305
306+ pub struct CustomSkinName < ' n > {
307+ name : & ' n str ,
308+ id : u32 ,
309+ }
310+
311+ impl Display for CustomSkinName < ' _ > {
312+ fn fmt ( & self , f : & mut Formatter < ' _ > ) -> FmtResult {
313+ write ! ( f, "{} (ID {})" , self . name, self . id)
314+ }
315+ }
316+
295317impl From < & ReplaySettings > for DbRenderOptions {
296318 fn from ( settings : & ReplaySettings ) -> Self {
297319 let ReplaySettings {
0 commit comments