UserMarkerValidator class

Пакет: com.hypixel.hytale.server.core.universe.world.worldmap.markers.user

Файл: com/hypixel/hytale/server/core/universe/world/worldmap/markers/user/UserMarkerValidator.java

Поля (24)

МодификаторыТипИмя
final int NAME_LENGTH_LIMIT
int var1
int var10
String var11
boolean var2
Store var2
Store var3
World var3
World var4
UserMapMarkerConfig var4
Player var5
UUID var5
Store var5
UserMapMarkersStore var6
UUID var6
Player var6
UUID var7
boolean var7
Transform var7
Collection var8
boolean var8
Vector3d var8
UserMapMarkerConfig var9
double var9

Методы (6)

МодификаторыВозвратСигнатура
public Failpublic Fail(String var1)
static double getMaxRemovalDistanceSquareddouble getMaxRemovalDistanceSquared(Player var0)
abstract return var9 > getMaxRemovalDistanceSquaredreturn var9 > getMaxRemovalDistanceSquared(var6)
static boolean isPlayerTooFarFromMarkerboolean isPlayerTooFarFromMarker(Ref<EntityStore> var0, double var1, double var3)
static UserMarkerValidator.PlaceResult validatePlacingUserMarkerValidator.PlaceResult validatePlacing(Ref<EntityStore> var0, CreateUserMarker var1)
static UserMarkerValidator.RemoveResult validateRemoveUserMarkerValidator.RemoveResult validateRemove(Ref<EntityStore> var0, UserMapMarker var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.worldmap.markers.user;

class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.vector.Transform;
class="kw">import com.hypixel.hytale.protocol.packets.worldmap.CreateUserMarker;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.asset.type.gameplay.worldmap.UserMapMarkerConfig;
class="kw">import com.hypixel.hytale.server.core.entity.UUIDComponent;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.core.universe.world.worldmap.markers.worldstore.WorldMarkersResource;
class="kw">import java.util.Collection;
class="kw">import java.util.UUID;
class="kw">import org.joml.Vector3d;

class="kw">public class="kw">final class UserMarkerValidator {
   class="kw">private class="kw">static class="kw">final int NAME_LENGTH_LIMIT = 24;

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

   class="kw">public class="kw">static UserMarkerValidator.PlaceResult validatePlacing(Ref<EntityStore> var0, CreateUserMarker var1) {
      boolean var2 = var1.shared;
      Store var3 = var0.getStore();
      World var4 = var3.getExternalData().getWorld();
      Player var5 = var3.getComponent(var0, Player.getComponentType());
      if (isPlayerTooFarFromMarker(var0, var1.x, var1.z)) {
         class="kw">return new UserMarkerValidator.Fail("server.worldmap.markers.edit.tooFar");
      } else if (var1.name != null && var1.name.length() > 24) {
         class="kw">return new UserMarkerValidator.Fail("server.worldmap.markers.create.nameTooLong");
      } else {
         UserMapMarkersStore var6 = var2
            ? var4.getChunkStore().getStore().getResource(WorldMarkersResource.getResourceType())
            : var5.getPlayerConfigData().getPerWorldData(var4.getName());
         UUID var7 = var3.getComponent(var0, UUIDComponent.getComponentType()).getUuid();
         Collection var8 = var6.getUserMapMarkers(var7);
         UserMapMarkerConfig var9 = var4.getGameplayConfig().getWorldMapConfig().getUserMapMarkerConfig();
         if (!var9.isAllowCreatingMarkers()) {
            class="kw">return new UserMarkerValidator.Fail("server.worldmap.markers.create.creationDisabled");
         } else {
            int var10 = var2 ? var9.getMaxSharedMarkersPerPlayer() : var9.getMaxPersonalMarkersPerPlayer();
            if (var8.size() >= var10) {
               String var11 = var2 ? "server.worldmap.markers.create.tooManyShared" : "server.worldmap.markers.create.tooManyPersonal";
               class="kw">return new UserMarkerValidator.Fail(Message.translation(var11).param("limit", var10));
            } else {
               class="kw">return new UserMarkerValidator.CanSpawn(var5, var6);
            }
         }
      }
   }

   class="kw">public class="kw">static UserMarkerValidator.RemoveResult validateRemove(Ref<EntityStore> var0, UserMapMarker var1) {
      Store var2 = var0.getStore();
      World var3 = var2.getExternalData().getWorld();
      if (isPlayerTooFarFromMarker(var0, var1.getX(), var1.getZ())) {
         class="kw">return new UserMarkerValidator.Fail("server.worldmap.markers.edit.tooFar");
      }

      UserMapMarkerConfig var4 = var3.getGameplayConfig().getWorldMapConfig().getUserMapMarkerConfig();
      UUID var5 = var2.getComponent(var0, UUIDComponent.getComponentType()).getUuid();
      UUID var6 = var1.getCreatedByUuid();
      boolean var7 = var5.equals(var6) || var6 == null;
      boolean var8 = var7 || var4.isAllowDeleteOtherPlayersSharedMarkers();
      class="kw">return !var8 ? new UserMarkerValidator.Fail("server.worldmap.markers.edit.notOwner") : new UserMarkerValidator.CanRemove();
   }

   class="kw">private class="kw">static boolean isPlayerTooFarFromMarker(Ref<EntityStore> var0, double var1, double var3) {
      Store var5 = var0.getStore();
      Player var6 = var5.getComponent(var0, Player.getComponentType());
      Transform var7 = var5.getComponent(var0, TransformComponent.getComponentType()).getTransform();
      Vector3d var8 = var7.getPosition();
      double var9 = var8.distanceSquared(var1, var8.y, var3);
      class="kw">return var9 > getMaxRemovalDistanceSquared(var6);
   }

   class="kw">private class="kw">static double getMaxRemovalDistanceSquared(Player var0) {
      int var1 = var0.getViewRadius() * 2 * 32;
      class="kw">return var1 * var1;
   }

   class="kw">public record CanRemove() class="kw">implements UserMarkerValidator.RemoveResult {
   }

   class="kw">public record CanSpawn(Player player, UserMapMarkersStore markersStore) class="kw">implements UserMarkerValidator.PlaceResult {
      class="kw">public CanSpawn {
      }
   }

   class="kw">public record Fail(Message errorMsg) class="kw">implements UserMarkerValidator.PlaceResult, UserMarkerValidator.RemoveResult {
      class="kw">public Fail(String var1) {
         this(Message.translation(var1));
      }

      class="kw">public Fail {
      }
   }

   class="kw">public sealed class="kw">interface PlaceResult permits UserMarkerValidator.Fail, UserMarkerValidator.CanSpawn {
   }

   class="kw">public sealed class="kw">interface RemoveResult permits UserMarkerValidator.Fail, UserMarkerValidator.CanRemove {
   }
}