PickupItemInteraction class

Пакет: com.hypixel.hytale.builtin.buildertools.interactions

Файл: com/hypixel/hytale/builtin/buildertools/interactions/PickupItemInteraction.java

extends: SimpleInstantInteraction

Поля (15)

МодификаторыТипИмя
final BuilderCodec<PickupItemInteraction> CODEC
ItemStack var10
Vector3d var11
ItemStack var12
ItemStackTransaction var13
ItemStack var14
Holder var15
Holder var16
int var17
Ref var4
CommandBuffer var5
Player var6
Ref var7
ItemComponent var8
TransformComponent var9

Методы (7)

МодификаторыВозвратСигнатура
if if(var6 == null)
if if(var8 == null)
if if(var9 == null)
if if(var15 != null)
if if(var16 != null)
if if(var17 > 0)
abstract super super(var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.interactions;

class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.AddReason;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.Holder;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.RemoveReason;
class="kw">import com.hypixel.hytale.protocol.InteractionState;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.server.core.entity.InteractionContext;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import com.hypixel.hytale.server.core.inventory.transaction.ItemStackTransaction;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.modules.entity.item.ItemComponent;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.CooldownHandler;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.RootInteraction;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.config.SimpleInstantInteraction;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;

class="kw">public class PickupItemInteraction class="kw">extends SimpleInstantInteraction {
   class="kw">public class="kw">static class="kw">final BuilderCodec<PickupItemInteraction> CODEC = BuilderCodec.<SimpleInstantInteraction>builder(
         PickupItemInteraction.class, PickupItemInteraction::new, SimpleInstantInteraction.CODEC
      )
      .documentation("Picks up an item entity and adds it to the player's inventory.")
      .build();
   class="kw">public class="kw">static class="kw">final String DEFAULT_ID = "*PickupItem";
   class="kw">public class="kw">static class="kw">final RootInteraction DEFAULT_ROOT = new RootInteraction("*PickupItem", "*PickupItem");

   class="kw">public PickupItemInteraction(String var1) {
      super(var1);
   }

   class="kw">protected PickupItemInteraction() {
   }

   @Override
   class="kw">protected class="kw">final void firstRun(@Nonnull InteractionType var1, @Nonnull InteractionContext var2, @Nonnull CooldownHandler var3) {
      Ref var4 = var2.getEntity();
      CommandBuffer var5 = var2.getCommandBuffer();
      Player var6 = var5.getComponent(var4, Player.getComponentType());
      if (var6 == null) {
         var2.getState().state = InteractionState.Failed;
      } else {
         Ref var7 = var2.getTargetEntity();
         if (var7 != null && var7.isValid()) {
            ItemComponent var8 = var5.getComponent(var7, ItemComponent.getComponentType());
            if (var8 == null) {
               var2.getState().state = InteractionState.Failed;
            } else {
               TransformComponent var9 = var5.getComponent(var7, TransformComponent.getComponentType());
               if (var9 == null) {
                  var2.getState().state = InteractionState.Failed;
               } else {
                  ItemStack var10 = var8.getItemStack();
                  if (!ItemStack.isEmpty(var10)) {
                     Vector3d var11 = var9.getPosition();
                     ItemStack var12 = var10.cleanCopy();
                     ItemStackTransaction var13 = Player.giveItem(var12, var4, var5);
                     ItemStack var14 = var13.getRemainder();
                     if (ItemStack.isEmpty(var14)) {
                        var8.setRemovedByPlayerPickup(true);
                        var5.removeEntity(var7, RemoveReason.REMOVE);
                        Player.notifyPickupItem(var4, var12, var11, var5);
                        Holder var15 = ItemComponent.generatePickedUpItem(var12, var11, var5, var4);
                        if (var15 != null) {
                           var5.addEntity(var15, AddReason.SPAWN);
                        }
                     } else if (!var14.equals(var10)) {
                        int var17 = var10.getQuantity() - var14.getQuantity();
                        var8.setItemStack(var14);
                        Holder var16 = ItemComponent.generatePickedUpItem(var7, var5, var4, var11);
                        if (var16 != null) {
                           var5.addEntity(var16, AddReason.SPAWN);
                        }

                        if (var17 > 0) {
                           Player.notifyPickupItem(var4, var10.withQuantity(var17), var11, var5);
                        }
                     }
                  }
               }
            }
         } else {
            var2.getState().state = InteractionState.Failed;
         }
      }
   }

   @Nonnull
   @Override
   class="kw">public String toString() {
      class="kw">return "PickupItemInteraction{} " + super.toString();
   }
}