Fixed boosters breaking on restart
This commit is contained in:
+1
-1
@@ -42,7 +42,7 @@ allprojects {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
compileOnly 'com.willfp:eco:6.35.1'
|
compileOnly 'com.willfp:eco:6.37.3'
|
||||||
implementation 'com.willfp:libreforge:3.72.1'
|
implementation 'com.willfp:libreforge:3.72.1'
|
||||||
implementation 'org.joml:joml:1.10.4'
|
implementation 'org.joml:joml:1.10.4'
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ package com.willfp.boosters
|
|||||||
import com.willfp.boosters.boosters.ActivatedBooster
|
import com.willfp.boosters.boosters.ActivatedBooster
|
||||||
import com.willfp.boosters.boosters.Booster
|
import com.willfp.boosters.boosters.Booster
|
||||||
import com.willfp.boosters.boosters.Boosters
|
import com.willfp.boosters.boosters.Boosters
|
||||||
import com.willfp.boosters.boosters.addActiveBooster
|
import com.willfp.boosters.boosters.activateBooster
|
||||||
import com.willfp.eco.core.data.ServerProfile
|
import com.willfp.eco.core.data.ServerProfile
|
||||||
import com.willfp.eco.core.data.profile
|
import com.willfp.eco.core.data.profile
|
||||||
import org.bukkit.Bukkit
|
import org.bukkit.Bukkit
|
||||||
@@ -59,17 +59,7 @@ fun Player.activateBooster(booster: Booster): Boolean {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
ServerProfile.load().write(
|
Bukkit.getServer().activateBooster(
|
||||||
booster.expiryTimeKey,
|
|
||||||
(booster.duration.toDouble() * 50) + System.currentTimeMillis()
|
|
||||||
)
|
|
||||||
|
|
||||||
ServerProfile.load().write(
|
|
||||||
booster.activeDataKey,
|
|
||||||
this.uniqueId.toString()
|
|
||||||
)
|
|
||||||
|
|
||||||
Bukkit.getServer().addActiveBooster(
|
|
||||||
ActivatedBooster(booster, this.uniqueId)
|
ActivatedBooster(booster, this.uniqueId)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package com.willfp.boosters
|
|||||||
import com.willfp.boosters.boosters.Boosters
|
import com.willfp.boosters.boosters.Boosters
|
||||||
import com.willfp.boosters.boosters.activeBoosters
|
import com.willfp.boosters.boosters.activeBoosters
|
||||||
import com.willfp.boosters.boosters.expireBooster
|
import com.willfp.boosters.boosters.expireBooster
|
||||||
|
import com.willfp.boosters.boosters.scanForBoosters
|
||||||
import com.willfp.boosters.commands.CommandBoosters
|
import com.willfp.boosters.commands.CommandBoosters
|
||||||
import com.willfp.boosters.config.BoostersYml
|
import com.willfp.boosters.config.BoostersYml
|
||||||
import com.willfp.eco.core.command.impl.PluginCommand
|
import com.willfp.eco.core.command.impl.PluginCommand
|
||||||
@@ -14,6 +15,7 @@ import com.willfp.eco.util.formatEco
|
|||||||
import com.willfp.eco.util.savedDisplayName
|
import com.willfp.eco.util.savedDisplayName
|
||||||
import com.willfp.libreforge.LibReforgePlugin
|
import com.willfp.libreforge.LibReforgePlugin
|
||||||
import org.bukkit.Bukkit
|
import org.bukkit.Bukkit
|
||||||
|
import org.bukkit.command.PluginCommand
|
||||||
import org.bukkit.event.Listener
|
import org.bukkit.event.Listener
|
||||||
import kotlin.math.floor
|
import kotlin.math.floor
|
||||||
|
|
||||||
@@ -47,6 +49,11 @@ class BoostersPlugin : LibReforgePlugin() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Just run it later enough
|
||||||
|
this.scheduler.runLater(3) {
|
||||||
|
Bukkit.getServer().scanForBoosters()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun loadListeners(): List<Listener> {
|
override fun loadListeners(): List<Listener> {
|
||||||
|
|||||||
+24
-2
@@ -7,10 +7,23 @@ import org.bukkit.Bukkit
|
|||||||
import org.bukkit.OfflinePlayer
|
import org.bukkit.OfflinePlayer
|
||||||
import org.bukkit.Server
|
import org.bukkit.Server
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
import kotlin.contracts.contract
|
||||||
|
|
||||||
private val boosters = mutableSetOf<ActivatedBooster>()
|
private val boosters = mutableSetOf<ActivatedBooster>()
|
||||||
|
|
||||||
fun Server.addActiveBooster(activatedBooster: ActivatedBooster) {
|
fun Server.activateBooster(activatedBooster: ActivatedBooster) {
|
||||||
|
val (booster, uuid) = activatedBooster
|
||||||
|
|
||||||
|
ServerProfile.load().write(
|
||||||
|
booster.expiryTimeKey,
|
||||||
|
(booster.duration.toDouble() * 50) + System.currentTimeMillis()
|
||||||
|
)
|
||||||
|
|
||||||
|
ServerProfile.load().write(
|
||||||
|
booster.activeDataKey,
|
||||||
|
uuid.toString()
|
||||||
|
)
|
||||||
|
|
||||||
boosters += activatedBooster
|
boosters += activatedBooster
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -26,9 +39,18 @@ fun Server.expireBooster(booster: Booster) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Server.scanForBoosters() {
|
||||||
|
for (booster in Boosters.values()) {
|
||||||
|
val active = booster.active ?: continue
|
||||||
|
if (!boosters.contains(active)) {
|
||||||
|
boosters += active
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
data class ActivatedBooster(
|
data class ActivatedBooster(
|
||||||
val booster: Booster,
|
val booster: Booster,
|
||||||
private val uuid: UUID
|
val uuid: UUID
|
||||||
) {
|
) {
|
||||||
val player: OfflinePlayer
|
val player: OfflinePlayer
|
||||||
get() = Bukkit.getOfflinePlayer(uuid)
|
get() = Bukkit.getOfflinePlayer(uuid)
|
||||||
|
|||||||
Reference in New Issue
Block a user