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();
}
}
}