mirror of
https://github.com/Auxilor/EcoJobs.git
synced 2025-12-22 16:39:34 +00:00
Moved integration
This commit is contained in:
@@ -14,10 +14,23 @@ import com.willfp.ecojobs.jobs.JobLevelListener
|
|||||||
import com.willfp.ecojobs.jobs.Jobs
|
import com.willfp.ecojobs.jobs.Jobs
|
||||||
import com.willfp.ecojobs.jobs.PriceHandler
|
import com.willfp.ecojobs.jobs.PriceHandler
|
||||||
import com.willfp.ecojobs.jobs.ResetOnQuitListener
|
import com.willfp.ecojobs.jobs.ResetOnQuitListener
|
||||||
|
import com.willfp.ecojobs.libreforge.ConditionHasActiveJob
|
||||||
|
import com.willfp.ecojobs.libreforge.ConditionHasJobLevel
|
||||||
|
import com.willfp.ecojobs.libreforge.EffectGiveJobXp
|
||||||
|
import com.willfp.ecojobs.libreforge.EffectJobXpMultiplier
|
||||||
|
import com.willfp.ecojobs.libreforge.FilterJob
|
||||||
|
import com.willfp.ecojobs.libreforge.TriggerGainJobXp
|
||||||
|
import com.willfp.ecojobs.libreforge.TriggerJoinJob
|
||||||
|
import com.willfp.ecojobs.libreforge.TriggerLeaveJob
|
||||||
|
import com.willfp.ecojobs.libreforge.TriggerLevelUpJob
|
||||||
import com.willfp.libreforge.SimpleProvidedHolder
|
import com.willfp.libreforge.SimpleProvidedHolder
|
||||||
|
import com.willfp.libreforge.conditions.Conditions
|
||||||
|
import com.willfp.libreforge.effects.Effects
|
||||||
|
import com.willfp.libreforge.filters.Filters
|
||||||
import com.willfp.libreforge.loader.LibreforgePlugin
|
import com.willfp.libreforge.loader.LibreforgePlugin
|
||||||
import com.willfp.libreforge.loader.configs.ConfigCategory
|
import com.willfp.libreforge.loader.configs.ConfigCategory
|
||||||
import com.willfp.libreforge.registerHolderProvider
|
import com.willfp.libreforge.registerHolderProvider
|
||||||
|
import com.willfp.libreforge.triggers.Triggers
|
||||||
import org.bukkit.event.Listener
|
import org.bukkit.event.Listener
|
||||||
import java.util.regex.Pattern
|
import java.util.regex.Pattern
|
||||||
|
|
||||||
@@ -33,6 +46,16 @@ class EcoJobsPlugin : LibreforgePlugin() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun handleEnable() {
|
override fun handleEnable() {
|
||||||
|
Conditions.register(ConditionHasJobLevel)
|
||||||
|
Conditions.register(ConditionHasActiveJob)
|
||||||
|
Effects.register(EffectJobXpMultiplier)
|
||||||
|
Effects.register(EffectGiveJobXp)
|
||||||
|
Triggers.register(TriggerGainJobXp)
|
||||||
|
Triggers.register(TriggerLevelUpJob)
|
||||||
|
Triggers.register(TriggerJoinJob)
|
||||||
|
Triggers.register(TriggerLeaveJob)
|
||||||
|
Filters.register(FilterJob)
|
||||||
|
|
||||||
registerHolderProvider { player ->
|
registerHolderProvider { player ->
|
||||||
player.activeJobs.map { it.getLevel(player.getJobLevel(it)) }.map {
|
player.activeJobs.map { it.getLevel(player.getJobLevel(it)) }.map {
|
||||||
SimpleProvidedHolder(it)
|
SimpleProvidedHolder(it)
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
package com.willfp.ecojobs.libreforge
|
||||||
|
|
||||||
|
import com.willfp.eco.core.config.interfaces.Config
|
||||||
|
import com.willfp.ecojobs.api.activeJobs
|
||||||
|
import com.willfp.libreforge.NoCompileData
|
||||||
|
import com.willfp.libreforge.arguments
|
||||||
|
import com.willfp.libreforge.conditions.Condition
|
||||||
|
import org.bukkit.entity.Player
|
||||||
|
|
||||||
|
object ConditionHasActiveJob : Condition<NoCompileData>("has_active_job") {
|
||||||
|
override val arguments = arguments {
|
||||||
|
require("job", "You must specify the job!")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun isMet(player: Player, config: Config, compileData: NoCompileData): Boolean {
|
||||||
|
return player.activeJobs.any { it.id == config.getString("job").lowercase() }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package com.willfp.ecojobs.libreforge
|
||||||
|
|
||||||
|
import com.willfp.eco.core.config.interfaces.Config
|
||||||
|
import com.willfp.ecojobs.api.event.PlayerJobLevelUpEvent
|
||||||
|
import com.willfp.ecojobs.api.getJobLevel
|
||||||
|
import com.willfp.ecojobs.jobs.Jobs
|
||||||
|
import com.willfp.libreforge.NoCompileData
|
||||||
|
import com.willfp.libreforge.arguments
|
||||||
|
import com.willfp.libreforge.conditions.Condition
|
||||||
|
import com.willfp.libreforge.updateEffects
|
||||||
|
import org.bukkit.entity.Player
|
||||||
|
import org.bukkit.event.EventHandler
|
||||||
|
import org.bukkit.event.EventPriority
|
||||||
|
|
||||||
|
object ConditionHasJobLevel : Condition<NoCompileData>("has_job_level") {
|
||||||
|
override val arguments = arguments {
|
||||||
|
require("job", "You must specify the job!")
|
||||||
|
require("level", "You must specify the level!")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun isMet(player: Player, config: Config, compileData: NoCompileData): Boolean {
|
||||||
|
return player.getJobLevel(
|
||||||
|
Jobs.getByID(config.getString("job").lowercase()) ?: return false
|
||||||
|
) >= config.getIntFromExpression("level", player)
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
|
||||||
|
fun handle(event: PlayerJobLevelUpEvent) {
|
||||||
|
event.player.updateEffects()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package com.willfp.ecojobs.libreforge
|
||||||
|
|
||||||
|
import com.willfp.eco.core.config.interfaces.Config
|
||||||
|
import com.willfp.ecojobs.api.giveJobExperience
|
||||||
|
import com.willfp.ecojobs.jobs.Jobs
|
||||||
|
import com.willfp.libreforge.NoCompileData
|
||||||
|
import com.willfp.libreforge.arguments
|
||||||
|
import com.willfp.libreforge.effects.Effect
|
||||||
|
import com.willfp.libreforge.triggers.TriggerData
|
||||||
|
import com.willfp.libreforge.triggers.TriggerParameter
|
||||||
|
|
||||||
|
object EffectGiveJobXp : Effect<NoCompileData>("give_job_xp") {
|
||||||
|
override val parameters = setOf(
|
||||||
|
TriggerParameter.PLAYER
|
||||||
|
)
|
||||||
|
|
||||||
|
override val arguments = arguments {
|
||||||
|
require("amount", "You must specify the amount of xp to give!")
|
||||||
|
require("job", "You must specify the job to give xp for!")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onTrigger(config: Config, data: TriggerData, compileData: NoCompileData): Boolean {
|
||||||
|
val player = data.player ?: return false
|
||||||
|
|
||||||
|
player.giveJobExperience(
|
||||||
|
Jobs.getByID(config.getString("job")) ?: return false,
|
||||||
|
config.getDoubleFromExpression("amount", player)
|
||||||
|
)
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
package com.willfp.ecojobs.libreforge
|
||||||
|
|
||||||
|
import com.willfp.ecojobs.api.event.PlayerJobExpGainEvent
|
||||||
|
import com.willfp.ecojobs.jobs.Job
|
||||||
|
import com.willfp.ecojobs.jobs.Jobs
|
||||||
|
import com.willfp.libreforge.effects.templates.MultiMultiplierEffect
|
||||||
|
import org.bukkit.event.EventHandler
|
||||||
|
|
||||||
|
object EffectJobXpMultiplier : MultiMultiplierEffect<Job>("job_xp_multiplier") {
|
||||||
|
override val key = "jobs"
|
||||||
|
|
||||||
|
override fun getElement(key: String): Job? {
|
||||||
|
return Jobs.getByID(key)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getAllElements(): Collection<Job> {
|
||||||
|
return Jobs.values()
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler(ignoreCancelled = true)
|
||||||
|
fun handle(event: PlayerJobExpGainEvent) {
|
||||||
|
event.amount *= getMultiplier(event.player, event.job)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.willfp.ecojobs.libreforge
|
||||||
|
|
||||||
|
import com.willfp.eco.core.config.interfaces.Config
|
||||||
|
import com.willfp.ecojobs.api.event.JobEvent
|
||||||
|
import com.willfp.libreforge.NoCompileData
|
||||||
|
import com.willfp.libreforge.filters.Filter
|
||||||
|
import com.willfp.libreforge.triggers.TriggerData
|
||||||
|
|
||||||
|
object FilterJob : Filter<NoCompileData, Collection<String>>("job") {
|
||||||
|
override fun getValue(config: Config, data: TriggerData?, key: String): Collection<String> {
|
||||||
|
return config.getStrings(key)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun isMet(data: TriggerData, value: Collection<String>, compileData: NoCompileData): Boolean {
|
||||||
|
val event = data.event as? JobEvent ?: return true
|
||||||
|
|
||||||
|
return value.any { jobName ->
|
||||||
|
jobName.equals(event.job.id, ignoreCase = true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package com.willfp.ecojobs.libreforge
|
||||||
|
|
||||||
|
import com.willfp.ecojobs.api.event.PlayerJobExpGainEvent
|
||||||
|
import com.willfp.libreforge.triggers.Trigger
|
||||||
|
import com.willfp.libreforge.triggers.TriggerData
|
||||||
|
import com.willfp.libreforge.triggers.TriggerParameter
|
||||||
|
import org.bukkit.event.EventHandler
|
||||||
|
|
||||||
|
object TriggerGainJobXp : Trigger("gain_job_xp") {
|
||||||
|
override val parameters = setOf(
|
||||||
|
TriggerParameter.PLAYER,
|
||||||
|
TriggerParameter.LOCATION,
|
||||||
|
TriggerParameter.EVENT
|
||||||
|
)
|
||||||
|
|
||||||
|
@EventHandler(ignoreCancelled = true)
|
||||||
|
fun handle(event: PlayerJobExpGainEvent) {
|
||||||
|
val player = event.player
|
||||||
|
|
||||||
|
this.dispatch(
|
||||||
|
player,
|
||||||
|
TriggerData(
|
||||||
|
player = player,
|
||||||
|
location = player.location,
|
||||||
|
event = event,
|
||||||
|
value = event.amount
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package com.willfp.ecojobs.libreforge
|
||||||
|
|
||||||
|
import com.willfp.ecojobs.api.event.PlayerJobJoinEvent
|
||||||
|
import com.willfp.ecojobs.api.getJobLevel
|
||||||
|
import com.willfp.libreforge.triggers.Trigger
|
||||||
|
import com.willfp.libreforge.triggers.TriggerData
|
||||||
|
import com.willfp.libreforge.triggers.TriggerParameter
|
||||||
|
import org.bukkit.entity.Player
|
||||||
|
import org.bukkit.event.EventHandler
|
||||||
|
|
||||||
|
object TriggerJoinJob : Trigger("join_job") {
|
||||||
|
override val parameters = setOf(
|
||||||
|
TriggerParameter.PLAYER,
|
||||||
|
TriggerParameter.LOCATION,
|
||||||
|
TriggerParameter.EVENT
|
||||||
|
)
|
||||||
|
|
||||||
|
@EventHandler(ignoreCancelled = true)
|
||||||
|
fun handle(event: PlayerJobJoinEvent) {
|
||||||
|
val player = event.player as? Player ?: return
|
||||||
|
|
||||||
|
this.dispatch(
|
||||||
|
player,
|
||||||
|
TriggerData(
|
||||||
|
player = player,
|
||||||
|
location = player.location,
|
||||||
|
event = event,
|
||||||
|
value = player.getJobLevel(event.job).toDouble()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package com.willfp.ecojobs.libreforge
|
||||||
|
|
||||||
|
import com.willfp.ecojobs.api.event.PlayerJobLeaveEvent
|
||||||
|
import com.willfp.ecojobs.api.getJobLevel
|
||||||
|
import com.willfp.libreforge.triggers.Trigger
|
||||||
|
import com.willfp.libreforge.triggers.TriggerData
|
||||||
|
import com.willfp.libreforge.triggers.TriggerParameter
|
||||||
|
import org.bukkit.entity.Player
|
||||||
|
import org.bukkit.event.EventHandler
|
||||||
|
|
||||||
|
object TriggerLeaveJob : Trigger("leave_job") {
|
||||||
|
override val parameters = setOf(
|
||||||
|
TriggerParameter.PLAYER,
|
||||||
|
TriggerParameter.LOCATION,
|
||||||
|
)
|
||||||
|
|
||||||
|
@EventHandler(ignoreCancelled = true)
|
||||||
|
fun handle(event: PlayerJobLeaveEvent) {
|
||||||
|
val player = event.player as? Player ?: return
|
||||||
|
|
||||||
|
this.dispatch(
|
||||||
|
player,
|
||||||
|
TriggerData(
|
||||||
|
player = player,
|
||||||
|
location = player.location,
|
||||||
|
value = player.getJobLevel(event.job).toDouble()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package com.willfp.ecojobs.libreforge
|
||||||
|
|
||||||
|
import com.willfp.ecojobs.api.event.PlayerJobLevelUpEvent
|
||||||
|
import com.willfp.libreforge.triggers.Trigger
|
||||||
|
import com.willfp.libreforge.triggers.TriggerData
|
||||||
|
import com.willfp.libreforge.triggers.TriggerParameter
|
||||||
|
import org.bukkit.event.EventHandler
|
||||||
|
|
||||||
|
object TriggerLevelUpJob : Trigger("level_up_job") {
|
||||||
|
override val parameters = setOf(
|
||||||
|
TriggerParameter.PLAYER,
|
||||||
|
TriggerParameter.LOCATION,
|
||||||
|
TriggerParameter.EVENT
|
||||||
|
)
|
||||||
|
|
||||||
|
@EventHandler(ignoreCancelled = true)
|
||||||
|
fun handle(event: PlayerJobLevelUpEvent) {
|
||||||
|
val player = event.player
|
||||||
|
|
||||||
|
this.dispatch(
|
||||||
|
player,
|
||||||
|
TriggerData(
|
||||||
|
player = player,
|
||||||
|
location = player.location,
|
||||||
|
event = event,
|
||||||
|
value = event.level.toDouble()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#libreforge-updater
|
#libreforge-updater
|
||||||
#Tue Mar 28 16:06:44 BST 2023
|
#Tue Mar 28 18:28:20 BST 2023
|
||||||
kotlin.code.style=official
|
kotlin.code.style=official
|
||||||
libreforge-version=4.0.0
|
libreforge-version=4.0.0
|
||||||
version=3.0.0
|
version=3.0.0
|
||||||
|
|||||||
Reference in New Issue
Block a user