ValidationResult enum

Пакет: com.hypixel.hytale.builtin.adventure.teleporter.component

Файл: com/hypixel/hytale/builtin/adventure/teleporter/component/Teleporter.java

Поля (1)

МодификаторыТипИмя
VALID, NAME_INVALID, WARP_INVALID, CREATOR_INVALID, POSITION_INVALID

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.teleporter.component;

class="kw">import com.hypixel.hytale.builtin.adventure.teleporter.TeleporterPlugin;
class="kw">import com.hypixel.hytale.builtin.teleport.TeleportPlugin;
class="kw">import com.hypixel.hytale.builtin.teleport.Warp;
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.Component;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.math.vector.Rotation3f;
class="kw">import com.hypixel.hytale.math.vector.Transform;
class="kw">import com.hypixel.hytale.server.core.asset.type.wordlist.WordList;
class="kw">import com.hypixel.hytale.server.core.modules.block.BlockModule;
class="kw">import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport;
class="kw">import com.hypixel.hytale.server.core.universe.Universe;
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 java.util.Locale;
class="kw">import java.util.UUID;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;

class="kw">public class Teleporter class="kw">implements Component<ChunkStore> {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<Teleporter> CODEC = BuilderCodec.builder(Teleporter.class, Teleporter::new)
      .append(new KeyedCodec<>("World", Codec.UUID_BINARY), (var0, var1) -> var0.worldUuid = var1, var0 -> var0.worldUuid)
      .add()
      .append(new KeyedCodec<>("Transform", Transform.PARTIAL_TELEPORT_CODEC), (var0, var1) -> var0.transform = var1, var0 -> var0.transform)
      .add()
      .append(new KeyedCodec<>("Relative", Codec.BYTE), (var0, var1) -> var0.relativeMask = var1, var0 -> var0.relativeMask)
      .add()
      .append(new KeyedCodec<>("Warp", Codec.STRING), (var0, var1) -> var0.warp = var1, var0 -> var0.warp)
      .add()
      .append(new KeyedCodec<>("OwnedWarp", Codec.STRING), (var0, var1) -> var0.ownedWarp = var1, var0 -> var0.ownedWarp)
      .add()
      .append(new KeyedCodec<>("IsCustomName", Codec.BOOLEAN), (var0, var1) -> var0.isCustomName = var1, var0 -> var0.isCustomName)
      .add()
      .<String>append(new KeyedCodec<>("WarpNameWordList", Codec.STRING), (var0, var1) -> var0.warpNameWordListKey = var1, var0 -> var0.warpNameWordListKey)
      .documentation("The ID of the Word list to select class="kw">default warp names from")
      .add()
      .build();
   class="kw">public class="kw">static class="kw">final String CREATOR_IDENTIFIER = "*Teleporter";
   class="kw">public class="kw">static class="kw">final String ACTIVATE_STATE = "Active";
   class="kw">public class="kw">static class="kw">final String INACTIVE_STATE = "class="kw">default";
   @Nullable
   class="kw">private UUID worldUuid;
   @Nullable
   class="kw">private Transform transform;
   class="kw">private byte relativeMask = 0;
   @Nullable
   class="kw">private String warp;
   @Deprecated
   @Nullable
   class="kw">private String ownedWarp;
   class="kw">private boolean isCustomName;
   class="kw">private String warpNameWordListKey;

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

   class="kw">public class="kw">static ComponentType<ChunkStore, Teleporter> getComponentType() {
      class="kw">return TeleporterPlugin.get().getTeleporterComponentType();
   }

   @Nullable
   class="kw">public UUID getWorldUuid() {
      class="kw">return this.worldUuid;
   }

   class="kw">public void setWorldUuid(@Nullable UUID var1) {
      this.worldUuid = var1;
   }

   @Nullable
   class="kw">public Transform getTransform() {
      class="kw">return this.transform;
   }

   class="kw">public void setTransform(@Nullable Transform var1) {
      this.transform = var1;
   }

   class="kw">public byte getRelativeMask() {
      class="kw">return this.relativeMask;
   }

   class="kw">public void setRelativeMask(byte var1) {
      this.relativeMask = var1;
   }

   @Nullable
   class="kw">public String getWarp() {
      class="kw">return this.warp;
   }

   class="kw">public void setWarp(@Nullable String var1) {
      this.warp = var1 != null && !var1.isEmpty() ? var1 : null;
   }

   @Nullable
   class="kw">public String getOwnedWarp() {
      class="kw">return this.ownedWarp;
   }

   class="kw">public void setOwnedWarp(@Nullable String var1) {
      this.ownedWarp = var1;
   }

   class="kw">public boolean hasOwnedWarp() {
      class="kw">return this.ownedWarp != null && !this.ownedWarp.isEmpty();
   }

