mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-04 02:53:43 +01:00 
			
		
		
		
	Patch potential exploit relating to teleportation and acrobatics.
This commit is contained in:
		@@ -84,6 +84,7 @@ public class McMMOPlayer {
 | 
			
		||||
 | 
			
		||||
    private int recentlyHurt;
 | 
			
		||||
    private int respawnATS;
 | 
			
		||||
    private int teleportATS;
 | 
			
		||||
    private int chimeraWingLastUse;
 | 
			
		||||
    private Location teleportCommence;
 | 
			
		||||
 | 
			
		||||
@@ -343,6 +344,14 @@ public class McMMOPlayer {
 | 
			
		||||
        respawnATS = (int) (System.currentTimeMillis() / Misc.TIME_CONVERSION_FACTOR);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int getTeleportATS() {
 | 
			
		||||
        return teleportATS;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void actualizeTeleportATS() {
 | 
			
		||||
        teleportATS = (int) (System.currentTimeMillis() / Misc.TIME_CONVERSION_FACTOR);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
     * Repair Anvil Placement
 | 
			
		||||
     */
 | 
			
		||||
 
 | 
			
		||||
@@ -50,6 +50,7 @@ import com.gmail.nossr50.util.Misc;
 | 
			
		||||
import com.gmail.nossr50.util.Permissions;
 | 
			
		||||
import com.gmail.nossr50.util.player.UserManager;
 | 
			
		||||
import com.gmail.nossr50.util.skills.CombatUtils;
 | 
			
		||||
import com.gmail.nossr50.util.skills.SkillUtils;
 | 
			
		||||
 | 
			
		||||
public class EntityListener implements Listener {
 | 
			
		||||
    private final mcMMO plugin;
 | 
			
		||||
@@ -221,6 +222,10 @@ public class EntityListener implements Listener {
 | 
			
		||||
 | 
			
		||||
            switch (cause) {
 | 
			
		||||
                case FALL:
 | 
			
		||||
                    if (SkillUtils.calculateTimeLeft((long) mcMMOPlayer.getTeleportATS() * Misc.TIME_CONVERSION_FACTOR, 5, player) > 0) {
 | 
			
		||||
                        return;
 | 
			
		||||
                    }
 | 
			
		||||
 | 
			
		||||
                    AcrobaticsManager acrobaticsManager = mcMMOPlayer.getAcrobaticsManager();
 | 
			
		||||
 | 
			
		||||
                    if (acrobaticsManager.canRoll()) {
 | 
			
		||||
 
 | 
			
		||||
@@ -24,6 +24,7 @@ import org.bukkit.event.player.PlayerJoinEvent;
 | 
			
		||||
import org.bukkit.event.player.PlayerPickupItemEvent;
 | 
			
		||||
import org.bukkit.event.player.PlayerQuitEvent;
 | 
			
		||||
import org.bukkit.event.player.PlayerRespawnEvent;
 | 
			
		||||
import org.bukkit.event.player.PlayerTeleportEvent;
 | 
			
		||||
import org.bukkit.inventory.ItemStack;
 | 
			
		||||
 | 
			
		||||
import com.gmail.nossr50.mcMMO;
 | 
			
		||||
@@ -66,6 +67,12 @@ public class PlayerListener implements Listener {
 | 
			
		||||
        this.plugin = plugin;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
 | 
			
		||||
    public void onPlayerTeleport(PlayerTeleportEvent event) {
 | 
			
		||||
        UserManager.getPlayer(event.getPlayer()).actualizeTeleportATS();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
 | 
			
		||||
    public void onPlayerDeathLowest(PlayerDeathEvent event) {
 | 
			
		||||
        String deathMessage = event.getDeathMessage();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user