首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将玩家库存中的染料颜色替换为另一种颜色

将玩家库存中的染料颜色替换为另一种颜色
EN

Stack Overflow用户
提问于 2015-05-11 17:59:25
回答 1查看 265关注 0票数 2

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

我的插件将一种染料完美地转换成另一种染料,但当我把它移到我的热吧间时,我无法放下它,当我在我的库存中点击它时,它突然消失了。在这种情况下,我认为该项目不存在。

我怎样才能改变这个项目的颜色?

代码:

代码语言:javascript
复制
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));

注意:我缩短了这个例子的代码。

截图:

在此之前

之后

我把它移到热吧-在它消失前的一秒钟(因为我没有点击它:D)​

下载

我用这个错误做了一个例子插件:

如何纠正此错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-11 19:38:09

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

最终代码

代码语言:javascript
复制
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));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30174503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档