LightingGetCommand class

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

Файл: com/hypixel/hytale/server/core/command/commands/utility/lighting/LightingGetCommand.java

extends: AbstractWorldCommand

Поля (17)

МодификаторыТипИмя
Ref var11
Message var12
BlockSection var13
short var14
byte var15
byte var16
byte var17
byte var18
boolean var19
String var20
BlockChunk var21
ChunkStore var4
Vector3i var5
int var6
int var7
int var8
long var9

Методы (2)

МодификаторыВозвратСигнатура
if if(var19)
abstract super super("get", "server.commands.light.get.desc")

Исходный код

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

class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.util.ChunkUtil;
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.RequiredArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.ArgTypes;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.RelativeIntPosition;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractWorldCommand;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.BlockChunk;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.BlockSection;
class="kw">import com.hypixel.hytale.server.core.universe.world.chunk.section.ChunkLightData;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3i;

class="kw">public class LightingGetCommand class="kw">extends AbstractWorldCommand {
   @Nonnull
   class="kw">private class="kw">final RequiredArg<RelativeIntPosition> positionArg = this.withRequiredArg(
      "x y z", "server.commands.light.get.position.desc", ArgTypes.RELATIVE_BLOCK_POSITION
   );
   @Nonnull
   class="kw">private class="kw">final FlagArg hexFlag = this.withFlagArg("hex", "server.commands.light.get.hex.desc");

   class="kw">public LightingGetCommand() {
      super("get", "server.commands.light.get.desc");
   }

   @Override
   class="kw">protected void execute(@Nonnull CommandContext var1, @Nonnull World var2, @Nonnull Store<EntityStore> var3) {
      ChunkStore var4 = var2.getChunkStore();
      Vector3i var5 = this.positionArg.get(var1).getBlockPosition(var1, var3);
      int var6 = var5.x;
      int var7 = var5.y;
      int var8 = var5.z;
      long var9 = ChunkUtil.indexChunkFromBlock(var6, var8);
      Ref var11 = var4.getChunkReference(var9);
      if (var11 != null && var11.isValid()) {
         BlockChunk var21 = var4.getStore().getComponent(var11, BlockChunk.getComponentType());
         assert var21 != null;
         BlockSection var13 = var21.getSectionAtBlockY(var7);
         short var14 = var13.getGlobalLight().getLightRaw(var6, var7, var8);
         byte var15 = ChunkLightData.getLightValue(var14, 0);
         byte var16 = ChunkLightData.getLightValue(var14, 1);
         byte var17 = ChunkLightData.getLightValue(var14, 2);
         byte var18 = ChunkLightData.getLightValue(var14, 3);
         boolean var19 = this.hexFlag.get(var1);
         if (var19) {
            String var20 = "%08x".formatted(var14);
            var1.sendMessage(
               Message.translation("server.commands.light.getHex")
                  .param("x", var6)
                  .param("y", var7)
                  .param("z", var8)
                  .param("worldName", var2.getName())
                  .param("hex", var20)
            );
         } else {
            var1.sendMessage(
               Message.translation("server.commands.light.get")
                  .param("x", var6)
                  .param("y", var7)
                  .param("z", var8)
                  .param("worldName", var2.getName())
                  .param("red", var15)
                  .param("green", var16)
                  .param("blue", var17)
                  .param("sky", var18)
            );
         }
      } else {
         Message var12 = Message.translation("server.commands.errors.chunkNotLoaded")
            .param("chunkX", ChunkUtil.chunkCoordinate(var6))
            .param("chunkZ", ChunkUtil.chunkCoordinate(var8))
            .param("world", var2.getName());
         var1.sendMessage(var12);
      }
   }
}