From 55fb3ed74f5c5ff66806b8516e9bca0b8cbd69e9 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Mon, 25 Mar 2019 15:12:17 -0700 Subject: [PATCH] 2.1.24 - Critical Exploit Fix --- Changelog.txt | 3 +++ pom.xml | 2 +- .../java/com/gmail/nossr50/listeners/BlockListener.java | 9 +++++++++ .../java/com/gmail/nossr50/listeners/EntityListener.java | 2 +- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index ea5cd8628..2cc673afe 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -7,6 +7,9 @@ Key: ! Change - Removal +Version 2.1.24 + Fixed an exploit where you could clone inventories + Version 2.1.23 Fixed a bug with Double Drops for Mining (Update your configs instructions below) Fixed a 7 year old bug where damage in mcMMO from Skills was potentially getting reduced by damage reduction TWICE diff --git a/pom.xml b/pom.xml index d2fbc2031..380dafa61 100755 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.gmail.nossr50.mcMMO mcMMO - 2.1.23 + 2.1.24 mcMMO https://github.com/mcMMO-Dev/mcMMO diff --git a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java index 1a70d2975..03c5ee8fd 100644 --- a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java @@ -65,10 +65,19 @@ public class BlockListener implements Listener { if(is.getAmount() <= 0) continue; + //Extra Protection + if(event.getBlock().getState() instanceof Container) + return; + if(event.getBlock().getState().getMetadata(mcMMO.doubleDropKey).size() > 0) + { + event.getBlock().getState().removeMetadata(mcMMO.doubleDropKey, plugin); event.getBlock().getState().getWorld().dropItemNaturally(event.getBlockState().getLocation(), is); + } + else if(event.getBlock().getState().getMetadata(mcMMO.tripleDropKey).size() > 0) { + event.getBlock().getState().removeMetadata(mcMMO.tripleDropKey, plugin); event.getBlock().getState().getWorld().dropItemNaturally(event.getBlockState().getLocation(), is); event.getBlock().getState().getWorld().dropItemNaturally(event.getBlockState().getLocation(), is); } diff --git a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java index b67bd8169..e3e9b86f7 100644 --- a/src/main/java/com/gmail/nossr50/listeners/EntityListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/EntityListener.java @@ -222,10 +222,10 @@ public class EntityListener implements Listener { if(defender.getMetadata(mcMMO.CUSTOM_DAMAGE_METAKEY).size() > 0) { defender.removeMetadata(mcMMO.CUSTOM_DAMAGE_METAKEY, plugin); - LivingEntity defLive = (LivingEntity) defender; if(defender instanceof Player) { + LivingEntity defLive = (LivingEntity) defender; defLive.setHealth(defLive.getHealth() - event.getFinalDamage()); event.setCancelled(true); }