类net.minecraft.inventory.ContainerPlayer源码实例Demo

下面列出了怎么用net.minecraft.inventory.ContainerPlayer的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: SkyblockAddons   文件: GuiContainerHook.java
public static void drawGradientRect(GuiContainer guiContainer, int left, int top, int right, int bottom, int startColor, int endColor, Slot theSlot) {
    if (freezeBackpack) return;
    SkyblockAddons main = SkyblockAddons.getInstance();
    Container container = Minecraft.getMinecraft().thePlayer.openContainer;
    if (theSlot != null) {
        int slotNum = theSlot.slotNumber + main.getInventoryUtils().getSlotDifference(container);
        main.getUtils().setLastHoveredSlot(slotNum);
        if (main.getConfigValues().isEnabled(Feature.LOCK_SLOTS) &&
                main.getUtils().isOnSkyblock() && main.getConfigValues().getLockedSlots().contains(slotNum)
                && (slotNum >= 9 || container instanceof ContainerPlayer && slotNum >= 5)) {
            drawRightGradientRect(guiContainer, left, top, right, bottom, OVERLAY_RED, OVERLAY_RED);
            return;
        }
    }
    drawRightGradientRect(guiContainer, left, top, right, bottom, startColor, endColor);
}
 
源代码2 项目: SkyblockAddons   文件: MinecraftHook.java
public static void updatedCurrentItem() {
    Minecraft mc = Minecraft.getMinecraft();
    SkyblockAddons main = SkyblockAddons.getInstance();

    if (main.getConfigValues().isEnabled(Feature.LOCK_SLOTS) && (main.getUtils().isOnSkyblock() || main.getPlayerListener().aboutToJoinSkyblockServer())) {
        int slot = mc.thePlayer.inventory.currentItem + 36;
        if (main.getConfigValues().isEnabled(Feature.LOCK_SLOTS) && main.getConfigValues().getLockedSlots().contains(slot)
                && (slot >= 9 || mc.thePlayer.openContainer instanceof ContainerPlayer && slot >= 5)) {

            MinecraftHook.lastLockedSlotItemChange = System.currentTimeMillis();
        }

        ItemStack heldItemStack = mc.thePlayer.getHeldItem();
        if (heldItemStack != null && main.getConfigValues().isEnabled(Feature.STOP_DROPPING_SELLING_RARE_ITEMS) && !main.getUtils().isInDungeon()
                && !main.getUtils().getItemDropChecker().canDropItem(heldItemStack, true, false)) {

            MinecraftHook.lastLockedSlotItemChange = System.currentTimeMillis();
        }
    }
}
 
源代码3 项目: SkyblockAddons   文件: GuiContainerHook.java
public static void keyTyped(GuiContainer guiContainer, int keyCode, Slot theSlot, ReturnValue<?> returnValue) {
    SkyblockAddons main = SkyblockAddons.getInstance();
    Minecraft mc = Minecraft.getMinecraft();
    if (main.getUtils().isOnSkyblock()) {
        if (main.getConfigValues().isEnabled(Feature.LOCK_SLOTS) && (keyCode != 1 && keyCode != mc.gameSettings.keyBindInventory.getKeyCode())) {
            int slot = main.getUtils().getLastHoveredSlot();
            if (mc.thePlayer.inventory.getItemStack() == null && theSlot != null) {
                for (int i = 0; i < 9; ++i) {
                    if (keyCode == mc.gameSettings.keyBindsHotbar[i].getKeyCode()) {
                        slot = i + 36; // They are hotkeying, the actual slot is the targeted one, +36 because
                    }
                }
            }
            if (slot >= 9 || mc.thePlayer.openContainer instanceof ContainerPlayer && slot >= 5) {
                if (main.getConfigValues().getLockedSlots().contains(slot)) {
                    if (main.getLockSlotKey().getKeyCode() == keyCode) {
                        main.getUtils().playLoudSound("random.orb", 1);
                        main.getConfigValues().getLockedSlots().remove(slot);
                        main.getConfigValues().saveConfig();
                    } else {
                        main.getUtils().playLoudSound("note.bass", 0.5);
                        returnValue.cancel(); // slot is locked
                        return;
                    }
                } else {
                    if (main.getLockSlotKey().getKeyCode() == keyCode) {
                        main.getUtils().playLoudSound("random.orb", 0.1);
                        main.getConfigValues().getLockedSlots().add(slot);
                        main.getConfigValues().saveConfig();
                    }
                }
            }
        }
        if (mc.gameSettings.keyBindDrop.getKeyCode() == keyCode && main.getConfigValues().isEnabled(Feature.STOP_DROPPING_SELLING_RARE_ITEMS) && !main.getUtils().isInDungeon()) {
            if (!main.getUtils().getItemDropChecker().canDropItem(theSlot)) returnValue.cancel();
        }
    }
}
 
