DiscoveryLinkCommand class

Пакет: com.hypixel.hytale.server.core.discovery.command

Файл: com/hypixel/hytale/server/core/discovery/command/DiscoveryLinkCommand.java

extends: CommandBase

Поля (6)

МодификаторыТипИмя
final PermissionQuery LINK
break
break
break
String var2
DiscoveryService.HeartbeatResult var3

Методы (2)

МодификаторыВозвратСигнатура
abstract super super("link", "server.commands.discovery.link.desc")
switch switch(var3)

Исходный код

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

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.auth.ServerAuthManager;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandContext;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandUtil;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.RequiredArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.ArgTypes;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.CommandBase;
class="kw">import com.hypixel.hytale.server.core.discovery.DiscoveryModule;
class="kw">import com.hypixel.hytale.server.core.discovery.DiscoveryService;
class="kw">import com.hypixel.hytale.server.core.permissions.HytalePermissions;
class="kw">import com.hypixel.hytale.server.core.permissions.PermissionQuery;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import java.util.logging.Level;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.checkerframework.checker.nullness.compatqual.NonNullDecl;

class="kw">public class DiscoveryLinkCommand class="kw">extends CommandBase {
   class="kw">private class="kw">static class="kw">final PermissionQuery LINK = PermissionQuery.of(HytalePermissions.fromCommand("discovery.link"));
   @Nonnull
   class="kw">private class="kw">static class="kw">final HytaleLogger LOGGER = HytaleLogger.forEnclosingClass();
   @Nonnull
   class="kw">private class="kw">final RequiredArg<String> discoveryTokenArg = this.withRequiredArg("token", "server.commands.discovery.link.token.desc", ArgTypes.STRING);
   class="kw">private class="kw">final DiscoveryModule module;

   class="kw">public DiscoveryLinkCommand(DiscoveryModule var1) {
      super("link", "server.commands.discovery.link.desc");
      this.module = var1;
   }

   @Override
   class="kw">protected void executeSync(@NonNullDecl CommandContext var1) {
      CommandUtil.requirePermission(var1.sender(), LINK);
      if (!DiscoveryModule.isDiscoveryEnabled()) {
         var1.sendMessage(Message.translation("server.commands.discovery.notEnabled"));
      } else if (!ServerAuthManager.getInstance().hasSessionToken()) {
         var1.sendMessage(Message.translation("server.commands.discovery.link.noAuth"));
      } else if (this.module.hasDiscoveryToken()) {
         var1.sendMessage(Message.translation("server.commands.discovery.link.alreadyLinked"));
      } else {
         String var2 = this.discoveryTokenArg.get(var1);
         CompletableFuture.runAsync(() -> {
            DiscoveryService.HeartbeatResult var3 = this.module.getService().sendHeartbeat(var2);
            class="kw">switch (var3) {
               case TOKEN_NOT_FOUND:
                  var1.sendMessage(Message.translation("server.commands.discovery.link.tokenNotValid"));
                  break;
               case PROFILE_MISMATCH:
                  var1.sendMessage(Message.translation("server.commands.discovery.link.profileMismatch"));
                  break;
               case FAILED:
                  var1.sendMessage(Message.translation("server.commands.discovery.link.failed"));
                  break;
               case SUCCESS:
                  this.module.setDiscoveryToken(var2);
                  var1.sendMessage(Message.translation("server.commands.discovery.link.success"));
            }
         }).exceptionally(var0 -> {
            ((HytaleLogger.Api)LOGGER.at(Level.WARNING).withCause(var0)).log("Failed to link server discovery server");
            class="kw">return null;
         });
      }
   }
}