IdleTimeoutCondition class
Пакет: com.hypixel.hytale.builtin.instances.removal
Файл: com/hypixel/hytale/builtin/instances/removal/IdleTimeoutCondition.java
implements: RemovalCondition
Поля (5)
| Модификаторы | Тип | Имя |
|---|---|---|
|
InstanceDataResource |
var2 |
|
World |
var3 |
|
Store |
var4 |
|
TimeResource |
var5 |
|
boolean |
var6 |
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
if if(!var6) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.instances.removal;
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.Store;
class="kw">import com.hypixel.hytale.server.core.modules.time.TimeResource;
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 com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.concurrent.TimeUnit;
class="kw">import javax.annotation.Nonnull;
class="kw">public class IdleTimeoutCondition class="kw">implements RemovalCondition {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<IdleTimeoutCondition> CODEC = BuilderCodec.builder(IdleTimeoutCondition.class, IdleTimeoutCondition::new)
.documentation("A condition that triggers after the world has be idle (without players) for a set time.")
.<Double>append(new KeyedCodec<>("TimeoutSeconds", Codec.DOUBLE), (var0, var1) -> var0.timeoutSeconds = var1, var0 -> var0.timeoutSeconds)
.documentation("How long (in seconds) the world has to be idle (without players) for before triggering.")
.add()
.build();
class="kw">private double timeoutSeconds = TimeUnit.MINUTES.toSeconds(5L);
class="kw">public IdleTimeoutCondition() {
}
@Override
class="kw">public boolean shouldRemoveWorld(@Nonnull Store<ChunkStore> var1) {
InstanceDataResource var2 = var1.getResource(InstanceDataResource.getResourceType());
World var3 = var1.getExternalData().getWorld();
Store var4 = var3.getEntityStore().getStore();
TimeResource var5 = var4.getResource(TimeResource.getResourceType());
boolean var6 = var3.getNonSpectatorPlayerCount() > 0;
if (!var6) {
if (var2.getIdleTimeoutTimer() == null) {
var2.setIdleTimeoutTimer(var5.getNow().plusNanos((long)(this.timeoutSeconds * 1.0E9)));
}
class="kw">return var5.getNow().isAfter(var2.getIdleTimeoutTimer());
} else {
var2.setIdleTimeoutTimer(null);
class="kw">return false;
}
}
}