GameModeArgumentType class

Пакет: com.hypixel.hytale.server.core.command.system.arguments.types

Файл: com/hypixel/hytale/server/core/command/system/arguments/types/GameModeArgumentType.java

extends: SingleArgumentType<GameMode>

Поля (6)

МодификаторыТипИмя
String var3
GameMode var4
List var5
String var5
ObjectIterator var6
String var7

Методы (2)

МодификаторыВозвратСигнатура
if if(var4 != null)
abstract super super("server.commands.parsing.argtype.gamemode.name", "server.commands.parsing.argtype.gamemode.usage", "adventure", "creative", "a", "c")

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.command.system.arguments.types;

class="kw">import com.hypixel.hytale.common.util.StringUtil;
class="kw">import com.hypixel.hytale.protocol.GameMode;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandSender;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandUtil;
class="kw">import com.hypixel.hytale.server.core.command.system.ParseResult;
class="kw">import com.hypixel.hytale.server.core.command.system.suggestion.SuggestionResult;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectMap;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectIterator;
class="kw">import java.util.List;
class="kw">import java.util.Locale;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class GameModeArgumentType class="kw">extends SingleArgumentType<GameMode> {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Object2ObjectMap<String, GameMode> GAMEMODE_MAP = new Object2ObjectOpenHashMap();

   class="kw">public GameModeArgumentType() {
      super("server.commands.parsing.argtype.gamemode.name", "server.commands.parsing.argtype.gamemode.usage", "adventure", "creative", "a", "c");
   }

   @Nullable
   class="kw">public GameMode parse(@Nonnull String var1, @Nonnull ParseResult var2) {
      String var3 = var1.toLowerCase(Locale.ROOT);
      GameMode var4 = (GameMode)GAMEMODE_MAP.get(var3);
      if (var4 != null) {
         class="kw">return var4;
      }

      List var5 = StringUtil.sortByFuzzyDistance(var3, GAMEMODE_MAP.keySet(), CommandUtil.RECOMMEND_COUNT);
      var2.fail(Message.translation("server.commands.parsing.argtype.gamemode.invalid").param("input", var1).param("suggestions", var5.toString()));
      class="kw">return null;
   }

   @Override
   class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
      String var5 = var2.toLowerCase(Locale.ROOT);
      ObjectIterator var6 = GAMEMODE_MAP.keySet().iterator();

      while (var6.hasNext()) {
         String var7 = (String)var6.next();
         if (var7.startsWith(var5)) {
            var4.suggest(var7);
         }
      }
   }

   @Override
   class="kw">public int getSuggestionValueCount() {
      class="kw">return GAMEMODE_MAP.size();
   }

   class="kw">static {
      GAMEMODE_MAP.put("adventure", GameMode.Adventure);
      GAMEMODE_MAP.put("creative", GameMode.Creative);
      GAMEMODE_MAP.put("a", GameMode.Adventure);
      GAMEMODE_MAP.put("c", GameMode.Creative);
   }
}