package com.hypixel.hytale.server.spawning.world.component; import com.hypixel.hytale.component.Component; import com.hypixel.hytale.component.ComponentType; import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore; import com.hypixel.hytale.server.spawning.SpawningPlugin; import com.hypixel.hytale.server.spawning.world.ChunkEnvironmentSpawnData; import it.unimi.dsi.fastutil.ints.Int2ObjectMap; import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap; import javax.annotation.Nonnull; public class ChunkSpawnData implements Component { private final Int2ObjectMap chunkEnvironmentSpawnDataMap = new Int2ObjectOpenHashMap(); private boolean started; private long lastSpawn; public static ComponentType getComponentType() { return SpawningPlugin.get().getChunkSpawnDataComponentType(); } @Nonnull public Int2ObjectMap getChunkEnvironmentSpawnDataMap() { return this.chunkEnvironmentSpawnDataMap; } public boolean isStarted() { return this.started; } public void setStarted(boolean started) { this.started = started; } public void setLastSpawn(long lastSpawn) { this.lastSpawn = lastSpawn; } public long getLastSpawn() { return this.lastSpawn; } @Override public Component clone() { throw new UnsupportedOperationException("Not implemented!"); } @Nonnull public ChunkEnvironmentSpawnData getEnvironmentSpawnData(int environment) { ChunkEnvironmentSpawnData chunkEnvironmentSpawnData = (ChunkEnvironmentSpawnData)this.chunkEnvironmentSpawnDataMap.get(environment); if (chunkEnvironmentSpawnData == null) { throw new NullPointerException("Failed to get environment data for chunk"); } else { return chunkEnvironmentSpawnData; } } public boolean isOnSpawnCooldown() { return this.lastSpawn != 0L; } }