PermListCommand class

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

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

extends: CommandBase

Поля (17)

МодификаторыТипИмя
final HytaleLogger LOGGER
Map var0
StringBuilder var1
PermissionsModule var1
boolean var2
UUID var2
String var3
var3
var3
Set var3
Map var4
StringBuilder var5
Set var5
Set var6
Set var6
String var7
Set var9

Методы (10)

МодификаторыВозвратСигнатура
static void collectGroupPermissionsvoid collectGroupPermissions(@Nonnull PermissionProvider var0, @Nonnull Map<String, Set<String>> var1, @Nonnull String var2, @Nonnull Set<String> var3, @Nonnull Set<String> var4)
abstract collectGroupPermissions collectGroupPermissions(var0, var1, var7, var3, var4)
for for(String var11 : var3)
for for(String var13 : var6)
if if(var2)
if if(var9 != null)
if if(var5 != null)
if if(var6 != null)
if if(var7 != null)
abstract super super("list", "server.commands.perm.list.desc")

Исходный код

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

class="kw">import com.hypixel.hytale.logger.HytaleLogger;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandContext;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.FlagArg;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.CommandBase;
class="kw">import com.hypixel.hytale.server.core.permissions.PermissionsModule;
class="kw">import com.hypixel.hytale.server.core.permissions.provider.PermissionProvider;
class="kw">import java.util.HashSet;
class="kw">import java.util.Map;
class="kw">import java.util.Set;
class="kw">import java.util.TreeSet;
class="kw">import java.util.UUID;
class="kw">import java.util.Map.Entry;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;

class="kw">public class PermListCommand class="kw">extends CommandBase {
   class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
   @Nonnull
   class="kw">private class="kw">final FlagArg allFlag = this.withFlagArg("all", "server.commands.perm.list.all.desc");
   @Nonnull
   class="kw">private class="kw">final FlagArg consoleFlag = this.withFlagArg("console", "server.commands.perm.list.console.desc");

   class="kw">public PermListCommand() {
      super("list", "server.commands.perm.list.desc");
   }

   @Override
   class="kw">protected void executeSync(@Nonnull CommandContext var1) {
      boolean var2 = this.consoleFlag.get(var1);
      String var3;
      if (this.allFlag.get(var1)) {
         var3 = buildAllPermissions();
      } else {
         var3 = buildOwnPermissions(var1);
      }

      if (var2) {
         LOGGER.at(Level.INFO).log("%s", var3);
         var1.sendMessage(Message.translation("server.commands.perm.list.printedToConsole"));
      } else {
         var1.sendMessage(Message.raw(var3));
      }
   }

   @Nonnull
   class="kw">private class="kw">static String buildAllPermissions() {
      Map var0 = PermissionsModule.getRegisteredPermissions();
      StringBuilder var1 = new StringBuilder();
      var1.append("Registered Permissions (").append(var0.size()).append("):\n");

      for (Entry var3 : var0.entrySet()) {
         var1.append("  ").append(var3.getKey());
         if (!var3.getValue().isEmpty()) {
            var1.append(" -> ").append(var3.getValue());
         }

         var1.append('\n');
      }

      class="kw">return var1.toString();
   }

   @Nonnull
   class="kw">private class="kw">static String buildOwnPermissions(@Nonnull CommandContext var0) {
      PermissionsModule var1 = PermissionsModule.get();
      UUID var2 = var0.sender().getUuid();
      Set var3 = var1.getGroupsForUser(var2);
      Map var4 = var1.getVirtualGroups();
      StringBuilder var5 = new StringBuilder();
      var5.append("Your Permissions:\n");
      var5.append("  Groups: ").append(var3.isEmpty() ? "(none)" : String.join(", ", var3)).append('\n');
      Set var6 = new TreeSet<>();

      for (PermissionProvider var8 : var1.getProviders()) {
         Set var9 = var8.getUserPermissions(var2);
         if (var9 != null) {
            var6.addAll(var9);
         }

         for (String var11 : var3) {
            collectGroupPermissions(var8, var4, var11, var6, new HashSet<>());
         }
      }

      var5.append("  Effective (").append(var6.size()).append("):\n");

      for (String var13 : var6) {
         var5.append("    ").append(var13).append('\n');
      }

      class="kw">return var5.toString();
   }

   class="kw">private class="kw">static void collectGroupPermissions(
      @Nonnull PermissionProvider var0, @Nonnull Map<String, Set<String>> var1, @Nonnull String var2, @Nonnull Set<String> var3, @Nonnull Set<String> var4
   ) {
      if (var4.add(var2)) {
         Set var5 = var0.getGroupPermissions(var2);
         if (var5 != null) {
            var3.addAll(var5);
         }

         Set var6 = var1.get(var2);
         if (var6 != null) {
            var3.addAll(var6);
         }

         String var7 = var0.getGroupParent(var2);
         if (var7 != null) {
            collectGroupPermissions(var0, var1, var7, var3, var4);
         }
      }
   }
}