OnRemove class

Пакет: com.hypixel.hytale.builtin.instances.blocks

Файл: com/hypixel/hytale/builtin/instances/blocks/InstanceBlock.java

extends: RefSystem<ChunkStore>

Поля (1)

МодификаторыТипИмя
InstanceBlock var5

Методы (5)

МодификаторыВозвратСигнатура
public Query<ChunkStore> getQuerypublic Query<ChunkStore> getQuery()
if if(var5.closeOnRemove)
if if(var5.worldUUID != null)
public void onEntityAddedpublic void onEntityAdded(@Nonnull Ref<ChunkStore> var1, @Nonnull AddReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4)
public void onEntityRemovepublic void onEntityRemove(@Nonnull Ref<ChunkStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.instances.blocks;

class="kw">import com.hypixel.hytale.builtin.instances.InstancesPlugin;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.RemoveReason;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.component.query.Query;
class="kw">import com.hypixel.hytale.component.system.RefSystem;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import java.util.UUID;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class InstanceBlock class="kw">implements Component<ChunkStore> {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<InstanceBlock> CODEC = BuilderCodec.builder(InstanceBlock.class, InstanceBlock::new)
      .appendInherited(
         new KeyedCodec<>("WorldName", Codec.UUID_BINARY),
         (var0, var1) -> var0.worldUUID = var1,
         var0 -> var0.worldUUID,
         (var0, var1) -> var0.worldUUID = var1.worldUUID
      )
      .add()
      .appendInherited(
         new KeyedCodec<>("CloseOnBlockRemove", Codec.BOOLEAN),
         (var0, var1) -> var0.closeOnRemove = var1,
         var0 -> var0.closeOnRemove,
         (var0, var1) -> var0.closeOnRemove = var1.closeOnRemove
      )
      .add()
      .build();
   class="kw">protected UUID worldUUID;
   class="kw">protected CompletableFuture<World> worldFuture;
   class="kw">protected boolean closeOnRemove = true;

   @Nonnull
   class="kw">public class="kw">static ComponentType<ChunkStore, InstanceBlock> getComponentType() {
      class="kw">return InstancesPlugin.get().getInstanceBlockComponentType();
   }

   class="kw">public InstanceBlock() {
   }

   class="kw">public InstanceBlock(UUID var1, boolean var2) {
      this.worldUUID = var1;
      this.closeOnRemove = var2;
   }

   class="kw">public UUID getWorldUUID() {
      class="kw">return this.worldUUID;
   }

   class="kw">public void setWorldUUID(UUID var1) {
      this.worldUUID = var1;
   }

   class="kw">public CompletableFuture<World> getWorldFuture() {
      class="kw">return this.worldFuture;
   }

   class="kw">public void setWorldFuture(CompletableFuture<World> var1) {
      this.worldFuture = var1;
   }

   class="kw">public boolean isCloseOnRemove() {
      class="kw">return this.closeOnRemove;
   }

   class="kw">public void setCloseOnRemove(boolean var1) {
      this.closeOnRemove = var1;
   }

   @Nullable
   @Override
   class="kw">public Component<ChunkStore> clone() {
      class="kw">return new InstanceBlock(this.worldUUID, this.closeOnRemove);
   }

   class="kw">public class="kw">static class OnRemove class="kw">extends RefSystem<ChunkStore> {
      class="kw">public OnRemove() {
      }

      @Override
      class="kw">public void onEntityAdded(
         @Nonnull Ref<ChunkStore> var1, @Nonnull AddReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
      ) {
      }

      @Override
      class="kw">public void onEntityRemove(
         @Nonnull Ref<ChunkStore> var1, @Nonnull RemoveReason var2, @Nonnull Store<ChunkStore> var3, @Nonnull CommandBuffer<ChunkStore> var4
      ) {
         InstanceBlock var5 = var4.getComponent(var1, InstanceBlock.getComponentType());
         assert var5 != null;
         if (var5.closeOnRemove) {
            if (var5.worldUUID != null) {
               InstancesPlugin.safeRemoveInstance(var5.worldUUID);
            } else if (var5.worldFuture != null) {
               var5.worldFuture.thenAccept(var0 -> InstancesPlugin.safeRemoveInstance(var0.getName()));
            }
         }
      }

      @Nullable
      @Override
      class="kw">public Query<ChunkStore> getQuery() {
         class="kw">return InstanceBlock.getComponentType();
      }
   }
}