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() {
}
}
}