JumpIfToolArgOperation class

Пакет: com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.sequential.flowcontrol

Файл: com/hypixel/hytale/builtin/buildertools/scriptedbrushes/operations/sequential/flowcontrol/JumpIfToolArgOperation.java

extends: SequenceBrushOperation

Поля (25)

МодификаторыТипИмя
final BuilderCodec<JumpIfToolArgOperation> CODEC
Equals, NotEquals, Contains
break
break
break
break
break
Object var10
boolean var11
var11
var11
var11
var11
var11
var11
var11
var11
boolean var12
boolean var13
String var15
Player var5
BuilderTool var6
ItemStack var7
BuilderTool.ArgData var8
Map var9

Методы (9)

МодификаторыВозвратСигнатура
ComparisonType ComparisonType()
if if(var6 == null)
if if(var7 == null)
if if(var10 instanceof Boolean)
if if(var11)
abstract super super("Jump If Tool Arg", "Jump stack execution based on a builder tool argument comparison", false)
switch switch(this.comparisonTypeArg)
switch switch(this.comparisonTypeArg)
switch switch(this.comparisonTypeArg)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.sequential.flowcontrol;

class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.BrushConfig;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.BrushConfigCommandExecutor;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.system.SequenceBrushOperation;
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.codecs.EnumCodec;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.server.core.asset.type.buildertool.config.BuilderTool;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.inventory.InventoryComponent;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.Locale;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;

class="kw">public class JumpIfToolArgOperation class="kw">extends SequenceBrushOperation {
   class="kw">public class="kw">static class="kw">final BuilderCodec<JumpIfToolArgOperation> CODEC = BuilderCodec.builder(JumpIfToolArgOperation.class, JumpIfToolArgOperation::new)
      .append(new KeyedCodec<>("ArgName", Codec.STRING), (var0, var1) -> var0.argNameArg = var1, var0 -> var0.argNameArg)
      .documentation("The name of the tool arg to compare")
      .add()
      .<JumpIfToolArgOperation.ComparisonType>append(
         new KeyedCodec<>("ComparisonType", new EnumCodec<>(JumpIfToolArgOperation.ComparisonType.class)),
         (var0, var1) -> var0.comparisonTypeArg = var1,
         var0 -> var0.comparisonTypeArg
      )
      .documentation("The type of comparison to perform")
      .add()
      .<String>append(new KeyedCodec<>("ComparisonValue", Codec.STRING), (var0, var1) -> var0.comparisonValueArg = var1, var0 -> var0.comparisonValueArg)
      .documentation("The value to compare against (for boolean: 'true' or 'false', for string: the exact string or dropdown option)")
      .add()
      .<String>append(new KeyedCodec<>("StoredIndexName", Codec.STRING), (var0, var1) -> var0.indexVariableNameArg = var1, var0 -> var0.indexVariableNameArg)
      .documentation("The labeled index to jump to, previous or future")
      .add()
      .documentation("Jump stack execution based on a builder tool argument comparison (supports checkbox/bool and dropdown/option types)")
      .build();
   @Nonnull
   class="kw">public String argNameArg = "";
   @Nonnull
   class="kw">public JumpIfToolArgOperation.ComparisonType comparisonTypeArg = JumpIfToolArgOperation.ComparisonType.Equals;
   @Nonnull
   class="kw">public String comparisonValueArg = "";
   @Nonnull
   class="kw">public String indexVariableNameArg = "Undefined";

   class="kw">public JumpIfToolArgOperation() {
      super("Jump If Tool Arg", "Jump stack execution based on a builder tool argument comparison", false);
   }

   @Override
   class="kw">public void modifyBrushConfig(
      @Nonnull Ref<EntityStore> var1, @Nonnull BrushConfig var2, @Nonnull BrushConfigCommandExecutor var3, @Nonnull ComponentAccessor<EntityStore> var4
   ) {
      Player var5 = var4.getComponent(var1, Player.getComponentType());
      assert var5 != null;
      BuilderTool var6 = BuilderTool.getActiveBuilderTool(var1, var4);
      if (var6 == null) {
         var2.setErrorFlag("JumpIfToolArg: No active builder tool");
      } else {
         ItemStack var7 = InventoryComponent.getItemInHand(var4, var1);
         if (var7 == null) {
            var2.setErrorFlag("JumpIfToolArg: No item in hand");
         } else {
            BuilderTool.ArgData var8 = var6.getItemArgData(var7);
            Map var9 = var8.tool();
            if (var9 != null && var9.containsKey(this.argNameArg)) {
               Object var10 = var9.get(this.argNameArg);
               boolean var11 = false;
               if (var10 class="kw">instanceof Boolean) {
                  boolean var12 = (Boolean)var10;
                  boolean var13 = Boolean.parseBoolean(this.comparisonValueArg);
                  class="kw">switch (this.comparisonTypeArg) {
                     case Equals:
                        var11 = var12 == var13;
                        break;
                     case NotEquals:
                        var11 = var12 != var13;
                     case Contains:
                  }
               } else if (var10 class="kw">instanceof String var14) {
                  class="kw">switch (this.comparisonTypeArg) {
                     case Equals:
                        var11 = var14.equalsIgnoreCase(this.comparisonValueArg);
                        break;
                     case NotEquals:
                        var11 = !var14.equalsIgnoreCase(this.comparisonValueArg);
                        break;
                     case Contains:
                        var11 = var14.toLowerCase(Locale.ROOT).contains(this.comparisonValueArg.toLowerCase(Locale.ROOT));
                  }
               } else {
                  String var15 = var10.toString();
                  class="kw">switch (this.comparisonTypeArg) {
                     case Equals:
                        var11 = var15.equalsIgnoreCase(this.comparisonValueArg);
                        break;
                     case NotEquals:
                        var11 = !var15.equalsIgnoreCase(this.comparisonValueArg);
                        break;
                     case Contains:
                        var11 = var15.toLowerCase(Locale.ROOT).contains(this.comparisonValueArg.toLowerCase(Locale.ROOT));
                  }
               }

               if (var11) {
                  var3.loadOperatingIndex(this.indexVariableNameArg);
               }
            } else {
               var2.setErrorFlag("JumpIfToolArg: Tool arg '" + this.argNameArg + "' not found");
            }
         }
      }
   }

   class="kw">public enum ComparisonType {
      Equals,
      NotEquals,
      Contains;

      ComparisonType() {
      }
   }
}