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