Ver código fonte

We only care about sand & gravel.

Technically this was already addressed because no other blocks would
have their place store set to true, but this eliminates unnecessary
overhead caused by the checking of other falling blocks - anvils, dragon
eggs, and TNT.
GJ 12 anos atrás
pai
commit
2c78bac8f7

+ 11 - 8
src/main/java/com/gmail/nossr50/listeners/EntityListener.java

@@ -56,19 +56,22 @@ public class EntityListener implements Listener {
     @EventHandler(priority = EventPriority.MONITOR)
     public void onEntityChangeBlockEvent(EntityChangeBlockEvent event) {
         Entity entity = event.getEntity();
-        
+
         if (entity instanceof FallingBlock) {
             int entityID = entity.getEntityId();
             Block block = event.getBlock();
+            Material type = block.getType();
 
-            if (mcMMO.placeStore.isTrue(block)) {
-                plugin.addToFallingBlockTracker(entityID, block);
-            }
+            if (type == Material.SAND || type == Material.GRAVEL) {
+                if (mcMMO.placeStore.isTrue(block)) {
+                    plugin.addToFallingBlockTracker(entityID, block);
+                }
 
-            if (plugin.fallingBlockIsTracked(entityID) && block.getType() == Material.AIR) {
-                mcMMO.placeStore.setFalse(plugin.getSourceBlock(entityID));
-                mcMMO.placeStore.setTrue(block);
-                plugin.removeFromFallingBlockTracker(entityID);
+                if (plugin.fallingBlockIsTracked(entityID) && block.getType() == Material.AIR) {
+                    mcMMO.placeStore.setFalse(plugin.getSourceBlock(entityID));
+                    mcMMO.placeStore.setTrue(block);
+                    plugin.removeFromFallingBlockTracker(entityID);
+                }
             }
         }
     }