66using SER . Code . Extensions ;
77using SER . Code . MethodSystem . BaseMethods . Synchronous ;
88using SER . Code . MethodSystem . Structures ;
9+ using SER . Code . TokenSystem . Tokens ;
10+ using SER . Code . TokenSystem . Tokens . VariableTokens ;
911using SER . Code . ValueSystem ;
1012using UnityEngine ;
1113using Utils ;
@@ -19,8 +21,8 @@ public class ParsePlayersMethod : ReturningMethod<PlayerValue>, IAdditionalDescr
1921
2022 public string AdditionalDescription =>
2123 "Tries to parse using: " +
22- "nickname, display name, user group, user id, ip address, player id, team, role, room, zone, " +
23- $ "{ nameof ( Room ) } reference, { nameof ( Item ) } reference, { nameof ( ReferenceHub ) } reference, " +
24+ "player variable name, nickname, display name, user group, user id, ip address, player id, team, role, " +
25+ $ "room, zone, { nameof ( Room ) } reference, { nameof ( Item ) } reference, { nameof ( ReferenceHub ) } reference, " +
2426 $ "{ nameof ( GameObject ) } reference, { nameof ( Transform ) } reference.";
2527
2628 public override Argument [ ] ExpectedArguments { get ; } =
@@ -42,7 +44,16 @@ public override void Execute()
4244 {
4345 var stringRep = literalValue . StringRep ;
4446
45- if ( Player . ReadyList . Where ( p =>
47+ if ( BaseToken . TryParse < PlayerVariableToken > ( stringRep , Script ) . WasSuccessful ( out var token ) )
48+ {
49+ if ( token . ExactValue . WasSuccessful ( out var playerValue ) )
50+ {
51+ ReturnValue = playerValue ;
52+ return ;
53+ }
54+ }
55+
56+ if ( Player . ReadyList . Where ( p =>
4657 p . Nickname == stringRep
4758 || p . DisplayName == stringRep
4859 || p . UserGroup ? . Name == stringRep
@@ -53,15 +64,15 @@ public override void Execute()
5364 ReturnValue = players . ToPlayerValue ( ) ;
5465 return ;
5566 }
56-
67+
5768 var raParsing = RAUtils
5869 . ProcessPlayerIdOrNamesList ( new ArraySegment < string > ( [ stringRep ] ) , 0 , out _ ) ;
5970 if ( raParsing . Any ( ) )
6071 {
6172 ReturnValue = Player . Get ( raParsing ) . ToPlayerValue ( ) ;
6273 return ;
6374 }
64-
75+
6576 if ( EnumArgument < Team > . Convert ( stringRep ) . WasSuccessful ( out var team ) )
6677 {
6778 ReturnValue = Player . ReadyList . Where ( p => p . Team == team ) . ToPlayerValue ( ) ;
@@ -135,4 +146,4 @@ public override void Execute()
135146
136147 ReturnValue = new PlayerValue ( ) ;
137148 }
138- }
149+ }
0 commit comments