MaxViewRadiusSetCommand class

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

Файл: com/hypixel/hytale/server/core/command/commands/server/MaxViewRadiusCommand.java

extends: AbstractAsyncCommand

Поля (2)

МодификаторыТипИмя
private final RequiredArg<Integer> radiusArg
int var2

Методы (3)

МодификаторыВозвратСигнатура
protected CompletableFuture<Void> executeAsyncprotected CompletableFuture<Void> executeAsync(@Nonnull CommandContext var1)
if if(var2 < 1)
abstract super super("server.commands.maxviewradius.set.desc")

Исходный код

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

class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.protocol.packets.setup.ViewRadius;
class="kw">import com.hypixel.hytale.server.core.HytaleServer;
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.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.AbstractAsyncCommand;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.CommandBase;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.modules.entity.tracker.EntityTrackerSystems;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
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 it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.concurrent.CompletableFuture;
class="kw">import javax.annotation.Nonnull;

class="kw">public class MaxViewRadiusCommand class="kw">extends CommandBase {
   class="kw">public MaxViewRadiusCommand() {
      super("maxviewradius", "server.commands.maxviewradius.desc");
      this.addUsageVariant(new MaxViewRadiusCommand.MaxViewRadiusSetCommand());
      this.addSubCommand(new MaxViewRadiusCommand.MaxViewRadiusResetCommand());
   }

   @Override
   class="kw">protected void executeSync(@Nonnull CommandContext var1) {
      int var2 = HytaleServer.get().getConfig().getMaxViewRadius();
      var1.sendMessage(Message.translation("server.commands.maxviewradius.get").param("radius", var2));
   }

   @Nonnull
   class="kw">private class="kw">static CompletableFuture<Void> applyMaxViewRadius(@Nonnull AbstractAsyncCommand var0, @Nonnull CommandContext var1, int var2) {
      HytaleServer.get().getConfig().setMaxViewRadius(var2);
      int var3 = var2 * 32;
      ObjectArrayList var4 = new ObjectArrayList();

      for (World var6 : Universe.get().getWorlds().values()) {
         var4.add(var0.runAsync(var1, () -> {
            Store var2 = var6.getEntityStore().getStore();

            for (PlayerRef var4 : var6.getPlayerRefs()) {
               Ref var5 = var4.getReference();
               if (var5 != null && var5.isValid()) {
                  Player var6 = var2.getComponent(var5, Player.getComponentType());
                  EntityTrackerSystems.EntityViewer var7 = var2.getComponent(var5, EntityTrackerSystems.EntityViewer.getComponentType());
                  if (var6 != null && var7 != null) {
                     var7.viewRadiusBlocks = var6.getViewRadius() * 32;
                     var4.getPacketHandler().writeNoCache(new ViewRadius(var3));
                  }
               }
            }
         }, var6));
      }

      class="kw">return CompletableFuture.allOf((CompletableFuture<?>[])var4.toArray(new CompletableFuture[0]));
   }

   class="kw">private class="kw">static class MaxViewRadiusResetCommand class="kw">extends AbstractAsyncCommand {
      MaxViewRadiusResetCommand() {
         super("reset", "server.commands.maxviewradius.reset.desc");
      }

      @Nonnull
      @Override
      class="kw">protected CompletableFuture<Void> executeAsync(@Nonnull CommandContext var1) {
         int var2 = 32;
         var1.sendMessage(Message.translation("server.commands.maxviewradius.reset").param("radius", 32));
         class="kw">return MaxViewRadiusCommand.applyMaxViewRadius(this, var1, 32);
      }
   }

   class="kw">private class="kw">static class MaxViewRadiusSetCommand class="kw">extends AbstractAsyncCommand {
      @Nonnull
      class="kw">private class="kw">final RequiredArg<Integer> radiusArg = this.withRequiredArg("radius", "server.commands.maxviewradius.radius.desc", ArgTypes.INTEGER);

      MaxViewRadiusSetCommand() {
         super("server.commands.maxviewradius.set.desc");
      }

      @Nonnull
      @Override
      class="kw">protected CompletableFuture<Void> executeAsync(@Nonnull CommandContext var1) {
         int var2 = this.radiusArg.get(var1);
         if (var2 < 1) {
            var1.sendMessage(Message.translation("server.commands.maxviewradius.mustBePositive"));
            class="kw">return CompletableFuture.completedFuture(null);
         } else if (var2 > 32) {
            var1.sendMessage(Message.translation("server.commands.maxviewradius.noHigherThan").param("max", 32));
            class="kw">return CompletableFuture.completedFuture(null);
         } else {
            var1.sendMessage(Message.translation("server.commands.maxviewradius.set").param("radius", var2));
            class="kw">return MaxViewRadiusCommand.applyMaxViewRadius(this, var1, var2);
         }
      }
   }
}