浏览代码

Some tweaks to tracking blocks as unnatural

nossr50 5 年之前
父节点
当前提交
0b20fc2c16
共有 2 个文件被更改,包括 12 次插入20 次删除
  1. 1 1
      Changelog.txt
  2. 11 19
      src/main/java/com/gmail/nossr50/listeners/BlockListener.java

+ 1 - 1
Changelog.txt

@@ -1,5 +1,5 @@
 Version 2.1.146
-    A dupe exploit has been patched
+    Improvements were made to tracking player placed blocks in mcMMO
     Players no longer lose levels below the level threshold in hardcore mode
     Hardcore now only applies penalties to levels above threshold
 

+ 11 - 19
src/main/java/com/gmail/nossr50/listeners/BlockListener.java

@@ -127,10 +127,8 @@ public class BlockListener implements Listener {
         Block movedBlock;
 
         for (Block b : event.getBlocks()) {
-            if (BlockUtils.shouldBeWatched(b.getState())) {
-                movedBlock = b.getRelative(direction);
-                mcMMO.getPlaceStore().setTrue(movedBlock);
-            }
+            movedBlock = b.getRelative(direction);
+            mcMMO.getPlaceStore().setTrue(movedBlock);
         }
     }
 
@@ -190,7 +188,6 @@ public class BlockListener implements Listener {
         if(ExperienceConfig.getInstance().preventStoneLavaFarming())
         {
             if(event.getNewState().getType() != Material.OBSIDIAN
-                    && BlockUtils.shouldBeWatched(event.getNewState())
                     && ExperienceConfig.getInstance().doesBlockGiveSkillXP(PrimarySkillType.MINING, event.getNewState().getBlockData()))
             {
                 mcMMO.getPlaceStore().setTrue(event.getNewState());
@@ -208,11 +205,8 @@ public class BlockListener implements Listener {
         BlockState blockState = event.getBlock().getState();
 
         /* Check if the blocks placed should be monitored so they do not give out XP in the future */
-        if (BlockUtils.shouldBeWatched(blockState)) {
-            // Don't count de-barking wood
-//            if (!Tag.LOGS.isTagged(event.getBlockReplacedState().getType()) || !Tag.LOGS.isTagged(event.getBlockPlaced().getType()))
-                mcMMO.getPlaceStore().setTrue(blockState);
-        }
+//      if (!Tag.LOGS.isTagged(event.getBlockReplacedState().getType()) || !Tag.LOGS.isTagged(event.getBlockPlaced().getType()))
+        mcMMO.getPlaceStore().setTrue(blockState);
 
         /* WORLD BLACKLIST CHECK */
         if(WorldBlacklist.isWorldBlacklisted(event.getBlock().getWorld())) {
@@ -250,9 +244,7 @@ public class BlockListener implements Listener {
             BlockState blockState = replacedBlockState.getBlock().getState();
 
             /* Check if the blocks placed should be monitored so they do not give out XP in the future */
-            if (BlockUtils.shouldBeWatched(blockState)) {
-                mcMMO.getPlaceStore().setTrue(blockState);
-            }
+            mcMMO.getPlaceStore().setTrue(blockState);
         }
 
         /* WORLD BLACKLIST CHECK */
@@ -276,9 +268,9 @@ public class BlockListener implements Listener {
 
         BlockState blockState = event.getBlock().getState();
 
-        if (!BlockUtils.shouldBeWatched(blockState)) {
-            return;
-        }
+//        if (!BlockUtils.shouldBeWatched(blockState)) {
+//            return;
+//        }
 
         mcMMO.getPlaceStore().setFalse(blockState);
     }
@@ -308,9 +300,9 @@ public class BlockListener implements Listener {
         BlockState blockState = event.getBlock().getState();
         Location location = blockState.getLocation();
 
-        if (!BlockUtils.shouldBeWatched(blockState)) {
-            return;
-        }
+//        if (!BlockUtils.shouldBeWatched(blockState)) {
+//            return;
+//        }
 
         /* ALCHEMY - Cancel any brew in progress for that BrewingStand */
         if (blockState instanceof BrewingStand && Alchemy.brewingStandMap.containsKey(location)) {