11package com .github .skriptdev .skript .plugin .elements .functions ;
22
3+ import com .github .skriptdev .skript .api .hytale .utils .PlayerUtils ;
34import com .github .skriptdev .skript .api .skript .registration .SkriptRegistration ;
45import com .hypixel .hytale .math .shape .Box ;
56import com .hypixel .hytale .math .vector .Location ;
89import com .hypixel .hytale .math .vector .Vector3i ;
910import com .hypixel .hytale .protocol .packets .worldmap .ContextMenuItem ;
1011import com .hypixel .hytale .server .core .asset .type .item .config .Item ;
12+ import com .hypixel .hytale .server .core .entity .entities .Player ;
1113import com .hypixel .hytale .server .core .inventory .ItemStack ;
1214import com .hypixel .hytale .server .core .inventory .container .ItemContainer ;
1315import com .hypixel .hytale .server .core .inventory .container .SimpleItemContainer ;
16+ import com .hypixel .hytale .server .core .universe .PlayerRef ;
1417import com .hypixel .hytale .server .core .universe .Universe ;
1518import com .hypixel .hytale .server .core .universe .world .World ;
1619import io .github .syst3ms .skriptparser .util .SkriptDate ;
@@ -26,6 +29,7 @@ public static void register(SkriptRegistration reg) {
2629 dateTimeFunctions (reg );
2730 itemFunctions (reg );
2831 mathFunctions (reg );
32+ playerFunctions (reg );
2933 positionFunctions (reg );
3034 serverFunctions (reg );
3135 }
@@ -211,6 +215,40 @@ private static void mathFunctions(SkriptRegistration reg) {
211215 .register ();
212216 }
213217
218+ private static void playerFunctions (SkriptRegistration reg ) {
219+ reg .newJavaFunction ("player" , Player .class , true )
220+ .parameter ("name" , String .class )
221+ .parameter ("world" , World .class )
222+ .executeSingle (params -> {
223+ String name = (String ) params [0 ][0 ];
224+ World world = (World ) params [1 ][0 ];
225+
226+ for (PlayerRef playerRef : world .getPlayerRefs ()) {
227+ if (playerRef .getUsername ().equals (name )) {
228+ return PlayerUtils .getPlayer (playerRef , world );
229+ }
230+ }
231+ return null ;
232+ })
233+ .name ("Player" )
234+ .description ("Returns the player with the given name in the given world." )
235+ .examples ("set {_player} to player(\" ShaneBee\" , world(\" default\" ))" )
236+ .since ("INSERT VERSION" )
237+ .register ();
238+
239+ reg .newJavaFunction ("playerRef" , PlayerRef .class , true )
240+ .parameter ("name" , String .class )
241+ .executeSingle (params -> {
242+ String name = (String ) params [0 ][0 ];
243+ return PlayerUtils .getPlayerRef (name );
244+ })
245+ .name ("PlayerRef" )
246+ .description ("Returns the PlayerRef with the given name." )
247+ .examples ("set {_ref} to playerRef(\" ShaneBee\" )" )
248+ .since ("INSERT VERSION" )
249+ .register ();
250+ }
251+
214252 private static void positionFunctions (SkriptRegistration reg ) {
215253 reg .newJavaFunction ("box" , Box .class , true )
216254 .parameter ("x1" , Number .class )
0 commit comments