mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-24 14:16:45 +01:00
Fixed COTW summon bug
This commit is contained in:
parent
19bf96ab33
commit
91ab569b81
@ -1,5 +1,7 @@
|
|||||||
Version 2.2.028
|
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
|
Version 2.2.027
|
||||||
Added Tridents / Crossbows to salvage.vanilla.yml config (see notes)
|
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 org.bukkit.event.world.ChunkUnloadEvent;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class ChunkListener implements Listener {
|
public class ChunkListener implements Listener {
|
||||||
|
|
||||||
|
@ -31,7 +31,6 @@ import org.bukkit.block.Block;
|
|||||||
import org.bukkit.block.BlockFace;
|
import org.bukkit.block.BlockFace;
|
||||||
import org.bukkit.enchantments.Enchantment;
|
import org.bukkit.enchantments.Enchantment;
|
||||||
import org.bukkit.entity.*;
|
import org.bukkit.entity.*;
|
||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.PlayerInventory;
|
import org.bukkit.inventory.PlayerInventory;
|
||||||
import org.bukkit.inventory.meta.SkullMeta;
|
import org.bukkit.inventory.meta.SkullMeta;
|
||||||
|
@ -475,7 +475,7 @@ public class TamingManager extends SkillManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private int getAmountCurrentlySummoned(@NotNull CallOfTheWildType callOfTheWildType) {
|
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) {
|
private void addToTracker(@NotNull LivingEntity livingEntity, @NotNull CallOfTheWildType callOfTheWildType) {
|
||||||
|
@ -35,8 +35,11 @@ public class TransientEntityTracker {
|
|||||||
cleanPlayer(player, player.getUniqueId());
|
cleanPlayer(player, player.getUniqueId());
|
||||||
}
|
}
|
||||||
|
|
||||||
public int summonCountForPlayerOfType(@NotNull UUID playerUUID, @NotNull CallOfTheWildType callOfTheWildType) {
|
public int getActiveSummonsForPlayerOfType(@NotNull UUID playerUUID, @NotNull CallOfTheWildType callOfTheWildType) {
|
||||||
return getTrackedEntities(playerUUID, callOfTheWildType).size();
|
return getTrackedEntities(playerUUID, callOfTheWildType).stream()
|
||||||
|
.filter(tte -> tte.getLivingEntity().isValid())
|
||||||
|
.mapToInt(tte -> 1)
|
||||||
|
.sum();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addSummon(@NotNull UUID playerUUID, @NotNull TrackedTamingEntity trackedTamingEntity) {
|
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) {
|
public void removeSummonFromTracker(@NotNull UUID playerUUID, @NotNull TrackedTamingEntity trackedTamingEntity) {
|
||||||
|
entityLookupCache.remove(trackedTamingEntity.getLivingEntity());
|
||||||
|
|
||||||
if (playerSummonedEntityTracker.containsKey(playerUUID)) {
|
if (playerSummonedEntityTracker.containsKey(playerUUID)) {
|
||||||
playerSummonedEntityTracker.get(playerUUID).remove(trackedTamingEntity);
|
playerSummonedEntityTracker.get(playerUUID).remove(trackedTamingEntity);
|
||||||
entityLookupCache.remove(trackedTamingEntity.getLivingEntity());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user