Skip to content

Player API

This reference covers the core classes for working with players in Hytale server mods.

ClassPurposeThread Safety
PlayerRefHandle for connected player, works anywhereSafe from any thread
PlayerECS component with game stateRequires world thread

PlayerRef is the primary handle - use it for messaging, transfers, and getting the entity reference.

Player is the ECS component - use it for game state like inventory, game mode, and managers.

The primary handle for interacting with a connected player. Accessible from anywhere, even off the world thread.

Package: com.hypixel.hytale.server.core.universe.PlayerRef

MethodReturn TypeDescription
getUuid()UUIDPlayer’s unique identifier
getUsername()StringPlayer’s display name
getLanguage()StringPlayer’s language preference
getPacketHandler()PacketHandlerNetwork connection for sending packets
getChunkTracker()ChunkTrackerManages loaded chunks for this player
getHiddenPlayersManager()HiddenPlayersManagerControls player visibility
getTransform()TransformLast known position/rotation
getWorldUuid()UUIDUUID of the world the player is in (nullable)
MethodDescription
sendMessage(Message)Send a chat message to the player
referToServer(host, port)Transfer player to another server
referToServer(host, port, data)Transfer with custom data

See Messaging and Server Transfer for details.

MethodReturn TypeDescription
getReference()Ref<EntityStore>Entity reference when in a world (nullable)
getHolder()Holder<EntityStore>Entity holder when not in a world (nullable)
isValid()booleanTrue if player has either a reference or holder
ComponentType<EntityStore, PlayerRef> type = PlayerRef.getComponentType();
public class MyCommand extends AbstractPlayerCommand {
@Override
protected void execute(CommandContext context, Store<EntityStore> store,
Ref<EntityStore> ref, PlayerRef playerRef, World world) {
// playerRef is the command sender
UUID uuid = playerRef.getUuid();
String name = playerRef.getUsername();
// get Player component
Player player = store.getComponent(ref, Player.getComponentType());
}
}
events.registerGlobal(PlayerConnectEvent.class, event -> {
PlayerRef playerRef = event.getPlayerRef();
Holder<EntityStore> holder = event.getHolder();
// access components from holder
Player player = holder.getComponent(Player.getComponentType());
});
events.registerGlobal(PlayerReadyEvent.class, event -> {
Ref<EntityStore> ref = event.getPlayerRef();
Player player = event.getPlayer();
// player is now fully loaded in world
});
PlayerRef player = Universe.get().getPlayer(uuid);
if (player != null && player.isValid()) {
// player is online and connected
}
ClassPackage
PlayerRefcom.hypixel.hytale.server.core.universe.PlayerRef
Playercom.hypixel.hytale.server.core.entity.entities.Player
Universecom.hypixel.hytale.server.core.universe.Universe
Worldcom.hypixel.hytale.server.core.universe.world.World
PlayerUtilcom.hypixel.hytale.server.core.universe.world.PlayerUtil
GameModecom.hypixel.hytale.protocol.GameMode