星辰吖丶
怎么获取农作物的生长状态
比如我想判断农作物是否成熟 如果成熟了怎么怎么 如果没成熟变成掉落物

2000000
本帖最后由 2000000 于 2022-12-9 20:15 编辑
        Block block = event.getBlock();
        BlockData blockData = block.getBlockData();

        if (!(blockData instanceof Ageable)) return;

        Ageable ageable = (Ageable) blockData;

        if (ageable.getAge() == ageable.getMaximumAge()) Bukkit.getLogger().info("成熟");


另外需要 注意 的是 Ageable 的导入包为 "org.bukkit.block.data.Ageable" 而不是 "org.bukkit.entity.Ageable"


星辰吖丶
2000000 发表于 2022-12-9 20:12
另外需要 注意 的是 Ageable 的导入包为 "org.bukkit.block.data.Ageable" 而不是 "org.bukkit.entity.Ag ...

我想在BlockDropItemEvent事件里面判断 如果不是成熟 则变成掉落物 应该怎么写

2000000
星辰吖丶 发表于 2022-12-9 21:10
我想在BlockDropItemEvent事件里面判断 如果不是成熟 则变成掉落物 应该怎么写 ...

您应该在 BlockBreakEvent 内写

星辰吖丶
2000000 发表于 2022-12-9 21:16
您应该在 BlockBreakEvent 内写
    @EventHandler(priority = EventPriority.MONITOR,ignoreCancelled = true)
    public void Shou(BlockDropItemEvent e){
        String p = e.getPlayer().getName();
        User user = User.of(p);
        if (StarsFarm.players.contains(e.getPlayer())){
            for (Item item : e.getItems()){
                ItemStack is = item.getItemStack();
                if (StarsFarm.materials.contains(is.getType())){
                    String type = is.getType().name();
                    item.remove();
                    user.addSell(type,user.getHave(type) + is.getAmount());
                }
            }
        }
    }


这是原代码 我想在这里面做个判断 应该怎么修改

2000000
本帖最后由 2000000 于 2022-12-9 23:21 编辑
星辰吖丶 发表于 2022-12-9 22:53
这是原代码 我想在这里面做个判断 应该怎么修改

您应该学会自己去写,我已经将具体代码告诉您了,您应该避免食用别人的代码,尝试自己动手完成这一切。