diff --git a/Movecraft/src/main/java/net/countercraft/movecraft/features/status/StatusManager.java b/Movecraft/src/main/java/net/countercraft/movecraft/features/status/StatusManager.java index 533f84ece..212005ee0 100644 --- a/Movecraft/src/main/java/net/countercraft/movecraft/features/status/StatusManager.java +++ b/Movecraft/src/main/java/net/countercraft/movecraft/features/status/StatusManager.java @@ -95,6 +95,12 @@ private StatusUpdateTask(@NotNull Craft craft) { Counter flyblocks = new Counter<>(); Counter moveblocks = new Counter<>(); + + // Pre-fill the moveblocks counter to avoid ignoring moveblocks + for(RequiredBlockEntry entry : craft.getType().getRequiredBlockProperty(CraftType.MOVE_BLOCKS)) { + moveblocks.add(entry, 0); + } + for(Material material : materials.getKeySet()) { for(RequiredBlockEntry entry : craft.getType().getRequiredBlockProperty(CraftType.FLY_BLOCKS)) { if(entry.contains(material)) { @@ -143,9 +149,12 @@ public void onCraftStatusUpdate(@NotNull CraftStatusUpdateEvent e) { if(!entry.check(flyBlocks.get(entry), nonNegligibleBlocks, sinkPercent)) sinking = true; } - for (RequiredBlockEntry entry : moveBlocks.getKeySet()) { - if (!entry.check(moveBlocks.get(entry), nonNegligibleBlocks, sinkPercent)) - disabled = true; + // If the craft has MOveblocks defined, then validate them, if there are any aboard + if (craft.getType().getRequiredBlockProperty(CraftType.MOVE_BLOCKS).size() > 0) { + for (RequiredBlockEntry entry : moveBlocks.getKeySet()) { + if (!entry.check(moveBlocks.get(entry), nonNegligibleBlocks, sinkPercent)) + disabled = true; + } } // And check the OverallSinkPercent