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