Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ allprojects {
}

dependencies {
compileOnly("com.willfp:eco:7.5.0")
compileOnly("com.willfp:eco:7.5.1")
compileOnly("org.jetbrains:annotations:26.0.2")
compileOnly("org.jetbrains.kotlin:kotlin-stdlib:2.3.0")
compileOnly("com.github.ben-manes.caffeine:caffeine:3.2.3")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package com.willfp.ecocrates
import com.willfp.eco.core.command.impl.PluginCommand
import com.willfp.eco.core.display.DisplayModule
import com.willfp.eco.core.integrations.IntegrationLoader
import com.willfp.eco.core.particle.Particles
import com.willfp.ecocrates.commands.CommandEcoCrates
import com.willfp.ecocrates.converters.Converters
import com.willfp.ecocrates.converters.impl.CrateReloadedConverter
Expand Down Expand Up @@ -55,6 +56,7 @@ class EcoCratesPlugin : LibreforgePlugin() {
}

override fun handleReload() {
Particles.loadFromConfig(this, "particles")
KeyGUI.update()
PlacedCrates.reload()
CrateDisplay.start()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,8 @@ package com.willfp.ecocrates.commands
import com.willfp.eco.core.command.impl.Subcommand
import com.willfp.eco.util.StringUtils
import com.willfp.eco.util.toNiceString
import com.willfp.ecocrates.crate.Crate
import com.willfp.ecocrates.crate.Crates
import com.willfp.ecocrates.crate.Keys
import com.willfp.ecocrates.crate.placed.particle.ParticleAnimations
import com.willfp.ecocrates.plugin
import com.willfp.ecocrates.reward.Rewards
import org.bukkit.command.CommandSender
Expand All @@ -25,6 +23,5 @@ object CommandReload : Subcommand(
.replace("%keys%", Keys.values().size.toString())
.replace("%rewards%", Rewards.values().size.toString())
)
ParticleAnimations.reload()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,11 @@ import com.willfp.eco.core.gui.slot.FillerMask
import com.willfp.eco.core.gui.slot.MaskItems
import com.willfp.eco.core.items.Items
import com.willfp.eco.core.particle.Particles
import com.willfp.eco.core.particle.SpawnableParticle
import com.willfp.eco.core.placeholder.PlayerPlaceholder
import com.willfp.eco.core.registry.KRegistrable
import com.willfp.eco.util.NumberUtils
import com.willfp.ecocrates.crate.placed.HologramFrame
import com.willfp.ecocrates.crate.placed.particle.ParticleAnimations
import com.willfp.ecocrates.crate.placed.particle.ParticleData
import com.willfp.ecocrates.crate.reroll.ReRollGUI
import com.willfp.ecocrates.crate.roll.Roll
import com.willfp.ecocrates.crate.roll.RollOptions
Expand Down Expand Up @@ -78,12 +77,8 @@ class Crate(

val randomRewardName = config.getFormattedString("placed.random-reward.name")

val particles = config.getSubsections("placed.particles").map {
ParticleData(
Particles.lookup(it.getString("particle")),
ParticleAnimations.get(it.getString("animation")) ?: ParticleAnimations.SPIRAL
)
}
val particles: List<SpawnableParticle> = config.getSubsections("placed.particles")
.map { Particles.lookup(it.getString("particle")) }

// The ID of the shared key this crate uses, defined in keys/ folder
val sharedKey: SharedKey = Keys[config.getString("key")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,10 @@ import org.bukkit.scheduler.BukkitTask
object CrateDisplay {
@Volatile private var tick = 0
private var syncTask: BukkitTask? = null
private var asyncTask: BukkitTask? = null

fun start() {
syncTask?.cancel()
asyncTask?.cancel()

syncTask = plugin.scheduler.runTimer(1, 1) { tick() }
asyncTask = plugin.scheduler.runAsyncTimer(1, 1) { tickAsync() }
}

private fun tick() {
Expand All @@ -24,11 +20,4 @@ object CrateDisplay {

tick++
}

private fun tickAsync() {
for (crate in PlacedCrates.values()) {
if (!(crate.location.isChunkLoaded)) continue
crate.tickAsync(tick)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import com.willfp.eco.core.integrations.hologram.HologramManager
import com.willfp.ecocrates.crate.Crate
import org.bukkit.Location
import org.bukkit.entity.Item
import org.bukkit.event.Cancellable
import org.bukkit.util.Vector

class PlacedCrate(
Expand All @@ -26,20 +27,19 @@ class PlacedCrate(

private var item: Item? = null

private val particleCancellables: List<Cancellable> = crate.particles.map { it.spawn(location) }

internal fun tick(tick: Int) {
tickRandomReward(tick)
tickHolograms(tick)
}

internal fun tickAsync(tick: Int) {
tickParticles(tick)
}

internal fun onRemove() {
hologram?.remove()
hologram = null
item?.remove()
item = null
particleCancellables.forEach { it.setCancelled(true) }
}

private fun tickHolograms(tick: Int) {
Expand Down Expand Up @@ -121,12 +121,6 @@ class PlacedCrate(
}
}

private fun tickParticles(tick: Int) {
for ((particle, animation) in crate.particles.toList()) { // Anti ConcurrentModification
animation.spawnParticle(location, tick, particle)
}
}

override fun toString(): String {
return "PlacedCrate{crate=$crate,location=$location}"
}
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading
Loading