GameFlagsResource class

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

Файл: com/hypixel/hytale/builtin/gameflags/GameFlagsResource.java

Поля (1)

МодификаторыТипИмя
final String ID

Методы (5)

МодификаторыВозвратСигнатура
static void flushvoid flush()
public int getLevelint getLevel(@Nonnull String var1)
public void raisevoid raise(@Nonnull String var1, int var2)
public void removevoid remove(@Nonnull String var1)
public void setvoid set(@Nonnull String var1, int var2)

Исходный код

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

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.codecs.map.MapCodec;
class="kw">import com.hypixel.hytale.server.core.universe.Universe;
class="kw">import java.util.HashMap;
class="kw">import java.util.Map;
class="kw">import java.util.TreeMap;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import javax.annotation.Nonnull;

class="kw">public class GameFlagsResource {
   class="kw">public class="kw">static class="kw">final String ID = "GameFlags";
   class="kw">public class="kw">static class="kw">final BuilderCodec<GameFlagsResource> CODEC = BuilderCodec.builder(GameFlagsResource.class, GameFlagsResource::new)
      .append(
         new KeyedCodec<>("Flags", new MapCodec<>(Codec.INTEGER, HashMap::new)), (var0, var1) -> var0.flags = new ConcurrentHashMap<>(var1), var0 -> var0.flags
      )
      .documentation("Flag name to integer value; a missing flag is 0.")
      .add()
      .build();
   class="kw">private Map<String, Integer> flags = new ConcurrentHashMap<>();

   class="kw">public GameFlagsResource() {
   }

   @Nonnull
   class="kw">public class="kw">static GameFlagsResource get() {
      class="kw">return Universe.get().getResource(GameFlagsPlugin.get().getResourceType());
   }

   class="kw">public int getLevel(@Nonnull String var1) {
      class="kw">return this.flags.getOrDefault(var1, 0);
   }

   class="kw">public void set(@Nonnull String var1, int var2) {
      this.flags.put(var1, var2);
   }

   class="kw">public void raise(@Nonnull String var1, int var2) {
      this.flags.merge(var1, var2, Math::max);
   }

   class="kw">public void remove(@Nonnull String var1) {
      this.flags.remove(var1);
   }

   @Nonnull
   class="kw">public Map<String, Integer> snapshot() {
      class="kw">return new TreeMap<>(this.flags);
   }

   class="kw">public class="kw">static void flush() {
      Universe.get().flushResource(GameFlagsPlugin.get().getResourceType());
   }
}