package com.hypixel.hytale.builtin.buildertools.snapshot; import com.hypixel.hytale.component.AddReason; import com.hypixel.hytale.component.ComponentAccessor; import com.hypixel.hytale.component.Holder; import com.hypixel.hytale.component.Ref; 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 javax.annotation.Nonnull; public class EntityRemoveSnapshot implements EntitySnapshot { @Nonnull private final Holder holder; public EntityRemoveSnapshot(@Nonnull Ref ref) { this.holder = ref.getStore().copyEntity(ref); } @Nonnull public Holder getHolder() { return this.holder; } public EntityAddSnapshot restoreEntity(@Nonnull Player player, @Nonnull World world, @Nonnull ComponentAccessor componentAccessor) { Ref entityRef = componentAccessor.addEntity(this.holder, AddReason.LOAD); return new EntityAddSnapshot(entityRef); } }