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