源代码4 项目: ForgeHax   文件: AutoMend.java
@SubscribeEvent
public void onUpdate(LocalPlayerUpdateEvent event) {
  if (!(LocalPlayerInventory.getOpenContainer() instanceof ContainerPlayer)) {
    return;
  }
  
  InvItem current = LocalPlayerInventory.getSelected();
  
  Optional.of(LocalPlayerInventory.getOffhand())
      .filter(this::isMendable)
      .filter(item -> !isDamaged(item))
      .ifPresent(
          offhand ->
              LocalPlayerInventory.getSlotInventory()
                  .stream()
                  .filter(this::isMendable)
                  .filter(this::isDamaged)
                  .filter(inv -> inv.getIndex() != current.getIndex())
                  .max(Comparator.comparingInt(InvItem::getDamage))
                  .ifPresent(
                      inv -> {
                        // pick up
                        LocalPlayerInventory.sendWindowClick(inv, 0, ClickType.PICKUP);
                        // place in offhand
                        LocalPlayerInventory.sendWindowClick(offhand, 0, ClickType.PICKUP);
                        // place shovel back
                        LocalPlayerInventory.sendWindowClick(inv, 0, ClickType.PICKUP);
                      }));
}
 
源代码5 项目: SkyblockAddons   文件: GuiContainerHook.java
public static void drawSlot(GuiContainer guiContainer, Slot slot) {
    SkyblockAddons main = SkyblockAddons.getInstance();
    Minecraft mc = Minecraft.getMinecraft();
    Container container = mc.thePlayer.openContainer;

    if (slot != null) {
        // Draw crafting pattern overlays inside the crafting grid.
        if (main.getConfigValues().isEnabled(Feature.CRAFTING_PATTERNS) && main.getUtils().isOnSkyblock()
                && slot.inventory.getDisplayName().getUnformattedText().equals(CraftingPattern.CRAFTING_TABLE_DISPLAYNAME)
                && main.getPersistentValues().getSelectedCraftingPattern() != CraftingPattern.FREE) {

            int craftingGridIndex = CraftingPattern.slotToCraftingGridIndex(slot.getSlotIndex());
            if (craftingGridIndex >= 0) {
                int slotLeft = slot.xDisplayPosition;
                int slotTop = slot.yDisplayPosition;
                int slotRight = slotLeft + 16;
                int slotBottom = slotTop + 16;
                if (main.getPersistentValues().getSelectedCraftingPattern().isSlotInPattern(craftingGridIndex)) {
                    if (!slot.getHasStack()) {
                        drawRightGradientRect(guiContainer, slotLeft, slotTop, slotRight, slotBottom, OVERLAY_GREEN, OVERLAY_GREEN);
                    }
                } else {
                    if (slot.getHasStack()) {
                        drawRightGradientRect(guiContainer, slotLeft, slotTop, slotRight, slotBottom, OVERLAY_RED, OVERLAY_RED);
                    }
                }
            }
        }

        if (main.getConfigValues().isEnabled(Feature.LOCK_SLOTS) &&
                main.getUtils().isOnSkyblock()) {
            int slotNum = slot.slotNumber + main.getInventoryUtils().getSlotDifference(container);
            if (main.getConfigValues().getLockedSlots().contains(slotNum)
                    && (slotNum >= 9 || container instanceof ContainerPlayer && slotNum >= 5)) {
                GlStateManager.disableLighting();
                GlStateManager.disableDepth();
                GlStateManager.color(1,1,1,0.4F);
                GlStateManager.enableBlend();
                mc.getTextureManager().bindTexture(LOCK);
                mc.ingameGUI.drawTexturedModalRect(slot.xDisplayPosition, slot.yDisplayPosition, 0, 0, 16, 16);
                GlStateManager.enableLighting();
                GlStateManager.enableDepth();
            }
        }
    }
}
 
