Code Patterns
Copy-paste examples for common plugin tasks. Commands, events, ECS, GUI, and more.
All
225
Command
60
Damage
2
Ecs
27
Entity
5
Gui
75
Interaction
2
Inventory
4
Moderation
3
Permission
2
Player
9
Plugin
4
Storage
2
Teleport
3
Ui
22
Util
5
← Back to Patterns
java
ecs
Player Hud Update System
EntityTickingSystem implementation
Example Code
package dev.myplugin.example;
// import dev.myplugin.example.PlayerGameModeInfo; // Anonymized
// import dev.myplugin.example.RoundState; // Anonymized
// import dev.myplugin.example.GameModeState; // Anonymized
import com.hypixel.hytale.component.ArchetypeChunk;
import com.hypixel.hytale.component.CommandBuffer;
import com.hypixel.hytale.component.Store;
import com.hypixel.hytale.component.query.Query;
import com.hypixel.hytale.component.system.tick.EntityTickingSystem;
import com.hypixel.hytale.server.core.entity.entities.Player;
import com.hypixel.hytale.server.core.universe.world.World;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import org.checkerframework.checker.nullness.compatqual.NonNullDecl;
import static ar.ncode.plugin.TroubleInTrorkTownPlugin.gameModeStateForWorld;
public class ExampleSystem extends EntityTickingSystem<EntityStore> {
private static void updatePlayerHud(PlayerGameModeInfo playerInfo) {
if (playerInfo != null) {
playerInfo.getHud().update();
}
}
@Override
public void tick(float dt, int index, @NonNullDecl ArchetypeChunk<EntityStore> archetypeChunk,
@NonNullDecl Store<EntityStore> store, @NonNullDecl CommandBuffer<EntityStore> commandBuffer
) {
World world = store.getExternalData().getWorld();
GameModeState gameModeState = gameModeStateForWorld.get(world.getWorldConfig().getUuid());
if (gameModeState != null && RoundState.IN_GAME.equals(gameModeState.roundState)) {
PlayerGameModeInfo playerInfo = archetypeChunk.getComponent(index, PlayerGameModeInfo.componentType);
if (playerInfo == null || playerInfo.getHud() == null) {
return;
}
playerInfo.setElapsedTimeSinceLastUpdate(playerInfo.getElapsedTimeSinceLastUpdate() + dt);
if (playerInfo.getElapsedTimeSinceLastUpdate() >= 1) {
updatePlayerHud(playerInfo);
playerInfo.setElapsedTimeSinceLastUpdate(0);
}
}
}
@Override
public Query<EntityStore> getQuery() {
return Query.and(Player.getComponentType(), PlayerGameModeInfo.componentType);
}
}