Status enum

Пакет: com.hypixel.hytale.builtin.beds.sleep.systems.world

Файл: com/hypixel/hytale/builtin/beds/sleep/systems/world/CanSleepInWorld.java

implements: CanSleepInWorld.Result

Поля (1)

МодификаторыТипИмя
CAN_SLEEP, GAME_TIME_PAUSED

Методы (1)

МодификаторыВозвратСигнатура
public boolean isNegativepublic boolean isNegative()

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.beds.sleep.systems.world;

class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.server.core.asset.type.gameplay.sleep.SleepConfig;
class="kw">import com.hypixel.hytale.server.core.modules.time.WorldTimeResource;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.time.LocalDateTime;
class="kw">import javax.annotation.Nonnull;

class="kw">public class="kw">final class CanSleepInWorld {
   class="kw">public CanSleepInWorld() {
   }

   @Nonnull
   class="kw">public class="kw">static CanSleepInWorld.Result check(@Nonnull World var0) {
      if (var0.getWorldConfig().isGameTimePaused()) {
         class="kw">return CanSleepInWorld.Status.GAME_TIME_PAUSED;
      }

      Store var1 = var0.getEntityStore().getStore();
      LocalDateTime var2 = var1.getResource(WorldTimeResource.getResourceType()).getGameDateTime();
      SleepConfig var3 = var0.getGameplayConfig().getWorldConfig().getSleepConfig();
      class="kw">return !var3.isWithinSleepHoursRange(var2) ? new CanSleepInWorld.NotDuringSleepHoursRange(var2, var3) : CanSleepInWorld.Status.CAN_SLEEP;
   }

   class="kw">public record NotDuringSleepHoursRange(LocalDateTime worldTime, SleepConfig sleepConfig) class="kw">implements CanSleepInWorld.Result {
      class="kw">public NotDuringSleepHoursRange {
      }

      @Override
      class="kw">public boolean isNegative() {
         class="kw">return true;
      }
   }

   class="kw">public sealed class="kw">interface Result permits CanSleepInWorld.NotDuringSleepHoursRange, CanSleepInWorld.Status {
      boolean isNegative();
   }

   class="kw">public enum Status class="kw">implements CanSleepInWorld.Result {
      CAN_SLEEP,
      GAME_TIME_PAUSED;

      Status() {
      }

      @Override
      class="kw">public boolean isNegative() {
         class="kw">return this != CAN_SLEEP;
      }
   }
}