2.1.24 - Critical Exploit Fix

This commit is contained in:
nossr50
2019-03-25 15:12:17 -07:00
parent 363ea66335
commit 55fb3ed74f
4 changed files with 14 additions and 2 deletions

View File

@ -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);
}

View File

@ -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);
}