   class="kw">public void setWarpNameWordListKey(String var1) {
      this.warpNameWordListKey = var1;
   }

   class="kw">public boolean isCustomName() {
      class="kw">return this.isCustomName;
   }

   class="kw">public void setIsCustomName(boolean var1) {
      this.isCustomName = var1;
   }

   @Nullable
   class="kw">public String getWarpNameWordListKey() {
      class="kw">return this.warpNameWordListKey;
   }

   @Nullable
   class="kw">public WordList getWarpNameWordList() {
      class="kw">return WordList.getWordList(this.warpNameWordListKey);
   }

   class="kw">public boolean isValid() {
      if (this.warp != null && !this.warp.isEmpty()) {
         class="kw">return TeleportPlugin.get().getWarps().get(this.warp.toLowerCase(Locale.ROOT)) != null;
      } else if (this.transform != null) {
         class="kw">return this.worldUuid != null ? Universe.get().getWorld(this.worldUuid) != null : true;
      } else {
         class="kw">return false;
      }
   }

   @Nonnull
   @Override
   class="kw">public Component<ChunkStore> clone() {
      Teleporter var1 = new Teleporter();
      var1.worldUuid = this.worldUuid;
      var1.transform = this.transform != null ? this.transform.clone() : null;
      var1.relativeMask = this.relativeMask;
      var1.warp = this.warp;
      var1.ownedWarp = this.ownedWarp;
      var1.isCustomName = this.isCustomName;
      var1.warpNameWordListKey = this.warpNameWordListKey;
      class="kw">return var1;
   }

   @Nullable
   class="kw">public Teleport toTeleport(@Nonnull Vector3d var1, @Nonnull Rotation3f var2, @Nonnull Vector3i var3) {
      if (this.warp != null && !this.warp.isEmpty()) {
         Warp var7 = TeleportPlugin.get().getWarps().get(this.warp.toLowerCase(Locale.ROOT));
         class="kw">return var7 != null ? var7.toTeleport() : null;
      }

      if (this.transform != null) {
         if (this.worldUuid != null) {
            World var4 = Universe.get().getWorld(this.worldUuid);
            if (var4 != null) {
               if (this.relativeMask != 0) {
                  Transform var5 = new Transform(this.transform);
                  Transform.applyMaskedRelativeTransform(var5, this.relativeMask, var1, var2, var3);
                  class="kw">return Teleport.createForPlayer(var4, var5);
               }

               class="kw">return Teleport.createForPlayer(var4, this.transform);
            }
         }

         if (this.relativeMask != 0) {
            Transform var6 = new Transform(this.transform);
            Transform.applyMaskedRelativeTransform(var6, this.relativeMask, var1, var2, var3);
            class="kw">return Teleport.createForPlayer(var6);
         } else {
            class="kw">return Teleport.createForPlayer(this.transform);
         }
      } else {
         class="kw">return null;
      }
   }

   class="kw">public class="kw">static Teleporter.ValidationResult validateWarp(@Nonnull Store<ChunkStore> var0, @Nonnull Teleporter var1, @Nonnull BlockModule.BlockStateInfo var2) {
      String var3 = var1.getOwnedWarp();
      if (var3 != null && !var3.isEmpty()) {
         TeleportPlugin var4 = TeleportPlugin.get();
         String var5 = var3.toLowerCase(Locale.ROOT);
         Warp var6 = var4.getWarps().get(var5);
         if (var6 != null && var6.getTransform() != null) {
            if (!var6.getCreator().equals("*Teleporter")) {
               class="kw">return Teleporter.ValidationResult.CREATOR_INVALID;
            }

            Vector3d var7 = var6.getTransform().getPosition();
            int var8 = MathUtil.floor(var7.x);
            int var9 = MathUtil.floor(var7.y);
            int var10 = MathUtil.floor(var7.z);
            if (var2.getIndex() != ChunkUtil.indexBlock(var8, var9, var10)) {
               class="kw">return Teleporter.ValidationResult.POSITION_INVALID;
            }

            Ref var11 = var0.getExternalData().getChunkSectionReferenceAtBlock(var8, var9, var10);
            class="kw">return !var2.getSectionRef().equals(var11) ? Teleporter.ValidationResult.POSITION_INVALID : Teleporter.ValidationResult.VALID;
         } else {
            class="kw">return Teleporter.ValidationResult.WARP_INVALID;
         }
      } else {
         class="kw">return Teleporter.ValidationResult.NAME_INVALID;
      }
   }

   class="kw">public enum ValidationResult {
      VALID,
      NAME_INVALID,
      WARP_INVALID,
      CREATOR_INVALID,
      POSITION_INVALID;

      ValidationResult() {
      }
   }
}