88using Refresh . Database . Models . Levels . Scores ;
99using Refresh . Database . Models . Levels ;
1010using Refresh . Database . Models . Photos ;
11+ using Refresh . Database . Models . Assets ;
1112
1213namespace Refresh . Database ;
1314
@@ -111,24 +112,26 @@ public void UpdateUserData(GameUser user, ISerializedEditUser data, TokenGame ga
111112 {
112113 case TokenGame . LittleBigPlanet2 :
113114 user . Lbp2PlanetsHash = data . PlanetsHash ;
114- user . Lbp3PlanetsHash = data . PlanetsHash ;
115+ user . AreLbp2PlanetsModded = this . GetPlanetModdedStatus ( data . PlanetsHash ) ;
115116 break ;
116117 case TokenGame . LittleBigPlanet3 :
117118 user . Lbp3PlanetsHash = data . PlanetsHash ;
119+ user . AreLbp3PlanetsModded = this . GetPlanetModdedStatus ( data . PlanetsHash ) ;
118120 break ;
119121 case TokenGame . LittleBigPlanetVita :
120122 user . VitaPlanetsHash = data . PlanetsHash ;
123+ user . AreVitaPlanetsModded = this . GetPlanetModdedStatus ( data . PlanetsHash ) ;
121124 break ;
122125 case TokenGame . BetaBuild :
123126 user . BetaPlanetsHash = data . PlanetsHash ;
127+ user . AreBetaPlanetsModded = this . GetPlanetModdedStatus ( data . PlanetsHash ) ;
124128 break ;
125129 }
126130
127131 // ReSharper disable once InvertIf
128132 if ( data . IconHash != null )
129133 switch ( game )
130134 {
131-
132135 case TokenGame . LittleBigPlanet1 :
133136 case TokenGame . LittleBigPlanet2 :
134137 case TokenGame . LittleBigPlanet3 :
@@ -214,6 +217,9 @@ public void UpdateUserData(GameUser user, IApiEditUserRequest data)
214217
215218 if ( data . ProfileVisibility != null )
216219 user . ProfileVisibility = data . ProfileVisibility . Value ;
220+
221+ if ( data . ShowModdedPlanets != null )
222+ user . ShowModdedPlanets = data . ShowModdedPlanets . Value ;
217223
218224 if ( data . ShowModdedContent != null )
219225 user . ShowModdedContent = data . ShowModdedContent . Value ;
@@ -226,6 +232,28 @@ public void UpdateUserData(GameUser user, IApiEditUserRequest data)
226232 } ) ;
227233 }
228234
235+ public void UpdatePlanetModdedStatus ( GameUser user )
236+ {
237+ user . AreLbp2PlanetsModded = this . GetPlanetModdedStatus ( user . Lbp2PlanetsHash ) ;
238+ user . AreLbp3PlanetsModded = this . GetPlanetModdedStatus ( user . Lbp3PlanetsHash ) ;
239+ user . AreVitaPlanetsModded = this . GetPlanetModdedStatus ( user . VitaPlanetsHash ) ;
240+ user . AreBetaPlanetsModded = this . GetPlanetModdedStatus ( user . BetaPlanetsHash ) ;
241+ }
242+
243+ private bool GetPlanetModdedStatus ( string rootAssetHash )
244+ {
245+ bool modded = false ;
246+
247+ GameAsset ? rootAsset = this . GetAssetFromHash ( rootAssetHash ) ;
248+ rootAsset ? . TraverseDependenciesRecursively ( this , ( _ , asset ) =>
249+ {
250+ if ( asset != null && ( asset . AssetFlags & ( AssetFlags . Modded | AssetFlags . ModdedOnPlanets ) ) != 0 )
251+ modded = true ;
252+ } ) ;
253+
254+ return modded ;
255+ }
256+
229257 [ Pure ]
230258 public int GetTotalUserCount ( ) => this . GameUsers . Count ( ) ;
231259
@@ -370,12 +398,15 @@ public void FullyDeleteUser(GameUser user)
370398
371399 public void ResetUserPlanets ( GameUser user )
372400 {
373- this . Write ( ( ) =>
374- {
375- user . Lbp2PlanetsHash = "0" ;
376- user . Lbp3PlanetsHash = "0" ;
377- user . VitaPlanetsHash = "0" ;
378- } ) ;
401+ user . Lbp2PlanetsHash = "0" ;
402+ user . Lbp3PlanetsHash = "0" ;
403+ user . VitaPlanetsHash = "0" ;
404+ user . BetaPlanetsHash = "0" ;
405+ user . AreLbp2PlanetsModded = false ;
406+ user . AreLbp3PlanetsModded = false ;
407+ user . AreVitaPlanetsModded = false ;
408+ user . AreBetaPlanetsModded = false ;
409+ this . SaveChanges ( ) ;
379410 }
380411
381412 public void SetUnescapeXmlSequences ( GameUser user , bool value )
@@ -386,6 +417,12 @@ public void SetUnescapeXmlSequences(GameUser user, bool value)
386417 } ) ;
387418 }
388419
420+ public void SetShowModdedPlanets ( GameUser user , bool value )
421+ {
422+ user . ShowModdedPlanets = value ;
423+ this . SaveChanges ( ) ;
424+ }
425+
389426 public void SetShowModdedContent ( GameUser user , bool value )
390427 {
391428 this . Write ( ( ) =>
0 commit comments