gpt4 book ai didi

java - 将玩家元素栏中染料的颜色替换为另一种

转载 作者:行者123 更新时间:2023-11-30 11:03:56 25 4
gpt4 key购买 nike

我想用一种不同颜色的新染料替换玩家库存中的一种染料,例如从青色到灰色。

我的插件可以完美地将一种染料更改为另一种染料,但是当我将它移到我的快捷栏时,我无法放下它,当我在我的元素栏中点击它时,它突然消失了。在那种情况下,我认为该项目不存在。

如何更改此项目的颜色?


代码:

Dye dye = new Dye();
dye.setColor(DyeColor.RED);
ItemStack dye4 = dye.toItemStack();
dye4.setAmount(1);
dye.setColor(DyeColor.ORANGE);
ItemStack dye3 = dye.toItemStack();
dye4.setAmount(1);
dye.setColor(DyeColor.PURPLE);
ItemStack dye2 = dye.toItemStack();
dye4.setAmount(1);
dye.setColor(DyeColor.CYAN);
ItemStack dye1 = dye.toItemStack();
dye4.setAmount(1);
dye.setColor(DyeColor.GRAY);
ItemStack dye0 = dye.toItemStack();

ArrayList<ItemStack> dyes = new ArrayList<ItemStack>(Arrays.asList(
dye0, dye1, dye2, dye3, dye4
));

p.getOpenInventory().getTopInventory().setItem(1, dyes.get(0));

注意:我已经缩短了这个示例的代码。


截图:

之前

Before

之后

After

我把它移到了快捷栏 - 在它消失前一秒(因为我没有点击它 :D)

I moved it to hotbar - a second before it disappeared (because I didn't click on it :D)​


下载

我制作了一个带有此错误的示例插件:


我该如何修复这个错误?

最佳答案

我的代码中有一个愚蠢的错误,我没有将灰色染料的数量设置为 1。

最终代码

Dye dye = new Dye();
dye.setColor(DyeColor.RED);
ItemStack dye4 = dye.toItemStack();
dye4.setAmount(1);
dye.setColor(DyeColor.ORANGE);
ItemStack dye3 = dye.toItemStack();
dye3.setAmount(1);
dye.setColor(DyeColor.PURPLE);
ItemStack dye2 = dye.toItemStack();
dye2.setAmount(1);
dye.setColor(DyeColor.CYAN);
ItemStack dye1 = dye.toItemStack();
dye1.setAmount(1);
dye.setColor(DyeColor.GRAY);
ItemStack dye0 = dye.toItemStack();
dye0.setAmount(1);

ImmutableList<ItemStack> dyes
= ImmutableList.of(dye0, dye1, dye2, dye3, dye4);

p.getOpenInventory().getTopInventory().setItem(1, dyes.get(0));

关于java - 将玩家元素栏中染料的颜色替换为另一种,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30174503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com