HyCodeYourTale
classpublicPriority 3

HourRangeTriggerCondition

com.hypixel.hytale.builtin.adventure.objectives.config.triggercondition.HourRangeTriggerCondition

extends ObjectiveLocationTriggerCondition

1

Methods

1

Public Methods

2

Fields

1

Constructors

Constants

BuilderCodec<HourRangeTriggerCondition>CODEC= BuilderCodec.builder(HourRangeTriggerCondition.class, HourRangeTriggerCondition::new) .appe...
ResourceType<EntityStore, WorldTimeResource>WORLD_TIME_RESOURCE_RESOURCE_TYPE= WorldTimeResource.getResourceType()

Constructors

public
HourRangeTriggerCondition()

Methods

Public Methods (1)

public
String toString()
@Nonnull@Override

Fields

Protected Fields (2)

protectedint maxHour
protectedint minHour

Inheritance

Parent
Current
Interface
Child

Use mouse wheel to zoom, drag to pan. Click nodes to navigate.

Related Classes

Source Code

package com.hypixel.hytale.builtin.adventure.objectives.config.triggercondition;

import com.hypixel.hytale.builtin.adventure.objectives.markers.objectivelocation.ObjectiveLocationMarker;
import com.hypixel.hytale.codec.Codec;
import com.hypixel.hytale.codec.KeyedCodec;
import com.hypixel.hytale.codec.builder.BuilderCodec;
import com.hypixel.hytale.component.ComponentAccessor;
import com.hypixel.hytale.component.Ref;
import com.hypixel.hytale.component.ResourceType;
import com.hypixel.hytale.server.core.modules.time.WorldTimeResource;
import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
import javax.annotation.Nonnull;

public class HourRangeTriggerCondition extends ObjectiveLocationTriggerCondition {
   public static final BuilderCodec<HourRangeTriggerCondition> CODEC = BuilderCodec.builder(HourRangeTriggerCondition.class, HourRangeTriggerCondition::new)
      .append(
         new KeyedCodec<>("MinHour", Codec.INTEGER),
         (hourRangeTriggerCondition, integer) -> hourRangeTriggerCondition.minHour = integer,
         hourRangeTriggerCondition -> hourRangeTriggerCondition.minHour
      )
      .add()
      .append(
         new KeyedCodec<>("MaxHour", Codec.INTEGER),
         (hourRangeTriggerCondition, integer) -> hourRangeTriggerCondition.maxHour = integer,
         hourRangeTriggerCondition -> hourRangeTriggerCondition.maxHour
      )
      .add()
      .build();
   protected static final ResourceType<EntityStore, WorldTimeResource> WORLD_TIME_RESOURCE_RESOURCE_TYPE = WorldTimeResource.getResourceType();
   protected int minHour;
   protected int maxHour;

   public HourRangeTriggerCondition() {
   }

   @Override
   public boolean isConditionMet(
      @Nonnull ComponentAccessor<EntityStore> componentAccessor, Ref<EntityStore> ref, ObjectiveLocationMarker objectiveLocationMarker
   ) {
      int currentHour = componentAccessor.getResource(WORLD_TIME_RESOURCE_RESOURCE_TYPE).getCurrentHour();
      return this.minHour > this.maxHour
         ? currentHour >= this.minHour || currentHour < this.maxHour
         : currentHour >= this.minHour && currentHour < this.maxHour;
   }

   @Nonnull
   @Override
   public String toString() {
      return "HourRangeTriggerCondition{minHour=" + this.minHour + ", maxHour=" + this.maxHour + "} " + super.toString();
   }
}