From cf56b62082f5febdba4e656d533bf23e6291a5f0 Mon Sep 17 00:00:00 2001 From: Nahuel Dolores Date: Fri, 28 Jun 2024 22:09:45 +0200 Subject: [PATCH] Fix issues with envoy initialization --- .../crazyenvoys/api/CrazyManager.java | 59 ++++++++++--------- 1 file changed, 32 insertions(+), 27 deletions(-) diff --git a/paper/src/main/java/com/badbones69/crazyenvoys/api/CrazyManager.java b/paper/src/main/java/com/badbones69/crazyenvoys/api/CrazyManager.java index 37ae2b72..0c5699fc 100644 --- a/paper/src/main/java/com/badbones69/crazyenvoys/api/CrazyManager.java +++ b/paper/src/main/java/com/badbones69/crazyenvoys/api/CrazyManager.java @@ -726,44 +726,49 @@ public boolean startEnvoyEvent() { for (Block block : dropLocations) { if (block != null) { - boolean spawnFallingBlock = false; - - if (this.config.getProperty(ConfigKeys.envoy_falling_block_toggle)) { - for (Entity entity : this.methods.getNearbyEntities(block.getLocation(), 40, 40, 40)) { - if (entity instanceof Player) { - spawnFallingBlock = true; - break; + this.runTimeTask = new FoliaRunnable(this.plugin.getServer().getRegionScheduler(), block.getLocation()) { + @Override + public void run() { + boolean spawnFallingBlock = false; + + if (config.getProperty(ConfigKeys.envoy_falling_block_toggle)) { + for (Entity entity : methods.getNearbyEntities(block.getLocation(), 40, 40, 40)) { + if (entity instanceof Player) { + spawnFallingBlock = true; + break; + } + } } - } - } - if (spawnFallingBlock) { - if (!block.getChunk().isLoaded()) block.getChunk().load(); + if (spawnFallingBlock) { + if (!block.getChunk().isLoaded()) block.getChunk().load(); - int fallingHeight = this.config.getProperty(ConfigKeys.envoy_falling_height); - Material material = Material.valueOf(this.config.getProperty(ConfigKeys.envoy_falling_block_type)); + int fallingHeight = config.getProperty(ConfigKeys.envoy_falling_height); + Material material = Material.valueOf(config.getProperty(ConfigKeys.envoy_falling_block_type)); - FallingBlock fallingBlock = block.getWorld().spawn(block.getLocation().add(.5, fallingHeight, .5), FallingBlock.class); - fallingBlock.setBlockData(material.createBlockData()); + FallingBlock fallingBlock = block.getWorld().spawn(block.getLocation().add(.5, fallingHeight, .5), FallingBlock.class); + fallingBlock.setBlockData(material.createBlockData()); - fallingBlock.setDropItem(false); - fallingBlock.setHurtEntities(false); + fallingBlock.setDropItem(false); + fallingBlock.setHurtEntities(false); - this.fallingBlocks.put(fallingBlock, block); - } else { - Tier tier = pickRandomTier(); + fallingBlocks.put(fallingBlock, block); + } else { + Tier tier = pickRandomTier(); - if (!block.getChunk().isLoaded()) block.getChunk().load(); + if (!block.getChunk().isLoaded()) block.getChunk().load(); - block.setType(tier.getPlacedBlockMaterial()); + block.setType(tier.getPlacedBlockMaterial()); - if (tier.isHoloEnabled() && hasHologramPlugin()) this.hologramController.createHologram(block, tier); + if (tier.isHoloEnabled() && hasHologramPlugin()) hologramController.createHologram(block, tier); - addActiveEnvoy(block, tier); - this.locationSettings.addActiveLocation(block); + addActiveEnvoy(block, tier); + locationSettings.addActiveLocation(block); - if (tier.getSignalFlareToggle() && block.getChunk().isLoaded()) startSignalFlare(block.getLocation(), tier); - } + if (tier.getSignalFlareToggle() && block.getChunk().isLoaded()) startSignalFlare(block.getLocation(), tier); + } + } + }.run(this.plugin); } }