ReplaceInteraction class

Пакет: com.hypixel.hytale.server.core.modules.interaction.interaction.config.none

Файл: com/hypixel/hytale/server/core/modules/interaction/interaction/config/none/ReplaceInteraction.java

extends: Interaction

Поля (7)

МодификаторыТипИмя
com.hypixel.hytale.protocol.ReplaceInteraction var2
Map var3
Map var3
String var4
var4
String var4
RootInteraction var5

Методы (7)

МодификаторыВозвратСигнатура
private void doReplacevoid doReplace(@Nonnull InteractionContext var1, boolean var2)
if if(var1)
if if(var1)
if if(var4 == null && !this.defaultOk && var2)
if if(var4 == null)
if if(var4 == null)
if if(var4 != null)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.interaction.interaction.config.none;

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.codec.validation.Validators;
class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.protocol.InteractionState;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.protocol.WaitForDataFrom;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionContext;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionManager;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.CooldownHandler;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.Interaction;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.RootInteraction;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.data.Collector;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.data.StringTag;
class="kw">import java.util.Map;
class="kw">import java.util.concurrent.TimeUnit;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class ReplaceInteraction class="kw">extends Interaction {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<ReplaceInteraction> CODEC = BuilderCodec.builder(
         ReplaceInteraction.class, ReplaceInteraction::new, Interaction.ABSTRACT_CODEC
      )
      .documentation("Runs the interaction defined by the interaction variables if defined.")
      .<String>appendInherited(
         new KeyedCodec<>("DefaultValue", RootInteraction.CHILD_ASSET_CODEC),
         (var0, var1) -> var0.defaultValue = var1,
         var0 -> var0.defaultValue,
         (var0, var1) -> var0.defaultValue = var1.defaultValue
      )
      .addValidatorLate(() -> RootInteraction.VALIDATOR_CACHE.getValidator().late())
      .add()
      .<String>appendInherited(
         new KeyedCodec<>("Var", Codec.STRING), (var0, var1) -> var0.variable = var1, var0 -> var0.variable, (var0, var1) -> var0.variable = var1.variable
      )
      .addValidator(Validators.nonNull())
      .add()
      .appendInherited(
         new KeyedCodec<>("DefaultOk", Codec.BOOLEAN),
         (var0, var1) -> var0.defaultOk = var1,
         var0 -> var0.defaultOk,
         (var0, var1) -> var0.defaultOk = var1.defaultOk
      )
      .add()
      .build();
   class="kw">private class="kw">static class="kw">final StringTag TAG_DEFAULT = StringTag.of("Default");
   class="kw">private class="kw">static class="kw">final StringTag TAG_VARS = StringTag.of("Vars");
   @Nullable
   class="kw">protected String defaultValue;
   class="kw">protected String variable;
   class="kw">protected boolean defaultOk;

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

   @Nonnull
   @Override
   class="kw">public WaitForDataFrom getWaitForDataFrom() {
      class="kw">return WaitForDataFrom.None;
   }

   @Override
   class="kw">protected void tick0(boolean var1, float var2, @Nonnull InteractionType var3, @Nonnull InteractionContext var4, @Nonnull CooldownHandler var5) {
      if (!Interaction.failed(var4.getState().state)) {
         if (var1) {
            this.doReplace(var4, true);
         }
      }
   }

   @Override
   class="kw">protected void simulateTick0(boolean var1, float var2, @Nonnull InteractionType var3, @Nonnull InteractionContext var4, @Nonnull CooldownHandler var5) {
      if (!Interaction.failed(var4.getState().state)) {
         if (var1) {
            this.doReplace(var4, false);
         }
      }
   }

   class="kw">private void doReplace(@Nonnull InteractionContext var1, boolean var2) {
      Map var3 = var1.getInteractionVars();
      String var4 = var3 == null ? null : var3.get(this.variable);
      if (var4 == null && !this.defaultOk && var2) {
         ((HytaleLogger.Api)HytaleLogger.getLogger().at(Level.SEVERE).atMostEvery(1, TimeUnit.MINUTES))
            .log("Missing replacement interactions for interaction: %s for var %s on item %s", this.id, this.variable, var1.getHeldItem());
      }

      if (var4 == null) {
         var4 = this.defaultValue;
      }

      if (var4 == null) {
         var1.getState().state = InteractionState.Failed;
      } else {
         RootInteraction var5 = RootInteraction.getRootInteractionOrUnknown(var4);
         var1.getState().state = InteractionState.Finished;
         var1.execute(var5);
      }
   }

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

   @Override
   class="kw">public boolean walk(@Nonnull Collector var1, @Nonnull InteractionContext var2) {
      Map var3 = var2.getInteractionVars();
      String var4 = var3 != null ? var3.get(this.variable) : null;
      if (var4 != null) {
         class="kw">return InteractionManager.walkInteractions(var1, var2, TAG_VARS, RootInteraction.getRootInteractionOrUnknown(var4).getInteractionIds());
      } else {
         class="kw">return this.defaultValue != null
            ? InteractionManager.walkInteractions(var1, var2, TAG_DEFAULT, RootInteraction.getRootInteractionOrUnknown(this.defaultValue).getInteractionIds())
            : false;
      }
   }

   @Nonnull
   @Override
   class="kw">protected com.hypixel.hytale.protocol.Interaction generatePacket() {
      class="kw">return new com.hypixel.hytale.protocol.ReplaceInteraction();
   }

   @Override
   class="kw">protected void configurePacket(com.hypixel.hytale.protocol.Interaction var1) {
      super.configurePacket(var1);
      com.hypixel.hytale.protocol.ReplaceInteraction var2 = (com.hypixel.hytale.protocol.ReplaceInteraction)var1;
      var2.defaultValue = RootInteraction.getRootInteractionIdOrUnknown(this.defaultValue);
      var2.variable = this.variable;
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "ReplaceInteraction{defaultValue='"
         + this.defaultValue
         + "', variable='"
         + this.variable
         + "', defaultOk="
         + this.defaultOk
         + "} "
         + super.toString();
   }
}