ResetCommand class
Пакет: com.hypixel.hytale.builtin.adventure.worldevents.command
Файл: com/hypixel/hytale/builtin/adventure/worldevents/command/ResetCommand.java
extends: AbstractAsyncWorldCommand
Поля (5)
| Модификаторы | Тип | Имя |
|---|---|---|
|
World[] |
var1 |
|
Store |
var1 |
|
CompletableFuture[] |
var2 |
|
Ref |
var3 |
|
World |
var4 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
for for(int var3 = 0; var3 < var1.length; var3++) |
static |
void |
resetvoid reset(@Nonnull World var0) |
abstract |
|
super super("reset", "server.commands.worldevent.reset.desc", true) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.adventure.worldevents.command;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.GlobalWorldEventManager;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.WorldEventManager;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.WorldEventStorage;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.WorldEventsPlugin;
class="kw">import com.hypixel.hytale.builtin.adventure.worldevents.event.WorldEvent;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.RemoveReason;
class="kw">import com.hypixel.hytale.component.Store;
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.basecommands.AbstractAsyncWorldCommand;
class="kw">import com.hypixel.hytale.server.core.universe.Universe;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import javax.annotation.Nonnull;
class="kw">public class ResetCommand class="kw">extends AbstractAsyncWorldCommand {
class="kw">public ResetCommand() {
super("reset", "server.commands.worldevent.reset.desc", true);
}
@Nonnull
@Override
class="kw">protected CompletableFuture<Void> executeAsync(@Nonnull CommandContext var1, @Nonnull World var2) {
class="kw">return execute(var2).thenRunAsync(() -> var1.sendMessage(Message.translation("server.commands.worldevent.reset.complete")), var2);
}
@Nonnull
class="kw">public class="kw">static CompletableFuture<?> execute(@Nonnull World var0) {
GlobalWorldEventManager.INSTANCE.clear();
GlobalWorldEventManager.INSTANCE.saveAsync();
World[] var1 = Universe.get().getWorlds().values().toArray(World[]::new);
CompletableFuture[] var2 = new CompletableFuture[var1.length];
for (int var3 = 0; var3 < var1.length; var3++) {
World var4 = var1[var3];
var2[var3] = CompletableFuture.runAsync(() -> reset(var4), var4);
}
class="kw">return CompletableFuture.allOf(var2);
}
class="kw">protected class="kw">static void reset(@Nonnull World var0) {
Store var1 = var0.getEntityStore().getStore();
var1.forEachEntityParallel(WorldEvent.getComponentType(), (var0x, var1x, var2) -> {
Ref var3 = var1x.getReferenceTo(var0x);
var2.tryRemoveEntity(var3, RemoveReason.REMOVE);
});
var1.getResource(WorldEventManager.getResourceType()).clear();
var1.getResource(WorldEventStorage.getResourceType()).clear();
WorldEventsPlugin.loadGameplayWorldEvents(var0);
}
}