OpenItemStackContainerInteraction class

Пакет: com.hypixel.hytale.server.core.modules.interaction.interaction.config.server

Файл: com/hypixel/hytale/server/core/modules/interaction/interaction/config/server/OpenItemStackContainerInteraction.java

extends: SimpleInstantInteraction

Поля (11)

МодификаторыТипИмя
byte var10
ItemContainer var11
ItemStack var12
ItemStackContainerConfig var13
ItemStackItemContainer var14
CommandBuffer var4
Ref var5
Store var6
Player var7
PageManager var8
ItemStack var9

Методы (4)

МодификаторыВозвратСигнатура
if if(var7 != null)
if if(var11 != null)
if if(var12 != null)
if if(var14 != null)

Исходный код

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

class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.protocol.InteractionType;
class="kw">import com.hypixel.hytale.protocol.packets.interface_.Page;
class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.ItemStackContainerConfig;
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.entity.entities.player.pages.PageManager;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.windows.ItemStackContainerWindow;
class="kw">import com.hypixel.hytale.server.core.inventory.InventoryUtils;
class="kw">import com.hypixel.hytale.server.core.inventory.ItemStack;
class="kw">import com.hypixel.hytale.server.core.inventory.container.ItemContainer;
class="kw">import com.hypixel.hytale.server.core.inventory.container.ItemStackItemContainer;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.interaction.CooldownHandler;
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">public class OpenItemStackContainerInteraction class="kw">extends SimpleInstantInteraction {
   @Nonnull
   class="kw">public class="kw">static class="kw">final BuilderCodec<OpenItemStackContainerInteraction> CODEC = BuilderCodec.builder(
         OpenItemStackContainerInteraction.class, OpenItemStackContainerInteraction::new, SimpleInstantInteraction.CODEC
      )
      .documentation("Opens a container contained within the current held item.")
      .build();

   class="kw">public OpenItemStackContainerInteraction() {
   }

   @Override
   class="kw">protected void firstRun(@Nonnull InteractionType var1, @Nonnull InteractionContext var2, @Nonnull CooldownHandler var3) {
      CommandBuffer var4 = var2.getCommandBuffer();
      assert var4 != null;
      Ref var5 = var2.getEntity();
      Store var6 = var5.getStore();
      Player var7 = var4.getComponent(var5, Player.getComponentType());
      if (var7 != null) {
         PageManager var8 = var7.getPageManager();
         if (var8.getCustomPage() == null) {
            ItemStack var9 = var2.getHeldItem();
            if (!ItemStack.isEmpty(var9)) {
               byte var10 = var2.getHeldItemSlot();
               ItemContainer var11 = InventoryUtils.getSectionById(var5, var2.getHeldItemSectionId(), var4);
               if (var11 != null) {
                  ItemStack var12 = var11.getItemStack(var10);
                  if (var12 != null) {
                     ItemStackContainerConfig var13 = var12.getItem().getItemStackContainerConfig();
                     ItemStackItemContainer var14 = ItemStackItemContainer.ensureConfiguredContainer(var11, var10, var13);
                     if (var14 != null) {
                        var8.setPageWithWindows(var5, var6, Page.Bench, true, new ItemStackContainerWindow(var14));
                     }
                  }
               }
            }
         }
      }
   }
}