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:
		@@ -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