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