1
1
using Content . Server . Administration ;
2
2
using Content . Server . Database ;
3
+ using Content . Server . Players . PlayTimeTracking ;
3
4
using Content . Shared . Administration ;
4
5
using Content . Shared . CCVar ;
6
+ using Content . Shared . Players ;
5
7
using Robust . Server . Player ;
6
8
using Robust . Shared . Configuration ;
7
9
using Robust . Shared . Console ;
@@ -22,6 +24,8 @@ public async void Execute(IConsoleShell shell, string argStr, string[] args)
22
24
23
25
var db = IoCManager . Resolve < IServerDbManager > ( ) ;
24
26
var loc = IoCManager . Resolve < IPlayerLocator > ( ) ;
27
+ var player = IoCManager . Resolve < IPlayerManager > ( ) ;
28
+ var playtime = IoCManager . Resolve < PlayTimeTrackingManager > ( ) ;
25
29
26
30
var name = args [ 0 ] ;
27
31
var data = await loc . LookupIdByNameAsync ( name ) ;
@@ -37,6 +41,15 @@ public async void Execute(IConsoleShell shell, string argStr, string[] args)
37
41
}
38
42
39
43
await db . AddToWhitelistAsync ( guid ) ;
44
+
45
+ // Nyanotrasen - Update whitelist status in player data.
46
+ if ( player . TryGetPlayerDataByUsername ( name , out var playerData ) &&
47
+ player . TryGetSessionByUsername ( name , out var session ) )
48
+ {
49
+ playerData . ContentData ( ) ! . Whitelisted = true ;
50
+ playtime . SendWhitelistCached ( session ) ;
51
+ }
52
+
40
53
shell . WriteLine ( Loc . GetString ( "command-whitelistadd-added" , ( "username" , data . Username ) ) ) ;
41
54
return ;
42
55
}
@@ -58,6 +71,8 @@ public async void Execute(IConsoleShell shell, string argStr, string[] args)
58
71
59
72
var db = IoCManager . Resolve < IServerDbManager > ( ) ;
60
73
var loc = IoCManager . Resolve < IPlayerLocator > ( ) ;
74
+ var player = IoCManager . Resolve < IPlayerManager > ( ) ;
75
+ var playtime = IoCManager . Resolve < PlayTimeTrackingManager > ( ) ;
61
76
62
77
var name = args [ 0 ] ;
63
78
var data = await loc . LookupIdByNameAsync ( name ) ;
@@ -73,6 +88,15 @@ public async void Execute(IConsoleShell shell, string argStr, string[] args)
73
88
}
74
89
75
90
await db . RemoveFromWhitelistAsync ( guid ) ;
91
+
92
+ // Nyanotrasen - Update whitelist status in player data.
93
+ if ( player . TryGetPlayerDataByUsername ( name , out var playerData ) &&
94
+ player . TryGetSessionByUsername ( name , out var session ) )
95
+ {
96
+ playerData . ContentData ( ) ! . Whitelisted = false ;
97
+ playtime . SendWhitelistCached ( session ) ;
98
+ }
99
+
76
100
shell . WriteLine ( Loc . GetString ( "command-whitelistremove-removed" , ( "username" , data . Username ) ) ) ;
77
101
return ;
78
102
}
0 commit comments