PortalInstanceLinks class

Пакет: com.hypixel.hytale.builtin.portals

Файл: com/hypixel/hytale/builtin/portals/PortalInstanceLinks.java

Поля (5)

МодификаторыТипИмя
final Map<String, ConcurrentHashMap<PortalInstanceLinks.DevicePos, PortalInstanceLinks.Link>> LINKS
String var1
InstanceWorldConfig var1
Map var2
String var6

Методы (7)

МодификаторыВозвратСигнатура
public record DevicePosrecord DevicePos(int x, int y, int z)
public record Linkrecord Link(@Nonnull UUID destinationWorldUuid, @Nonnull PortalDeviceConfig config)
static void forgetvoid forget(@Nonnull World var0, @Nonnull PortalInstanceLinks.DevicePos var1)
static void forgetDestinationvoid forgetDestination(@Nonnull UUID var0)
if if(var6 != null)
if if(var2 != null)
static void recordvoid record(@Nonnull World var0, int var1, int var2, int var3, @Nonnull World var4, @Nonnull PortalDeviceConfig var5)

Исходный код

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

class="kw">import com.hypixel.hytale.builtin.instances.config.InstanceWorldConfig;
class="kw">import com.hypixel.hytale.builtin.portals.components.PortalDeviceConfig;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import java.util.Map;
class="kw">import java.util.UUID;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class="kw">final class PortalInstanceLinks {
   class="kw">private class="kw">static class="kw">final Map<String, ConcurrentHashMap<PortalInstanceLinks.DevicePos, PortalInstanceLinks.Link>> LINKS = new ConcurrentHashMap<>();

   class="kw">private PortalInstanceLinks() {
   }

   @Nullable
   class="kw">public class="kw">static Map<PortalInstanceLinks.DevicePos, PortalInstanceLinks.Link> linksFor(@Nonnull World var0) {
      String var1 = instanceKeyOf(var0);
      class="kw">return var1 == null ? null : LINKS.get(var1);
   }

   class="kw">public class="kw">static void record(@Nonnull World var0, int var1, int var2, int var3, @Nonnull World var4, @Nonnull PortalDeviceConfig var5) {
      String var6 = instanceKeyOf(var0);
      if (var6 != null) {
         LINKS.computeIfAbsent(var6, var0x -> new ConcurrentHashMap<>())
            .put(new PortalInstanceLinks.DevicePos(var1, var2, var3), new PortalInstanceLinks.Link(var4.getWorldConfig().getUuid(), var5));
      }
   }

   class="kw">public class="kw">static void forget(@Nonnull World var0, @Nonnull PortalInstanceLinks.DevicePos var1) {
      Map var2 = linksFor(var0);
      if (var2 != null) {
         var2.remove(var1);
         LINKS.values().removeIf(Map::isEmpty);
      }
   }

   class="kw">public class="kw">static void forgetDestination(@Nonnull UUID var0) {
      for (ConcurrentHashMap var2 : LINKS.values()) {
         var2.values().removeIf(var1 -> var0.equals(var1.destinationWorldUuid()));
      }

      LINKS.values().removeIf(Map::isEmpty);
   }

   @Nullable
   class="kw">private class="kw">static String instanceKeyOf(@Nonnull World var0) {
      InstanceWorldConfig var1 = InstanceWorldConfig.get(var0.getWorldConfig());
      class="kw">return var1 != null && var1.getReturnPoint() != null ? var1.getInstanceKey() : null;
   }

   class="kw">public record DevicePos(int x, int y, int z) {
      class="kw">public DevicePos {
      }
   }

   class="kw">public record Link(@Nonnull UUID destinationWorldUuid, @Nonnull PortalDeviceConfig config) {
      class="kw">public Link {
      }
   }
}