package com.hypixel.hytale.server.spawning.suppression.component; import com.hypixel.hytale.component.Ref; import com.hypixel.hytale.component.Resource; import com.hypixel.hytale.component.ResourceType; import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore; import com.hypixel.hytale.server.spawning.SpawningPlugin; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import java.util.List; import java.util.Map; import java.util.Map.Entry; import javax.annotation.Nonnull; public class ChunkSuppressionQueue implements Resource { private final List, ChunkSuppressionEntry>> toAdd = new ObjectArrayList(); private final List> toRemove = new ObjectArrayList(); public static ResourceType getResourceType() { return SpawningPlugin.get().getChunkSuppressionQueueResourceType(); } @Nonnull public List, ChunkSuppressionEntry>> getToAdd() { return this.toAdd; } @Nonnull public List> getToRemove() { return this.toRemove; } public void queueForAdd(@Nonnull Ref reference, @Nonnull ChunkSuppressionEntry entry) { this.toAdd.add(Map.entry(reference, entry)); } public void queueForRemove(Ref reference) { this.toRemove.add(reference); } @Nonnull @Override public Resource clone() { ChunkSuppressionQueue queue = new ChunkSuppressionQueue(); queue.toAdd.addAll(this.toAdd); queue.toRemove.addAll(this.toRemove); return queue; } }