SleepTestCommand class

Пакет: com.hypixel.hytale.server.core.command.commands.utility.sleep

Файл: com/hypixel/hytale/server/core/command/commands/utility/sleep/SleepTestCommand.java

extends: CommandBase

Поля (8)

МодификаторыТипИмя
long var10
long var12
int var2
int var3
Metric var3
Metric var4
long var6
long var8

Методы (2)

МодификаторыВозвратСигнатура
for for(int var5 = 0; var5 < var3; var5++)
abstract super super("test", "server.commands.sleeptest.desc")

Исходный код

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

class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.common.util.FormatUtil;
class="kw">import com.hypixel.hytale.metrics.metric.Metric;
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.DefaultArg;
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 java.time.Duration;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import java.util.concurrent.TimeUnit;
class="kw">import javax.annotation.Nonnull;

class="kw">public class SleepTestCommand class="kw">extends CommandBase {
   @Nonnull
   class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_SLEEP_TEST_INTERRUPTED = Message.translation("server.commands.sleeptest.interrupted");
   @Nonnull
   class="kw">private class="kw">final DefaultArg<Integer> sleepArg = this.withDefaultArg(
         "sleep", "server.commands.sleeptest.sleep.desc", ArgTypes.INTEGER, 10, "server.commands.sleeptest.sleep.defaultDesc"
      )
      .addValidator(Validators.greaterThanOrEqual(0));
   @Nonnull
   class="kw">private class="kw">final DefaultArg<Integer> countArg = this.withDefaultArg(
      "count", "server.commands.sleeptest.count.desc", ArgTypes.INTEGER, 1000, "server.commands.sleeptest.count.defaultDesc"
   );

   class="kw">public SleepTestCommand() {
      super("test", "server.commands.sleeptest.desc");
   }

   @Override
   class="kw">protected void executeSync(@Nonnull CommandContext var1) {
      int var2 = this.sleepArg.get(var1);
      int var3 = this.countArg.get(var1);
      CompletableFuture.runAsync(
         () -> {
            var1.sendMessage(
               Message.translation("server.commands.sleeptest.starting")
                  .param("count", var3)
                  .param("sleep", var2)
                  .param("ms", FormatUtil.timeUnitToString((long)var3 * var2, TimeUnit.MILLISECONDS))
            );

            try {
               Metric var3 = new Metric();
               Metric var4 = new Metric();

               for (int var5 = 0; var5 < var3; var5++) {
                  long var6 = System.nanoTime();
                  Thread.sleep(Duration.ofMillis(var2));
                  long var8 = System.nanoTime();
                  long var10 = var8 - var6;
                  var3.add(var10);
                  long var12 = var10 - var2 * 1000000L;
                  var4.add(var12);
               }

               var1.sendMessage(
                  Message.translation("server.commands.sleeptest.test")
                     .param("deltaMin", var3.getMin())
                     .param("deltaMax", var3.getMax())
                     .param("deltaAvg", var3.getAverage())
                     .param("deltaTime", FormatUtil.nanosToString((long)var3.getAverage()))
                     .param("offsetMin", var4.getMin())
                     .param("offsetMax", var4.getMax())
                     .param("offsetAvg", var4.getAverage())
                     .param("offsetTime", FormatUtil.nanosToString((long)var4.getAverage()))
               );
            } catch (InterruptedException var14) {
               var1.sendMessage(MESSAGE_COMMANDS_SLEEP_TEST_INTERRUPTED);
               Thread.currentThread().interrupt();
            }
         }
      );
   }
}