Browse Source

add ExploitFix.PreventArmorStandInteraction to prevent combat abilities going off on armor stands

nossr50 1 year ago
parent
commit
b6697141f7

+ 6 - 0
Changelog.txt

@@ -1,3 +1,9 @@
+Version 2.1.232
+    Added new setting to experience.yml 'ExploitFix.PreventArmorStandInteraction' can be turned to false to enable mcMMO abilities on armor stands again
+
+    NOTES:
+    The new setting simply prevents mcMMO abilities from activating when attacking an armor stand, this prevents some exploits
+
 Version 2.1.231
     Fixed a bug preventing parties from being made without passwords (Thanks Momshroom)
     Updated korean locale (thanks mangchi57)

+ 1 - 1
pom.xml

@@ -2,7 +2,7 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.gmail.nossr50.mcMMO</groupId>
     <artifactId>mcMMO</artifactId>
-    <version>2.1.231</version>
+    <version>2.1.232-SNAPSHOT</version>
     <name>mcMMO</name>
     <url>https://github.com/mcMMO-Dev/mcMMO</url>
     <scm>

+ 4 - 0
src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java

@@ -177,6 +177,10 @@ public class ExperienceConfig extends BukkitConfig {
         return config.getBoolean("ExploitFix.PreventPluginNPCInteraction", true);
     }
 
+    public boolean isArmorStandInteractionPrevented() {
+        return config.getBoolean("ExploitFix.PreventArmorStandInteraction", true);
+    }
+
     public boolean isFishingExploitingPrevented() {
         return config.getBoolean("ExploitFix.Fishing", true);
     }

+ 4 - 0
src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java

@@ -300,6 +300,10 @@ public final class CombatUtils {
         Entity painSource = event.getDamager();
         EntityType entityType = painSource.getType();
 
+        if (target instanceof ArmorStand) {
+            return;
+        }
+
         if (target instanceof Player player) {
             if(ExperienceConfig.getInstance().isNPCInteractionPrevented()) {
                 if (Misc.isNPCEntityExcludingVillagers(target)) {

+ 1 - 0
src/main/resources/experience.yml

@@ -39,6 +39,7 @@ ExploitFix:
     TreeFellerReducedXP: true
     PistonCheating: true
     SnowGolemExcavation: true
+    PreventArmorStandInteraction: true
     # This include NPCs from stuff like Citizens, this is not a setting for Vanilla Minecraft Villagers (Which can be considered NPCs)
     # mcMMO normally doesn't process attacks against an Entity if it is an NPC from another plugin
     # Of course, mcMMO doesn't know for sure whether something is an NPC, it checks a few known things, see our source code to see how