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