GroupArgumentType class

Пакет: com.hypixel.hytale.server.core.permissions.commands

Файл: com/hypixel/hytale/server/core/permissions/commands/GroupArgumentType.java

extends: SingleArgumentType<String>

Поля (17)

МодификаторыТипИмя
final GroupArgumentType INSTANCE
String var1
Map var1
List var10
String var13
Set var2
String var3
Set var4
int var4
Set var5
List var5
String var5
Map var6
int var6
String var7
String var7
String var8

Методы (8)

МодификаторыВозвратСигнатура
for for(String var12 : var10)
for for(String var4 : var2)
for for(String var5 : var2)
for for(String var11 : var2)
for for(String var3 : var0)
if if(var3 != null)
if if(var6 >= 0)
abstract super super("group", "server.commands.setgroup.group.desc", "Admin", "hytale:Admin", "Adventurer")

Исходный код

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

class="kw">import com.hypixel.hytale.common.util.StringUtil;
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.arguments.types.SingleArgumentType;
class="kw">import com.hypixel.hytale.server.core.command.system.suggestion.SuggestionResult;
class="kw">import com.hypixel.hytale.server.core.permissions.PermissionsModule;
class="kw">import com.hypixel.hytale.server.core.permissions.provider.HytalePermissionsProvider;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.HashMap;
class="kw">import java.util.List;
class="kw">import java.util.Locale;
class="kw">import java.util.Map;
class="kw">import java.util.Set;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class GroupArgumentType class="kw">extends SingleArgumentType<String> {
   class="kw">public class="kw">static class="kw">final GroupArgumentType INSTANCE = new GroupArgumentType();

   class="kw">private GroupArgumentType() {
      super("group", "server.commands.setgroup.group.desc", "Admin", "hytale:Admin", "Adventurer");
   }

   @Override
   class="kw">public void suggest(@Nonnull CommandSender var1, @Nonnull String var2, int var3, @Nonnull SuggestionResult var4) {
      Set var5 = PermissionsModule.get().getAllRegisteredGroups();
      Map var6 = buildShortNameMap(var5);
      String var7 = var2.toLowerCase(Locale.ROOT);

      for (Entry var9 : var6.entrySet()) {
         List var10 = var9.getValue();
         if (var10.size() == 1) {
            String var13 = var9.getKey();
            if (var13.toLowerCase(Locale.ROOT).startsWith(var7)) {
               var4.suggest(var13);
            }
         } else {
            for (String var12 : var10) {
               if (var12.toLowerCase(Locale.ROOT).startsWith(var7)) {
                  var4.suggest(var12);
               }
            }
         }
      }
   }

   @Nullable
   class="kw">public String parse(@Nonnull String var1, @Nonnull ParseResult var2) {
      String var3 = resolveGroup(var1);
      if (var3 != null) {
         class="kw">return var3;
      }

      Set var4 = PermissionsModule.get().getAllRegisteredGroups();
      List var5 = new ObjectArrayList(var4);
      var2.fail(
         Message.empty()
            .insert(Message.translation("server.commands.setgroup.unknownGroup").param("group", var1))
            .insert(Message.raw(" "))
            .insert(
               Message.translation("server.general.failed.didYouMean")
                  .param("choices", StringUtil.sortByFuzzyDistance(var1.toLowerCase(Locale.ROOT), var5, CommandUtil.RECOMMEND_COUNT).toString())
            )
      );
      class="kw">return null;
   }

   @Nullable
   class="kw">private class="kw">static String resolveGroup(@Nonnull String var0) {
      String var1 = HytalePermissionsProvider.resolveGroupName(var0);
      Set var2 = PermissionsModule.get().getAllRegisteredGroups();
      if (var2.contains(var1)) {
         class="kw">return var1;
      }

      for (String var4 : var2) {
         if (var4.equalsIgnoreCase(var1)) {
            class="kw">return var4;
         }
      }

      String var8 = "hytale:" + var0;

      for (String var5 : var2) {
         if (var5.equalsIgnoreCase(var8)) {
            class="kw">return var5;
         }
      }

      for (String var11 : var2) {
         int var6 = var11.indexOf(58);
         if (var6 >= 0) {
            String var7 = var11.substring(var6 + 1);
            if (var7.equalsIgnoreCase(var0)) {
               class="kw">return var11;
            }
         }
      }

      class="kw">return null;
   }

   @Nonnull
   class="kw">private class="kw">static Map<String, List<String>> buildShortNameMap(@Nonnull Set<String> var0) {
      Map var1 = new HashMap<>();

      for (String var3 : var0) {
         int var4 = var3.indexOf(58);
         String var5 = var4 >= 0 ? var3.substring(var4 + 1) : var3;
         var1.computeIfAbsent(var5, var0x -> new ObjectArrayList()).add(var3);
      }

      class="kw">return var1;
   }
}