mirror of
https://github.com/Auxilor/EcoJobs.git
synced 2025-12-21 16:09:18 +00:00
Added PlayerJobJoinEvent and PlayerJobLeaveEvent
This commit is contained in:
@@ -0,0 +1,30 @@
|
|||||||
|
package com.willfp.ecojobs.api.event
|
||||||
|
|
||||||
|
import com.willfp.ecojobs.jobs.Job
|
||||||
|
import org.bukkit.entity.Player
|
||||||
|
import org.bukkit.event.Cancellable
|
||||||
|
import org.bukkit.event.HandlerList
|
||||||
|
import org.bukkit.event.player.PlayerEvent
|
||||||
|
|
||||||
|
class PlayerJobJoinEvent(
|
||||||
|
who: Player,
|
||||||
|
val job: Job,
|
||||||
|
val oldJob: Job?
|
||||||
|
) : PlayerEvent(who), Cancellable {
|
||||||
|
private var cancelled = false
|
||||||
|
|
||||||
|
override fun isCancelled() = this.cancelled
|
||||||
|
|
||||||
|
override fun setCancelled(cancelled: Boolean) {
|
||||||
|
this.cancelled = cancelled
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getHandlers(): HandlerList {
|
||||||
|
return handlerList
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
@JvmStatic
|
||||||
|
val handlerList = HandlerList()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package com.willfp.ecojobs.api.event
|
||||||
|
|
||||||
|
import com.willfp.ecojobs.jobs.Job
|
||||||
|
import org.bukkit.entity.Player
|
||||||
|
import org.bukkit.event.Cancellable
|
||||||
|
import org.bukkit.event.HandlerList
|
||||||
|
import org.bukkit.event.player.PlayerEvent
|
||||||
|
|
||||||
|
class PlayerJobLeaveEvent(
|
||||||
|
who: Player,
|
||||||
|
val job: Job
|
||||||
|
) : PlayerEvent(who), Cancellable {
|
||||||
|
private var cancelled = false
|
||||||
|
|
||||||
|
override fun isCancelled() = this.cancelled
|
||||||
|
|
||||||
|
override fun setCancelled(cancelled: Boolean) {
|
||||||
|
this.cancelled = cancelled
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getHandlers(): HandlerList {
|
||||||
|
return handlerList
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
@JvmStatic
|
||||||
|
val handlerList = HandlerList()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,6 +15,8 @@ import com.willfp.eco.util.formatEco
|
|||||||
import com.willfp.eco.util.toNiceString
|
import com.willfp.eco.util.toNiceString
|
||||||
import com.willfp.ecojobs.EcoJobsPlugin
|
import com.willfp.ecojobs.EcoJobsPlugin
|
||||||
import com.willfp.ecojobs.api.event.PlayerJobExpGainEvent
|
import com.willfp.ecojobs.api.event.PlayerJobExpGainEvent
|
||||||
|
import com.willfp.ecojobs.api.event.PlayerJobJoinEvent
|
||||||
|
import com.willfp.ecojobs.api.event.PlayerJobLeaveEvent
|
||||||
import com.willfp.ecojobs.api.event.PlayerJobLevelUpEvent
|
import com.willfp.ecojobs.api.event.PlayerJobLevelUpEvent
|
||||||
import com.willfp.libreforge.conditions.Conditions
|
import com.willfp.libreforge.conditions.Conditions
|
||||||
import com.willfp.libreforge.conditions.ConfiguredCondition
|
import com.willfp.libreforge.conditions.ConfiguredCondition
|
||||||
@@ -365,7 +367,33 @@ private val activeJobKey: PersistentDataKey<String> = PersistentDataKey(
|
|||||||
|
|
||||||
var OfflinePlayer.activeJob: Job?
|
var OfflinePlayer.activeJob: Job?
|
||||||
get() = Jobs.getByID(this.profile.read(activeJobKey))
|
get() = Jobs.getByID(this.profile.read(activeJobKey))
|
||||||
set(value) = this.profile.write(activeJobKey, value?.id ?: "")
|
set(job) {
|
||||||
|
val oldJob = this.activeJob
|
||||||
|
|
||||||
|
if (oldJob != job) {
|
||||||
|
// Have to check for oldJob too to have null safety
|
||||||
|
if (job == null && oldJob != null) {
|
||||||
|
val event = PlayerJobLeaveEvent(player, oldJob)
|
||||||
|
Bukkit.getPluginManager().callEvent(event)
|
||||||
|
|
||||||
|
if (event.isCancelled) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Not using else because null safety as well
|
||||||
|
if (job != null) {
|
||||||
|
val event = PlayerJobJoinEvent(player, job, oldJob)
|
||||||
|
Bukkit.getPluginManager().callEvent(event)
|
||||||
|
|
||||||
|
if (event.isCancelled) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.profile.write(activeJobKey, job?.id ?: "")
|
||||||
|
}
|
||||||
|
|
||||||
val OfflinePlayer.activeJobLevel: JobLevel?
|
val OfflinePlayer.activeJobLevel: JobLevel?
|
||||||
get() {
|
get() {
|
||||||
|
|||||||
Reference in New Issue
Block a user