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;
});
}
}
}