我有这个代码;
@SuppressWarnings("deprecation")
@EventHandler
public void entityShoot(EntityDeathEvent e) {
ArrayList<ItemStack> drops = new ArrayList<ItemStack>();
Random rand = new Random();
int sword = rand.getInt(1) + 1;
int chest = rand.getInt(9) + 1;
if(sword == 1)
{
drops.add(new ItemStack(swordID));
}
if(chest == 1)
{
drops.add(new ItemStack(chestID));
}
}
但getInt中存在错误。 如果我将其更改为nextInt,则没有随机.. 它用于Minecraft Bukkit。 你能纠正代码吗? 我不明白......
谢谢! 此致,René:)
答案 0 :(得分:3)
这个
int sword = rand.getInt(1) + 1;
int chest = rand.getInt(9) + 1;
应
int sword = rand.nextInt(1) + 1;
int chest = rand.nextInt(9) + 1;
而不是
祝你好运
答案 1 :(得分:1)
getInt()
不是一种方法,甚至不会编译。
nextInt()
的参数是独占的,因此调用nextInt(1)
将始终为零。这可能就是为什么它似乎不是随机的。
此外,不是向胸部添加1然后检查是否等于1,而是不添加任何东西并检查它是否等于零。剑也一样。
答案 2 :(得分:0)
应为nextInt()
int sword = rand.nextInt(1) + 1;
int chest = rand.nextInt(9) + 1;
Random
没有getInt
。见Random
javadoc
答案 3 :(得分:0)
你也可以使用Math.Random(),它会给你一个介于0和0.9999之间的数字....