Skip to content

Commit 5dea895

Browse files
committed
Add player functions
1 parent 16be680 commit 5dea895

2 files changed

Lines changed: 43 additions & 0 deletions

File tree

src/main/java/com/github/skriptdev/skript/api/hytale/utils/PlayerUtils.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.hypixel.hytale.component.spatial.SpatialResource;
66
import com.hypixel.hytale.math.vector.Location;
77
import com.hypixel.hytale.math.vector.Vector3d;
8+
import com.hypixel.hytale.server.core.NameMatching;
89
import com.hypixel.hytale.server.core.entity.entities.Player;
910
import com.hypixel.hytale.server.core.modules.entity.EntityModule;
1011
import com.hypixel.hytale.server.core.universe.PlayerRef;
@@ -86,6 +87,10 @@ public static List<PlayerRef> getPlayerRefs(@Nullable World world) {
8687
return store.getComponent(reference, PlayerRef.getComponentType());
8788
}
8889

90+
public static @Nullable PlayerRef getPlayerRef(String name) {
91+
return Universe.get().getPlayerByUsername(name, NameMatching.EXACT_IGNORE_CASE);
92+
}
93+
8994
/**
9095
* Get a Player from a PlayerRef.
9196
*

src/main/java/com/github/skriptdev/skript/plugin/elements/functions/DefaultFunctions.java

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.github.skriptdev.skript.plugin.elements.functions;
22

3+
import com.github.skriptdev.skript.api.hytale.utils.PlayerUtils;
34
import com.github.skriptdev.skript.api.skript.registration.SkriptRegistration;
45
import com.hypixel.hytale.math.shape.Box;
56
import com.hypixel.hytale.math.vector.Location;
@@ -8,9 +9,11 @@
89
import com.hypixel.hytale.math.vector.Vector3i;
910
import com.hypixel.hytale.protocol.packets.worldmap.ContextMenuItem;
1011
import com.hypixel.hytale.server.core.asset.type.item.config.Item;
12+
import com.hypixel.hytale.server.core.entity.entities.Player;
1113
import com.hypixel.hytale.server.core.inventory.ItemStack;
1214
import com.hypixel.hytale.server.core.inventory.container.ItemContainer;
1315
import com.hypixel.hytale.server.core.inventory.container.SimpleItemContainer;
16+
import com.hypixel.hytale.server.core.universe.PlayerRef;
1417
import com.hypixel.hytale.server.core.universe.Universe;
1518
import com.hypixel.hytale.server.core.universe.world.World;
1619
import 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

Comments
 (0)