使用Minecraft的PlayerController.windowClick()?]

问题描述 投票:0回答:1

[我是Minecraft中开发mod的新手,我目前正在试图弄清楚如何将玩家库存中的物品从一个插槽移动到另一个插槽。

我知道要使此操作正常进行,必须将它作为数据包发送到服务器,并且我已经读过PlayerControllerMP类,该windowClick()“处理插槽点击,将数据包发送到服务器。”

此代码应打开库存,并将物料从热栏中的第一个插槽移动到第二个插槽。但是,当我运行它时,它只会打开库存,而该项目什么也没发生。

Minecraft.getMinecraft().displayGuiScreen(new GuiInventory(Minecraft.getMinecraft().player));
Minecraft.getMinecraft().playerController.windowClick(Minecraft.getMinecraft().player.inventoryContainer.windowId, 0, 0, ClickType.PICKUP, Minecraft.getMinecraft().player);
Minecraft.getMinecraft().playerController.windowClick(Minecraft.getMinecraft().player.inventoryContainer.windowId, 1, 0, ClickType.PICKUP, Minecraft.getMinecraft().player); 

我在做什么错?

感谢您的帮助:)

我对在Minecraft中开发mod并不陌生,我目前正在试图弄清楚如何将玩家库存中的物品从一个插槽移动到另一个插槽。我知道要使此操作有效,它必须是...

java minecraft forge minecraft-forge
1个回答
0
投票

我不知道ClickType的确切字段,也不知道与Minecraft改装有关的任何事情,但是我看到的是,您在第二个插槽中使用了ClickType.PICKUP,您正在将其移动到某个位置,但是不应该是ClickType.DROP之类的东西吗?就像我说的那样,我对Minecraft改装并不了解太多,所以我不知道确切的字段,因此应该有一个字段可以放置物品或释放物品或类似物品。但是,我所知道的是,您似乎在尝试将其移到插槽中拿起该项目。

© www.soinside.com 2019 - 2024. All rights reserved.