DamageOtherCommand class

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

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

extends: CommandBase

Поля (15)

МодификаторыТипИмя
private static final Message MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD
private final OptionalArg<Double> amountArg
private final RequiredArg<PlayerRef> playerArg
private final FlagArg silentArg
Damage.CommandSource var10
Damage var11
String var12
PlayerRef var2
Ref var3
Store var4
World var5
Player var5
PlayerRef var6
double var7
boolean var9

Методы (4)

МодификаторыВозвратСигнатура
protected void executeSyncprotected void executeSync(@Nonnull CommandContext var1)
if if(var5 == null)
if if(!var9)
abstract super super("server.commands.damage.other.desc")

Исходный код

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

class="kw">import com.hypixel.hytale.component.Ref;
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.arguments.system.FlagArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.OptionalArg;
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.AbstractPlayerCommand;
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.damage.Damage;
class="kw">import com.hypixel.hytale.server.core.modules.entity.damage.DamageCause;
class="kw">import com.hypixel.hytale.server.core.modules.entity.damage.DamageSystems;
class="kw">import com.hypixel.hytale.server.core.permissions.HytalePermissions;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
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 javax.annotation.Nonnull;

class="kw">public class DamageCommand class="kw">extends AbstractPlayerCommand {
   @Nonnull
   class="kw">private class="kw">final OptionalArg<Double> amountArg = this.withOptionalArg("amount", "server.commands.damage.arg.amount.desc", ArgTypes.DOUBLE);
   @Nonnull
   class="kw">private class="kw">final FlagArg silentArg = this.withFlagArg("silent", "server.commands.damage.arg.silent.desc");

   class="kw">public DamageCommand() {
      super("damage", "server.commands.damage.desc");
      this.addAliases("hurt");
      this.requirePermission(HytalePermissions.fromCommand("damage.self"));
      this.setPermissionGroups("hytale:Builder");
      this.addUsageVariant(new DamageCommand.DamageOtherCommand());
   }

   @Override
   class="kw">protected void execute(
      @Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
   ) {
      double var6 = this.amountArg.provided(var1) ? this.amountArg.get(var1) : 1.0;
      boolean var8 = this.silentArg.get(var1);
      Damage.CommandSource var9 = new Damage.CommandSource(var1.sender(), this.getName());
      Damage var10 = new Damage(var9, DamageCause.COMMAND, (float)var6);
      DamageSystems.executeDamage(var3, var2, var10);
      if (!var8) {
         String var11 = String.format("%.1f", var6);
         var1.sendMessage(Message.translation("server.commands.damage.dealt.self").param("damage", var11));
         if (var5.getGameplayConfig().getCombatConfig().isPlayerIncomingDamageDisabled()) {
            var1.sendMessage(Message.translation("server.commands.damage.disabled").color("#ffc800"));
         }
      }
   }

   class="kw">private class="kw">static class DamageOtherCommand class="kw">extends CommandBase {
      class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD = Message.translation("server.commands.errors.playerNotInWorld");
      @Nonnull
      class="kw">private class="kw">final RequiredArg<PlayerRef> playerArg = this.withRequiredArg("player", "server.commands.argtype.player.desc", ArgTypes.PLAYER_REF);
      @Nonnull
      class="kw">private class="kw">final OptionalArg<Double> amountArg = this.withOptionalArg("amount", "server.commands.damage.arg.amount.desc", ArgTypes.DOUBLE);
      @Nonnull
      class="kw">private class="kw">final FlagArg silentArg = this.withFlagArg("silent", "server.commands.damage.arg.silent.desc");

      DamageOtherCommand() {
         super("server.commands.damage.other.desc");
         this.requirePermission(HytalePermissions.fromCommand("damage.other"));
         this.setPermissionGroups("hytale:WorldEditor");
      }

      @Override
      class="kw">protected void executeSync(@Nonnull CommandContext var1) {
         PlayerRef var2 = this.playerArg.get(var1);
         Ref var3 = var2.getReference();
         if (var3 != null && var3.isValid()) {
            Store var4 = var3.getStore();
            World var5 = var4.getExternalData().getWorld();
            var5.execute(() -> {
               Player var5 = var4.getComponent(var3, Player.getComponentType());
               if (var5 == null) {
                  var1.sendMessage(MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD);
               } else {
                  PlayerRef var6 = var4.getComponent(var3, PlayerRef.getComponentType());
                  assert var6 != null;
                  double var7 = this.amountArg.provided(var1) ? this.amountArg.get(var1) : 1.0;
                  boolean var9 = this.silentArg.get(var1);
                  Damage.CommandSource var10 = new Damage.CommandSource(var1.sender(), "damage");
                  Damage var11 = new Damage(var10, DamageCause.COMMAND, (float)var7);
                  DamageSystems.executeDamage(var3, var4, var11);
                  if (!var9) {
                     String var12 = String.format("%.1f", var7);
                     var1.sendMessage(Message.translation("server.commands.damage.dealt").param("damage", var12).param("victim", var6.getUsername()));
                     if (var5.getGameplayConfig().getCombatConfig().isPlayerIncomingDamageDisabled()) {
                        var1.sendMessage(Message.translation("server.commands.damage.disabled").color("#ffc800"));
                     }
                  }
               }
            });
         } else {
            var1.sendMessage(MESSAGE_COMMANDS_ERRORS_PLAYER_NOT_IN_WORLD);
         }
      }
   }
}