mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-11-03 18:43:43 +01:00 
			
		
		
		
	Fixed COTW summon bug
This commit is contained in:
		@@ -1,5 +1,7 @@
 | 
			
		||||
Version 2.2.028
 | 
			
		||||
    Fix stack overflow during ChunkUnloadEvent
 | 
			
		||||
    Fixed a bug where you had to wait to summon another COTW summon if one or more of them had died or otherwise expired before their time limit
 | 
			
		||||
    Fixed stack overflow during ChunkUnloadEvent
 | 
			
		||||
    (API) Added McMMOPlayerMasterAnglerEvent (thanks bobcat4848)
 | 
			
		||||
 | 
			
		||||
Version 2.2.027
 | 
			
		||||
    Added Tridents / Crossbows to salvage.vanilla.yml config (see notes)
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,6 @@ import org.bukkit.event.Listener;
 | 
			
		||||
import org.bukkit.event.world.ChunkUnloadEvent;
 | 
			
		||||
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
public class ChunkListener implements Listener {
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -31,7 +31,6 @@ import org.bukkit.block.Block;
 | 
			
		||||
import org.bukkit.block.BlockFace;
 | 
			
		||||
import org.bukkit.enchantments.Enchantment;
 | 
			
		||||
import org.bukkit.entity.*;
 | 
			
		||||
import org.bukkit.event.entity.EntityDamageEvent;
 | 
			
		||||
import org.bukkit.inventory.ItemStack;
 | 
			
		||||
import org.bukkit.inventory.PlayerInventory;
 | 
			
		||||
import org.bukkit.inventory.meta.SkullMeta;
 | 
			
		||||
 
 | 
			
		||||
@@ -475,7 +475,7 @@ public class TamingManager extends SkillManager {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private int getAmountCurrentlySummoned(@NotNull CallOfTheWildType callOfTheWildType) {
 | 
			
		||||
        return mcMMO.getTransientEntityTracker().summonCountForPlayerOfType(getPlayer().getUniqueId(), callOfTheWildType);
 | 
			
		||||
        return mcMMO.getTransientEntityTracker().getActiveSummonsForPlayerOfType(getPlayer().getUniqueId(), callOfTheWildType);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void addToTracker(@NotNull LivingEntity livingEntity, @NotNull CallOfTheWildType callOfTheWildType) {
 | 
			
		||||
 
 | 
			
		||||
@@ -35,8 +35,11 @@ public class TransientEntityTracker {
 | 
			
		||||
        cleanPlayer(player, player.getUniqueId());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public int summonCountForPlayerOfType(@NotNull UUID playerUUID, @NotNull CallOfTheWildType callOfTheWildType) {
 | 
			
		||||
        return getTrackedEntities(playerUUID, callOfTheWildType).size();
 | 
			
		||||
    public int getActiveSummonsForPlayerOfType(@NotNull UUID playerUUID, @NotNull CallOfTheWildType callOfTheWildType) {
 | 
			
		||||
        return getTrackedEntities(playerUUID, callOfTheWildType).stream()
 | 
			
		||||
                .filter(tte -> tte.getLivingEntity().isValid())
 | 
			
		||||
                .mapToInt(tte -> 1)
 | 
			
		||||
                .sum();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void addSummon(@NotNull UUID playerUUID, @NotNull TrackedTamingEntity trackedTamingEntity) {
 | 
			
		||||
@@ -110,9 +113,10 @@ public class TransientEntityTracker {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void removeSummonFromTracker(@NotNull UUID playerUUID, @NotNull TrackedTamingEntity trackedTamingEntity) {
 | 
			
		||||
        entityLookupCache.remove(trackedTamingEntity.getLivingEntity());
 | 
			
		||||
 | 
			
		||||
        if (playerSummonedEntityTracker.containsKey(playerUUID)) {
 | 
			
		||||
            playerSummonedEntityTracker.get(playerUUID).remove(trackedTamingEntity);
 | 
			
		||||
            entityLookupCache.remove(trackedTamingEntity.getLivingEntity());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user