From 36fa2e51389fe95ab90a2ba6191853507ecb6cb8 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Tue, 20 Jul 2021 15:22:53 +0100 Subject: [PATCH] Removed UUID tracking --- .../com/willfp/ecobosses/bosses/EcoBoss.java | 16 ++++++------ .../ecobosses/bosses/LivingEcoBoss.java | 15 ++--------- .../bosses/listeners/AutoSpawnTimer.java | 7 +++--- .../bosses/tick/tickers/ChunkLoadTicker.java | 25 ------------------- .../ecobosses/bosses/util/BossUtils.java | 4 +-- .../bosses/util/obj/DamagerProperty.java | 2 -- 6 files changed, 15 insertions(+), 54 deletions(-) delete mode 100644 eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/tick/tickers/ChunkLoadTicker.java diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java index af88ef2..ddd0c7e 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java @@ -31,6 +31,7 @@ import org.bukkit.entity.LivingEntity; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.Arrays; @@ -39,7 +40,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.UUID; import java.util.stream.Collectors; public class EcoBoss extends PluginDependent { @@ -208,7 +208,7 @@ public class EcoBoss extends PluginDependent { /** * The currently living bosses of this type. */ - private final Map livingBosses; + private final Map livingBosses; /** * The effect names and arguments. @@ -476,7 +476,7 @@ public class EcoBoss extends PluginDependent { location.getChunk().load(); LivingEntity entity = bossType.spawnBossEntity(location); - this.livingBosses.put(entity.getUniqueId(), new LivingEcoBoss( + this.livingBosses.put(entity, new LivingEcoBoss( this.getPlugin(), entity, this @@ -491,16 +491,16 @@ public class EcoBoss extends PluginDependent { * @return The living boss, or null if not a boss. */ public LivingEcoBoss getLivingBoss(@NotNull final LivingEntity entity) { - return this.livingBosses.get(entity.getUniqueId()); + return this.livingBosses.get(entity); } /** * Remove living boss. * - * @param uuid The entity UUID. + * @param entity The entity. */ - public void removeLivingBoss(@NotNull final UUID uuid) { - this.livingBosses.remove(uuid); + public void removeLivingBoss(@Nullable final LivingEntity entity) { + this.livingBosses.remove(entity); } /** @@ -508,7 +508,7 @@ public class EcoBoss extends PluginDependent { * * @return The living bosses. */ - public Map getLivingBosses() { + public Map getLivingBosses() { return ImmutableMap.copyOf(this.livingBosses); } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java index 43bea32..f628fa4 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java @@ -8,7 +8,6 @@ import com.willfp.eco.util.StringUtils; import com.willfp.ecobosses.bosses.effects.Effect; import com.willfp.ecobosses.bosses.tick.BossTicker; import com.willfp.ecobosses.bosses.tick.tickers.BossBarTicker; -import com.willfp.ecobosses.bosses.tick.tickers.ChunkLoadTicker; import com.willfp.ecobosses.bosses.tick.tickers.HealthPlaceholderTicker; import com.willfp.ecobosses.bosses.tick.tickers.TargetTicker; import com.willfp.ecobosses.bosses.util.obj.OptionedSound; @@ -25,7 +24,6 @@ import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; -import java.util.UUID; import java.util.concurrent.atomic.AtomicLong; public class LivingEcoBoss extends PluginDependent { @@ -35,11 +33,6 @@ public class LivingEcoBoss extends PluginDependent { @Getter private LivingEntity entity; - /** - * The entity UUID. - */ - private final UUID uuid; - /** * The boss. */ @@ -67,7 +60,6 @@ public class LivingEcoBoss extends PluginDependent { @NotNull final EcoBoss boss) { super(plugin); this.entity = entity; - this.uuid = entity.getUniqueId(); this.boss = boss; this.onSpawn(); @@ -76,7 +68,6 @@ public class LivingEcoBoss extends PluginDependent { this.tickers = new ArrayList<>(); this.tickers.add(new HealthPlaceholderTicker()); this.tickers.add(new TargetTicker(boss.getTargetMode(), boss.getTargetDistance())); - this.tickers.add(new ChunkLoadTicker()); if (boss.isBossbarEnabled()) { this.tickers.add( new BossBarTicker( @@ -141,16 +132,14 @@ public class LivingEcoBoss extends PluginDependent { private void tick(final long tick, @NotNull final RunnableTask runnable) { - this.entity = (LivingEntity) Bukkit.getEntity(uuid); - - if (entity == null || entity.isDead() || boss.getLivingBoss(entity) == null) { + if (entity == null || entity.isDead()) { for (BossTicker ticker : tickers) { ticker.onDeath(boss, entity, tick); } for (Effect effect : effects) { effect.onDeath(boss, entity, tick); } - boss.removeLivingBoss(uuid); + boss.removeLivingBoss(entity); runnable.cancel(); return; } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/listeners/AutoSpawnTimer.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/listeners/AutoSpawnTimer.java index e3982e0..4c75980 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/listeners/AutoSpawnTimer.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/listeners/AutoSpawnTimer.java @@ -3,6 +3,7 @@ package com.willfp.ecobosses.bosses.listeners; import com.willfp.eco.util.NumberUtils; import com.willfp.ecobosses.bosses.EcoBoss; import com.willfp.ecobosses.bosses.EcoBosses; +import com.willfp.ecobosses.bosses.LivingEcoBoss; import com.willfp.ecobosses.bosses.util.BossUtils; import org.bukkit.Bukkit; import org.bukkit.Location; @@ -13,7 +14,7 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; -import java.util.UUID; +import java.util.stream.Collectors; public class AutoSpawnTimer implements Runnable { private int tick = 0; @@ -33,9 +34,9 @@ public class AutoSpawnTimer implements Runnable { Set worlds = new HashSet<>(); - for (UUID uuid : boss.getLivingBosses().keySet()) { - Entity entity = Bukkit.getEntity(uuid); + Bukkit.getLogger().info(boss.getLivingBosses().toString()); + for (Entity entity : boss.getLivingBosses().values().stream().map(LivingEcoBoss::getEntity).collect(Collectors.toList())) { BossUtils.warnIfNull(entity); assert entity != null; diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/tick/tickers/ChunkLoadTicker.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/tick/tickers/ChunkLoadTicker.java deleted file mode 100644 index e51dd74..0000000 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/tick/tickers/ChunkLoadTicker.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.willfp.ecobosses.bosses.tick.tickers; - -import com.willfp.ecobosses.bosses.EcoBoss; -import com.willfp.ecobosses.bosses.tick.BossTicker; -import org.bukkit.Chunk; -import org.bukkit.entity.LivingEntity; -import org.jetbrains.annotations.NotNull; - -public class ChunkLoadTicker implements BossTicker { - /** - * Create new chunk load ticker. - */ - public ChunkLoadTicker() { - } - - @Override - public void tick(@NotNull final EcoBoss boss, - @NotNull final LivingEntity entity, - final long tick) { - Chunk chunk = entity.getLocation().getChunk(); - if (!chunk.isLoaded()) { - chunk.load(); - } - } -} diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/BossUtils.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/BossUtils.java index eb11313..2774e9a 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/BossUtils.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/BossUtils.java @@ -22,7 +22,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; -import java.util.UUID; @UtilityClass @SuppressWarnings("unchecked") @@ -96,8 +95,7 @@ public class BossUtils { public int killAllBosses(final boolean force) { int amount = 0; for (EcoBoss boss : EcoBosses.values()) { - for (UUID uuid : boss.getLivingBosses().keySet()) { - LivingEntity entity = (LivingEntity) Bukkit.getEntity(uuid); + for (LivingEntity entity : boss.getLivingBosses().keySet()) { assert entity != null; entity.damage(10000000); amount++; diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/obj/DamagerProperty.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/obj/DamagerProperty.java index 24e94e4..717c20d 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/obj/DamagerProperty.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/obj/DamagerProperty.java @@ -1,7 +1,5 @@ package com.willfp.ecobosses.bosses.util.obj; -import lombok.Data; - import java.util.UUID; public record DamagerProperty(UUID playerUUID, double damage) {