gpt4 book ai didi

java - 龙头改变染色粘土颜色

转载 作者:行者123 更新时间:2023-11-30 02:24:17 27 4
gpt4 key购买 nike

这是我的搜索代码:

for(int x = -100; x < 100; x ++)
{
for(int z = -100; z < 100; z ++)
{
for(int y = 0; y < 50; y ++)
{
Location loc = new Location(Bukkit.getWorld(map_name), x, y, z);
Block block = loc.getBlock();
if(block.getType()
.equals(ConstantsManager.ground_material))
{
if(block.getType().getData()
.equals(ConstantsManager.ground_redId))
orig_redClay.add(block);
if(block.getType().getData()
.equals(ConstantsManager.ground_blueId))
orig_blueClay.add(block);
}
}
}
}

在静态类ConstantsManager中

public static final Material ground_material = Material.STAINED_CLAY;

public static final int ground_blueId = 3;
public static final int ground_redId = 14;

它应该在 100*50*100 体积中搜索红色或蓝色染色粘土,调用 ConstantsManager 获取 Material 和颜色值。该代码能够检测该 block 是否是粘土,但无法检测它是红色还是蓝色。为了检测粘土颜色,我可以在代码中更改什么?

最佳答案

你的问题是你正在使用 block.getType().getData() 。您想要使用

<强> block.getData()

block.getType().getData()似乎正在返回Class<? extends MaterialData>这绝对不等于您要与之比较的 int 。 (我自己不太确定该方法返回什么)

总结一下您的 if 语句应该如下所示。

if (block.getData() == ConstantsManager.ground_redId)

注意:您不能使用 .equals在原始 Java 数据类型上,因此 ==

关于java - 龙头改变染色粘土颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46064529/

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