WorldMarkersResource class
Пакет: com.hypixel.hytale.server.core.universe.world.worldmap.markers.worldstore
Файл: com/hypixel/hytale/server/core/universe/world/worldmap/markers/worldstore/WorldMarkersResource.java
implements: Resource<ChunkStore>, UserMapMarkersStore
Поля (3)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
BuilderCodec<WorldMarkersResource> |
CODEC |
|
WorldMarkersResource |
var1 |
|
List |
var2 |
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
ResourceType<ChunkStore, WorldMarkersResource> |
getResourceTypeResourceType<ChunkStore, WorldMarkersResource> getResourceType() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.worldmap.markers.worldstore;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.Resource;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import com.hypixel.hytale.server.core.universe.Universe;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import com.hypixel.hytale.server.core.universe.world.worldmap.markers.user.UserMapMarker;
class="kw">import com.hypixel.hytale.server.core.universe.world.worldmap.markers.user.UserMapMarkersStore;
class="kw">import java.util.ArrayList;
class="kw">import java.util.Arrays;
class="kw">import java.util.Collection;
class="kw">import java.util.List;
class="kw">import java.util.Map;
class="kw">import java.util.UUID;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import java.util.stream.Collectors;
class="kw">import org.checkerframework.checker.nullness.compatqual.NonNullDecl;
class="kw">import org.checkerframework.checker.nullness.compatqual.NullableDecl;
class="kw">public class WorldMarkersResource class="kw">implements Resource<ChunkStore>, UserMapMarkersStore {
class="kw">public class="kw">static class="kw">final BuilderCodec<WorldMarkersResource> CODEC = BuilderCodec.builder(WorldMarkersResource.class, WorldMarkersResource::new)
.append(
new KeyedCodec<>("UserMarkers", UserMapMarker.ARRAY_CODEC),
(var0, var1) -> var0.mapMarkersById = Arrays.stream(var1).collect(Collectors.toConcurrentMap(UserMapMarker::getId, var0x -> (UserMapMarker)var0x)),
var0 -> var0.getUserMapMarkers().toArray(new UserMapMarker[0])
)
.documentation("The stored map markers submitted by this player.")
.add()
.build();
class="kw">private Map<String, UserMapMarker> mapMarkersById = new ConcurrentHashMap<>();
class="kw">public WorldMarkersResource() {
}
class="kw">public class="kw">static ResourceType<ChunkStore, WorldMarkersResource> getResourceType() {
class="kw">return Universe.get().getWorldMarkersResourceType();
}
@NonNullDecl
@Override
class="kw">public Collection<? class="kw">extends UserMapMarker> getUserMapMarkers() {
class="kw">return this.mapMarkersById.values();
}
@NonNullDecl
@Override
class="kw">public Collection<? class="kw">extends UserMapMarker> getUserMapMarkers(UUID var1) {
List var2 = new ArrayList<>();
for (UserMapMarker var4 : this.mapMarkersById.values()) {
if (var1.equals(var4.getCreatedByUuid())) {
var2.add(var4);
}
}
class="kw">return var2;
}
@Override
class="kw">public void setUserMapMarkers(@NullableDecl Collection<? class="kw">extends UserMapMarker> var1) {
this.mapMarkersById = var1 == null
? new ConcurrentHashMap<>()
: var1.stream().collect(Collectors.toConcurrentMap(UserMapMarker::getId, var0 -> (UserMapMarker)var0));
}
@NullableDecl
@Override
class="kw">public UserMapMarker getUserMapMarker(String var1) {
class="kw">return this.mapMarkersById.get(var1);
}
@NullableDecl
@Override
class="kw">public Resource<ChunkStore> clone() {
WorldMarkersResource var1 = new WorldMarkersResource();
var1.mapMarkersById = new ConcurrentHashMap<>(this.mapMarkersById);
class="kw">return var1;
}
}