mirror of
https://github.com/Auxilor/EcoJobs.git
synced 2025-12-19 23:19:16 +00:00
Compare commits
25 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ff84afdc7d | ||
|
|
0239447b61 | ||
|
|
8b0b2f861f | ||
|
|
d2fd661ba3 | ||
|
|
238962bb4f | ||
|
|
6b7df691de | ||
|
|
28b7279a88 | ||
|
|
36f6765942 | ||
|
|
b96d6c3388 | ||
|
|
7c06eb5c18 | ||
|
|
e33d3264d8 | ||
|
|
3780370caf | ||
|
|
e82eacf5b6 | ||
|
|
5a519aa263 | ||
|
|
4b9283c6de | ||
|
|
6316dddc0b | ||
|
|
4bab3ed8c2 | ||
|
|
3f6db2ba14 | ||
|
|
ba3e0bb852 | ||
|
|
7a45332837 | ||
|
|
ddf1ef35e2 | ||
|
|
273b8fe80a | ||
|
|
802681e3a5 | ||
|
|
f24e9d9ed9 | ||
|
|
682dc31b0c |
10
README.md
10
README.md
@@ -1,27 +1,27 @@
|
||||
<h1 align="center">
|
||||
<br>
|
||||
<img src="https://i.imgur.com/FHqL960.png" alt="EcoJobs logo" width="256">
|
||||
<img src="https://i.imgur.com/Qd617BL.png" alt="EcoJobs logo" width="256">
|
||||
<br>
|
||||
</h1>
|
||||
|
||||
<h4 align="center">Source code for EcoJobs, a premium spigot plugin.</h4>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://polymart.org/resource/ecojobs.1351">
|
||||
<a href="https://polymart.org/resource/ecojobs.2857">
|
||||
<img alt="spigot" src="https://img.shields.io/badge/polymart-EcoJobs-964B00?style=for-the-badge"/>
|
||||
</a>
|
||||
<a href="https://bstats.org/plugin/bukkit/EcoJobs" alt="bstats servers">
|
||||
<img src="https://img.shields.io/bstats/servers/15502?color=964B00&style=for-the-badge"/>
|
||||
<img src="https://img.shields.io/bstats/servers/16394?color=964B00&style=for-the-badge"/>
|
||||
</a>
|
||||
<a href="https://bstats.org/plugin/bukkit/EcoJobs" alt="bstats players">
|
||||
<img src="https://img.shields.io/bstats/players/15502?color=964B00&style=for-the-badge"/>
|
||||
<img src="https://img.shields.io/bstats/players/16394?color=964B00&style=for-the-badge"/>
|
||||
</a>
|
||||
<a href="https://discord.gg/ZcwpSsE/" alt="Discord">
|
||||
<img src="https://img.shields.io/discord/452518336627081236?label=discord&style=for-the-badge&color=964B00"/>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
[](https://discord.gg/ZcwpSsE/)
|
||||
[](https://discord.gg/ZcwpSsE/)
|
||||
|
||||
## License
|
||||
*Click here to read [the entire license](https://github.com/Auxilor/EcoJobs/blob/master/LICENSE.md).*
|
||||
|
||||
@@ -47,7 +47,7 @@ allprojects {
|
||||
|
||||
dependencies {
|
||||
compileOnly 'com.willfp:eco:6.37.1'
|
||||
implementation 'com.willfp:libreforge:3.96.0'
|
||||
implementation 'com.willfp:libreforge:3.102.1'
|
||||
implementation 'org.joml:joml:1.10.4'
|
||||
|
||||
compileOnly 'org.jetbrains:annotations:23.0.0'
|
||||
|
||||
@@ -7,6 +7,8 @@ import com.willfp.ecojobs.commands.CommandEcojobs
|
||||
import com.willfp.ecojobs.commands.CommandJobs
|
||||
import com.willfp.ecojobs.jobs.JobLevelListener
|
||||
import com.willfp.ecojobs.jobs.JobTriggerXPGainListener
|
||||
import com.willfp.ecojobs.jobs.PriceHandler
|
||||
import com.willfp.ecojobs.jobs.ResetOnQuitListener
|
||||
import com.willfp.ecojobs.jobs.activeJob
|
||||
import com.willfp.ecojobs.jobs.activeJobLevel
|
||||
import com.willfp.libreforge.LibReforgePlugin
|
||||
@@ -42,7 +44,9 @@ class EcoJobsPlugin : LibReforgePlugin() {
|
||||
override fun loadListeners(): List<Listener> {
|
||||
return listOf(
|
||||
JobLevelListener(this),
|
||||
JobTriggerXPGainListener
|
||||
JobTriggerXPGainListener,
|
||||
ResetOnQuitListener,
|
||||
PriceHandler
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.willfp.ecojobs.api.event
|
||||
|
||||
import com.willfp.ecojobs.jobs.Job
|
||||
import org.bukkit.OfflinePlayer
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.event.Cancellable
|
||||
import org.bukkit.event.Event
|
||||
import org.bukkit.event.HandlerList
|
||||
import org.bukkit.event.player.PlayerEvent
|
||||
|
||||
class PlayerJobJoinEvent(
|
||||
val player: OfflinePlayer,
|
||||
val job: Job,
|
||||
val oldJob: Job?
|
||||
) : Event(), 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.OfflinePlayer
|
||||
import org.bukkit.event.Cancellable
|
||||
import org.bukkit.event.Event
|
||||
import org.bukkit.event.HandlerList
|
||||
|
||||
class PlayerJobLeaveEvent(
|
||||
val player: OfflinePlayer,
|
||||
val job: Job
|
||||
) : Event(), 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()
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import com.willfp.eco.util.StringUtils
|
||||
import com.willfp.eco.util.savedDisplayName
|
||||
import com.willfp.eco.util.toNiceString
|
||||
import com.willfp.ecojobs.jobs.Jobs
|
||||
import com.willfp.ecojobs.jobs.giveExactJobExperience
|
||||
import com.willfp.ecojobs.jobs.giveJobExperience
|
||||
import com.willfp.ecojobs.jobs.hasJob
|
||||
import org.bukkit.Bukkit
|
||||
@@ -56,7 +57,7 @@ class CommandGiveXP(plugin: EcoPlugin) : Subcommand(plugin, "givexp", "ecojobs.c
|
||||
return
|
||||
}
|
||||
|
||||
player.giveJobExperience(
|
||||
player.giveExactJobExperience(
|
||||
job,
|
||||
amount
|
||||
)
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.willfp.eco.util.savedDisplayName
|
||||
import com.willfp.ecojobs.jobs.Jobs
|
||||
import com.willfp.ecojobs.jobs.activeJob
|
||||
import com.willfp.ecojobs.jobs.hasJob
|
||||
import com.willfp.ecojobs.jobs.resetJob
|
||||
import com.willfp.ecojobs.jobs.setJobLevel
|
||||
import com.willfp.ecojobs.jobs.setJobXP
|
||||
import org.bukkit.Bukkit
|
||||
@@ -48,8 +49,7 @@ class CommandReset(plugin: EcoPlugin) : Subcommand(plugin, "reset", "ecojobs.com
|
||||
if (player.activeJob == job) {
|
||||
player.activeJob = null
|
||||
}
|
||||
player.setJobXP(job, 0.0)
|
||||
player.setJobLevel(job, 1)
|
||||
player.resetJob(job)
|
||||
|
||||
sender.sendMessage(
|
||||
plugin.langYml.getMessage("reset-xp", StringUtils.FormatOption.WITHOUT_PLACEHOLDERS)
|
||||
|
||||
@@ -15,6 +15,8 @@ import com.willfp.eco.util.formatEco
|
||||
import com.willfp.eco.util.toNiceString
|
||||
import com.willfp.ecojobs.EcoJobsPlugin
|
||||
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.libreforge.conditions.Conditions
|
||||
import com.willfp.libreforge.conditions.ConfiguredCondition
|
||||
@@ -38,6 +40,9 @@ class Job(
|
||||
val name = config.getFormattedString("name")
|
||||
val description = config.getFormattedString("description")
|
||||
val isUnlockedByDefault = config.getBool("unlocked-by-default")
|
||||
val resetsOnQuit = config.getBool("reset-on-quit")
|
||||
val joinPrice = config.getDouble("join-price")
|
||||
val leavePrice = config.getDouble("leave-price")
|
||||
|
||||
val levelKey: PersistentDataKey<Int> = PersistentDataKey(
|
||||
EcoJobsPlugin.instance.namespacedKeyFactory.create("${id}_level"),
|
||||
@@ -251,6 +256,8 @@ class Job(
|
||||
.replace("%description%", this.description)
|
||||
.replace("%job%", this.name)
|
||||
.replace("%level%", (forceLevel ?: player.getJobLevel(this)).toString())
|
||||
.replace("%join_price%", NumberUtils.format(this.joinPrice))
|
||||
.replace("%leave_price%", NumberUtils.format(this.leavePrice))
|
||||
}
|
||||
.toMutableList()
|
||||
|
||||
@@ -365,7 +372,33 @@ private val activeJobKey: PersistentDataKey<String> = PersistentDataKey(
|
||||
|
||||
var OfflinePlayer.activeJob: Job?
|
||||
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(this, oldJob)
|
||||
Bukkit.getPluginManager().callEvent(event)
|
||||
|
||||
if (event.isCancelled) {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// Not using else because null safety as well
|
||||
if (job != null) {
|
||||
val event = PlayerJobJoinEvent(this, job, oldJob)
|
||||
Bukkit.getPluginManager().callEvent(event)
|
||||
|
||||
if (event.isCancelled) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.profile.write(activeJobKey, job?.id ?: "")
|
||||
}
|
||||
|
||||
val OfflinePlayer.activeJobLevel: JobLevel?
|
||||
get() {
|
||||
@@ -379,6 +412,11 @@ fun OfflinePlayer.getJobLevel(job: Job): Int =
|
||||
fun OfflinePlayer.setJobLevel(job: Job, level: Int) =
|
||||
this.profile.write(job.levelKey, level)
|
||||
|
||||
fun OfflinePlayer.resetJob(job: Job) {
|
||||
this.setJobLevel(job, 1)
|
||||
this.setJobXP(job, 0.0)
|
||||
}
|
||||
|
||||
fun OfflinePlayer.getJobProgress(job: Job): Double {
|
||||
val currentXP = this.getJobXP(job)
|
||||
val requiredXP = job.getExpForLevel(this.getJobLevel(job) + 1)
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.willfp.ecojobs.jobs
|
||||
|
||||
import com.willfp.eco.core.integrations.economy.balance
|
||||
import com.willfp.ecojobs.api.event.PlayerJobJoinEvent
|
||||
import com.willfp.ecojobs.api.event.PlayerJobLeaveEvent
|
||||
import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.EventPriority
|
||||
import org.bukkit.event.Listener
|
||||
|
||||
object PriceHandler : Listener {
|
||||
@EventHandler(
|
||||
priority = EventPriority.LOW,
|
||||
ignoreCancelled = true
|
||||
)
|
||||
fun onJoin(event: PlayerJobJoinEvent) {
|
||||
val player = event.player
|
||||
val job = event.job
|
||||
val price = job.joinPrice
|
||||
|
||||
if (price > 0) {
|
||||
val hasMoney = player.balance >= price
|
||||
|
||||
if (!hasMoney) {
|
||||
event.isCancelled = true
|
||||
}
|
||||
|
||||
player.balance -= price
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(
|
||||
priority = EventPriority.LOW,
|
||||
ignoreCancelled = true
|
||||
)
|
||||
fun onLeave(event: PlayerJobLeaveEvent) {
|
||||
val player = event.player
|
||||
val job = event.job
|
||||
val price = job.leavePrice
|
||||
|
||||
if (price > 0) {
|
||||
val hasMoney = player.balance >= price
|
||||
|
||||
if (!hasMoney) {
|
||||
event.isCancelled = true
|
||||
}
|
||||
|
||||
player.balance -= price
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.willfp.ecojobs.jobs
|
||||
|
||||
import com.willfp.ecojobs.api.event.PlayerJobLeaveEvent
|
||||
import org.bukkit.event.EventHandler
|
||||
import org.bukkit.event.Listener
|
||||
|
||||
object ResetOnQuitListener : Listener {
|
||||
@EventHandler(
|
||||
ignoreCancelled = true
|
||||
)
|
||||
fun onQuit(event: PlayerJobLeaveEvent) {
|
||||
val player = event.player
|
||||
val job = event.job
|
||||
|
||||
if (job.resetsOnQuit) {
|
||||
player.resetJob(job)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -48,12 +48,14 @@ gui:
|
||||
- ""
|
||||
item: player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmFkYzA0OGE3Y2U3OGY3ZGFkNzJhMDdkYTI3ZDg1YzA5MTY4ODFlNTUyMmVlZWQxZTNkYWYyMTdhMzhjMWEifX19
|
||||
|
||||
# %join_price% and %leave_price% are also available as placeholders
|
||||
|
||||
active:
|
||||
name: "%job% &fLvl. &a%level%"
|
||||
lore:
|
||||
- "%description%"
|
||||
- "&f"
|
||||
- "&fEffects:"
|
||||
- "&fJob Rewards:"
|
||||
- "%effects%"
|
||||
- ""
|
||||
- "&fProgress:"
|
||||
@@ -67,7 +69,7 @@ gui:
|
||||
lore:
|
||||
- "%description%"
|
||||
- "&f"
|
||||
- "&fEffects:"
|
||||
- "&fJob Rewards:"
|
||||
- "%effects%"
|
||||
- ""
|
||||
- "&fProgress:"
|
||||
@@ -252,7 +254,6 @@ point-names: # If you have point names that look ugly (eg g_souls) then you can
|
||||
|
||||
use-faster-move-trigger: true # Disable if you want move trigger to detect sub-1-block movements
|
||||
raytrace-distance: 80 # The distance that alt_click should check for a location
|
||||
block-item-drop-place-check: true # If the block_item_drop trigger should only fire on naturally placed blocks (prevents dupes)
|
||||
|
||||
potions:
|
||||
icon:
|
||||
@@ -263,4 +264,6 @@ potions:
|
||||
triggered: true
|
||||
particles:
|
||||
permanent: false
|
||||
triggered: true
|
||||
triggered: true
|
||||
|
||||
share-configs: true # If your configs are allowed to be used to gather data and improve the plugin. Nothing identifying (IP, Name, etc) is shared.
|
||||
@@ -1,3 +1,3 @@
|
||||
resource-id: 0
|
||||
resource-id: 2857
|
||||
bstats-id: 16394
|
||||
color: "τB00"
|
||||
@@ -13,6 +13,13 @@ description: "&8&oLevel up by mining blocks"
|
||||
# If the job should be unlocked by default
|
||||
unlocked-by-default: true
|
||||
|
||||
# If job progress should be reset when quitting
|
||||
reset-on-quit: false
|
||||
|
||||
# The price to join or leave this job (set to 0 to disable)
|
||||
join-price: 0
|
||||
leave-price: 0
|
||||
|
||||
# The xp requirements for each job level - add new levels by adding more to this list
|
||||
level-xp-requirements:
|
||||
- 100
|
||||
|
||||
@@ -3,6 +3,11 @@ description: "&8&oLevel up by placing blocks"
|
||||
|
||||
unlocked-by-default: true
|
||||
|
||||
reset-on-quit: false
|
||||
|
||||
join-price: 0
|
||||
leave-price: 0
|
||||
|
||||
level-xp-requirements:
|
||||
- 100
|
||||
- 120
|
||||
@@ -97,4 +102,4 @@ effects:
|
||||
|
||||
conditions: [ ]
|
||||
|
||||
icon: player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmM4ZWJhZDcyYjc3ZGYzOTkwZTA3YmM4NjlhOTlhOGY4OTYyZDNjMTljNzZlMzlkOTk1NTNjYWU0MTMxY2M4In19fQ==
|
||||
icon: player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTBiYmVmMGE0YmNmMDNlMDQ5ZDU1NmRhMGJlZDZiNDFkZDkyOGI4OTdhNDJhZTAxZWZlYTY4NGI1NjFjNDMyZiJ9fX0=
|
||||
|
||||
124
eco-core/core-plugin/src/main/resources/jobs/farmer.yml
Normal file
124
eco-core/core-plugin/src/main/resources/jobs/farmer.yml
Normal file
@@ -0,0 +1,124 @@
|
||||
name: "&eFarmer"
|
||||
description: "&8&oLevel up by farming crops"
|
||||
|
||||
unlocked-by-default: true
|
||||
|
||||
reset-on-quit: false
|
||||
|
||||
join-price: 0
|
||||
leave-price: 0
|
||||
|
||||
level-xp-requirements:
|
||||
- 100
|
||||
- 120
|
||||
- 150
|
||||
- 180
|
||||
- 210
|
||||
- 250
|
||||
- 300
|
||||
- 360
|
||||
- 430
|
||||
- 520
|
||||
- 620
|
||||
- 740
|
||||
- 890
|
||||
- 1000
|
||||
- 1300
|
||||
- 1500
|
||||
- 1900
|
||||
- 2200
|
||||
- 2700
|
||||
- 3200
|
||||
- 3800
|
||||
- 4600
|
||||
- 5500
|
||||
- 6600
|
||||
- 7900
|
||||
- 9500
|
||||
- 11500
|
||||
- 14000
|
||||
- 17000
|
||||
- 19000
|
||||
- 24000
|
||||
- 29000
|
||||
- 34000
|
||||
- 41000
|
||||
- 50000
|
||||
- 60000
|
||||
- 70000
|
||||
- 85000
|
||||
- 100000
|
||||
- 120000
|
||||
- 150000
|
||||
- 180000
|
||||
- 210000
|
||||
- 250000
|
||||
- 300000
|
||||
- 360000
|
||||
- 440000
|
||||
- 580000
|
||||
- 750000
|
||||
|
||||
xp-gain-methods:
|
||||
- trigger: mine_block
|
||||
multiplier: 0.5
|
||||
conditions: [ ]
|
||||
filters:
|
||||
blocks:
|
||||
- "wheat"
|
||||
- "potatoes"
|
||||
- "beetroots"
|
||||
- "carrots"
|
||||
- "melon"
|
||||
- "pumpkin"
|
||||
- "cactus"
|
||||
- "sugar_cane"
|
||||
- "cocoa"
|
||||
- "nether_wart"
|
||||
- "bamboo"
|
||||
- "sweet_berries"
|
||||
- "glow_berries"
|
||||
|
||||
level-placeholders:
|
||||
- id: "money"
|
||||
value: "%level% * 0.25"
|
||||
|
||||
effects-description:
|
||||
1:
|
||||
- "&8» &8Earn &a$%money%&8 for each crop you farm"
|
||||
|
||||
rewards-description:
|
||||
1:
|
||||
- "&8» &8Earn &a$%money%&8 for each crop you farm"
|
||||
|
||||
level-up-messages:
|
||||
1:
|
||||
- "&8» &8Earn &a$%money%&8 for each crop you farm"
|
||||
|
||||
level-commands: [ ]
|
||||
|
||||
effects:
|
||||
- id: give_money
|
||||
args:
|
||||
amount: "%level% * 0.25"
|
||||
filters:
|
||||
blocks:
|
||||
- "wheat"
|
||||
- "potatoes"
|
||||
- "beetroots"
|
||||
- "carrots"
|
||||
- "melon"
|
||||
- "pumpkin"
|
||||
- "cactus"
|
||||
- "sugar_cane"
|
||||
- "cocoa"
|
||||
- "nether_wart"
|
||||
- "bamboo"
|
||||
- "sweet_berries"
|
||||
- "glow_berries"
|
||||
triggers:
|
||||
- mine_block
|
||||
|
||||
conditions: [ ]
|
||||
|
||||
icon: player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODMzNmUzMTVlMWFlOTk1NzJkYzljNzJhNjJhMTRiODU3Nzc0MWRjMzQ3MmM3NDEzZDdlYWE2NjdhMzA3YTNkNyJ9fX0=
|
||||
@@ -3,6 +3,11 @@ description: "&8&oLevel up by mining blocks"
|
||||
|
||||
unlocked-by-default: true
|
||||
|
||||
reset-on-quit: false
|
||||
|
||||
join-price: 0
|
||||
leave-price: 0
|
||||
|
||||
level-xp-requirements:
|
||||
- 100
|
||||
- 120
|
||||
|
||||
97
eco-core/core-plugin/src/main/resources/jobs/slayer.yml
Normal file
97
eco-core/core-plugin/src/main/resources/jobs/slayer.yml
Normal file
@@ -0,0 +1,97 @@
|
||||
name: "a0303Slayer"
|
||||
description: "&8&oLevel up by killing mobs"
|
||||
|
||||
unlocked-by-default: true
|
||||
|
||||
reset-on-quit: false
|
||||
|
||||
join-price: 0
|
||||
leave-price: 0
|
||||
|
||||
level-xp-requirements:
|
||||
- 100
|
||||
- 120
|
||||
- 150
|
||||
- 180
|
||||
- 210
|
||||
- 250
|
||||
- 300
|
||||
- 360
|
||||
- 430
|
||||
- 520
|
||||
- 620
|
||||
- 740
|
||||
- 890
|
||||
- 1000
|
||||
- 1300
|
||||
- 1500
|
||||
- 1900
|
||||
- 2200
|
||||
- 2700
|
||||
- 3200
|
||||
- 3800
|
||||
- 4600
|
||||
- 5500
|
||||
- 6600
|
||||
- 7900
|
||||
- 9500
|
||||
- 11500
|
||||
- 14000
|
||||
- 17000
|
||||
- 19000
|
||||
- 24000
|
||||
- 29000
|
||||
- 34000
|
||||
- 41000
|
||||
- 50000
|
||||
- 60000
|
||||
- 70000
|
||||
- 85000
|
||||
- 100000
|
||||
- 120000
|
||||
- 150000
|
||||
- 180000
|
||||
- 210000
|
||||
- 250000
|
||||
- 300000
|
||||
- 360000
|
||||
- 440000
|
||||
- 580000
|
||||
- 750000
|
||||
|
||||
xp-gain-methods:
|
||||
- trigger: kill
|
||||
multiplier: 0.05
|
||||
conditions: [ ]
|
||||
|
||||
level-placeholders:
|
||||
- id: "money"
|
||||
value: "%level% / 10"
|
||||
|
||||
effects-description:
|
||||
1:
|
||||
- "&8» &8Earn &a$%money%&8 per heart of health that"
|
||||
- " &8mobs you kill have"
|
||||
|
||||
rewards-description:
|
||||
1:
|
||||
- "&8» &8Earn &a$%money%&8 per heart of health that"
|
||||
- " &8mobs you kill have"
|
||||
|
||||
level-up-messages:
|
||||
1:
|
||||
- "&8» &8Earn &a$%money%&8 per heart of health that"
|
||||
- " &8mobs you kill have"
|
||||
|
||||
level-commands: [ ]
|
||||
|
||||
effects:
|
||||
- id: give_money
|
||||
args:
|
||||
amount: "%v% * %level% * 0.1"
|
||||
triggers:
|
||||
- kill
|
||||
|
||||
conditions: [ ]
|
||||
|
||||
icon: player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZDY5MTllMGFjYzFiMjkzYThkNWY5NzI4NjkzMzZhN2VmZWRiMGJhNmY0YzdlMTkzODhkOGZiODEyNjBmMzIzYyJ9fX0=
|
||||
@@ -1,4 +1,4 @@
|
||||
#libreforge-updater
|
||||
#Sat Sep 10 12:58:46 BST 2022
|
||||
version=1.0.0
|
||||
#Tue Sep 20 10:39:39 BST 2022
|
||||
version=1.6.1
|
||||
plugin-name=EcoJobs
|
||||
|
||||
Reference in New Issue
Block a user