package com.hypixel.hytale.builtin.instances.removal; import com.hypixel.hytale.builtin.instances.InstancesPlugin; import com.hypixel.hytale.codec.Codec; import com.hypixel.hytale.codec.KeyedCodec; import com.hypixel.hytale.codec.builder.BuilderCodec; import com.hypixel.hytale.component.Resource; import com.hypixel.hytale.component.ResourceType; import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore; import java.time.Instant; import javax.annotation.Nonnull; public class InstanceDataResource implements Resource { public static final BuilderCodec CODEC = BuilderCodec.builder(InstanceDataResource.class, InstanceDataResource::new) .append(new KeyedCodec<>("TimeoutTimer", Codec.INSTANT), (o, i) -> o.timeoutTimer = i, o -> o.timeoutTimer) .add() .append(new KeyedCodec<>("IdleTimeoutTimer", Codec.INSTANT), (o, i) -> o.idleTimeoutTimer = i, o -> o.idleTimeoutTimer) .add() .append(new KeyedCodec<>("HadPlayer", Codec.BOOLEAN), (o, i) -> o.hadPlayer = i, o -> o.hadPlayer) .add() .append(new KeyedCodec<>("WorldTimeoutTimer", Codec.INSTANT), (o, i) -> o.worldTimeoutTimer = i, o -> o.worldTimeoutTimer) .add() .build(); private boolean isRemoving; private Instant timeoutTimer; private Instant idleTimeoutTimer; private boolean hadPlayer; private Instant worldTimeoutTimer; @Nonnull public static ResourceType getResourceType() { return InstancesPlugin.get().getInstanceDataResourceType(); } public boolean isRemoving() { return this.isRemoving; } public void setRemoving(boolean removing) { this.isRemoving = removing; } public Instant getTimeoutTimer() { return this.timeoutTimer; } public void setTimeoutTimer(Instant timeoutTimer) { this.timeoutTimer = timeoutTimer; } public Instant getIdleTimeoutTimer() { return this.idleTimeoutTimer; } public void setIdleTimeoutTimer(Instant idleTimeoutTimer) { this.idleTimeoutTimer = idleTimeoutTimer; } public boolean hadPlayer() { return this.hadPlayer; } public void setHadPlayer(boolean hadPlayer) { this.hadPlayer = hadPlayer; } public Instant getWorldTimeoutTimer() { return this.worldTimeoutTimer; } public void setWorldTimeoutTimer(Instant worldTimeoutTimer) { this.worldTimeoutTimer = worldTimeoutTimer; } @Nonnull public InstanceDataResource clone() { return new InstanceDataResource(); } }