源代码6 项目: SkyblockAddons   文件: EntityPlayerSPHook.java
public static EntityItem dropOneItemConfirmation(ReturnValue<?> returnValue) {
    SkyblockAddons main = SkyblockAddons.getInstance();
    Minecraft mc = Minecraft.getMinecraft();
    ItemStack heldItemStack = mc.thePlayer.getHeldItem();

    if ((main.getUtils().isOnSkyblock() || main.getPlayerListener().aboutToJoinSkyblockServer())) {
        if (main.getConfigValues().isEnabled(Feature.LOCK_SLOTS) && !main.getUtils().isInDungeon()) {
            int slot = mc.thePlayer.inventory.currentItem + 36;
            if (main.getConfigValues().getLockedSlots().contains(slot) && (slot >= 9 || mc.thePlayer.openContainer instanceof ContainerPlayer && slot >= 5)) {
                main.getUtils().playLoudSound("note.bass", 0.5);
                SkyblockAddons.getInstance().getUtils().sendMessage(main.getConfigValues().getRestrictedColor(Feature.DROP_CONFIRMATION) + Message.MESSAGE_SLOT_LOCKED.getMessage());
                returnValue.cancel();
                return null;
            }

            if (System.currentTimeMillis() - MinecraftHook.getLastLockedSlotItemChange() < 200) {
                main.getUtils().playLoudSound("note.bass", 0.5);
                SkyblockAddons.getInstance().getUtils().sendMessage(main.getConfigValues().getRestrictedColor(Feature.DROP_CONFIRMATION) + Message.MESSAGE_SWITCHED_SLOTS.getMessage());
                returnValue.cancel();
                return null;
            }
        }

        if (heldItemStack != null && main.getConfigValues().isEnabled(Feature.STOP_DROPPING_SELLING_RARE_ITEMS) && !main.getUtils().isInDungeon()) {
            if (!main.getUtils().getItemDropChecker().canDropItem(heldItemStack, true)) {
                main.getUtils().sendMessage(main.getConfigValues().getRestrictedColor(Feature.STOP_DROPPING_SELLING_RARE_ITEMS) + Message.MESSAGE_CANCELLED_DROPPING.getMessage());
                returnValue.cancel();
                return null;
            }

            if (System.currentTimeMillis() - MinecraftHook.getLastLockedSlotItemChange() < 200) {
                main.getUtils().playLoudSound("note.bass", 0.5);
                SkyblockAddons.getInstance().getUtils().sendMessage(main.getConfigValues().getRestrictedColor(Feature.DROP_CONFIRMATION) + Message.MESSAGE_SWITCHED_SLOTS.getMessage());
                returnValue.cancel();
                return null;
            }
        }
    }

    if (heldItemStack != null && main.getConfigValues().isEnabled(Feature.DROP_CONFIRMATION) && !main.getUtils().isInDungeon() && (main.getUtils().isOnSkyblock() || main.getPlayerListener().aboutToJoinSkyblockServer()
            || main.getConfigValues().isEnabled(Feature.DOUBLE_DROP_IN_OTHER_GAMES))) {
        lastDrop = Minecraft.getSystemTime();

        String heldItemName = heldItemStack.hasDisplayName() ? heldItemStack.getDisplayName() : heldItemStack.getUnlocalizedName();

        if (lastItemName == null || !lastItemName.equals(heldItemName) || Minecraft.getSystemTime() - lastDrop >= 3000L) {
            SkyblockAddons.getInstance().getUtils().sendMessage(main.getConfigValues().getRestrictedColor(Feature.DROP_CONFIRMATION) + Message.MESSAGE_DROP_CONFIRMATION.getMessage());
            lastItemName = heldItemName;
            returnValue.cancel();
        }
    }

    return null;
}
 
源代码7 项目: ForgeHax   文件: ExtraInventory.java
private static Optional<ContainerPlayer> getPlayerContainer() {
  return Optional.ofNullable(getCurrentContainer())
      .filter(ContainerPlayer.class::isInstance)
      .map(ContainerPlayer.class::cast);
}