diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml
deleted file mode 100644
index 1e777ee..0000000
--- a/config/checkstyle/checkstyle.xml
+++ /dev/null
@@ -1,184 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/config/checkstyle/suppression.xml b/config/checkstyle/suppression.xml
deleted file mode 100644
index 71c5aa7..0000000
--- a/config/checkstyle/suppression.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/EcoJobsPlugin.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/EcoJobsPlugin.kt
index 024227a..94b33eb 100644
--- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/EcoJobsPlugin.kt
+++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/EcoJobsPlugin.kt
@@ -7,10 +7,12 @@ 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.Jobs
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.ecojobs.jobs.getJobLevel
import com.willfp.libreforge.LibReforgePlugin
import org.bukkit.event.Listener
@@ -31,12 +33,23 @@ class EcoJobsPlugin : LibReforgePlugin() {
PlayerPlaceholder(
this,
"job_level"
- ) { it.activeJobLevel?.level.toString() }.register()
+ ) { it.activeJobLevel?.level?.toString() ?: "" }.register()
PlayerPlaceholder(
this,
"job_id"
) { it.activeJob?.id ?: "" }.register()
+
+ PlayerPlaceholder(
+ this,
+ "total_job_level"
+ ) {
+ var level = 0
+ for (job in Jobs.values()) {
+ level += it.getJobLevel(job)
+ }
+ level.toString()
+ }.register()
}
override fun loadPluginCommands(): List {
diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/api/event/PlayerJobJoinEvent.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/api/event/PlayerJobJoinEvent.kt
index 4417c55..7cb15fc 100644
--- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/api/event/PlayerJobJoinEvent.kt
+++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/api/event/PlayerJobJoinEvent.kt
@@ -2,11 +2,9 @@ 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,
diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/commands/CommandGiveXP.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/commands/CommandGiveXP.kt
index d2ef672..b19811f 100644
--- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/commands/CommandGiveXP.kt
+++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/commands/CommandGiveXP.kt
@@ -7,7 +7,6 @@ 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
import org.bukkit.command.CommandSender
diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/commands/CommandReset.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/commands/CommandReset.kt
index aac1df3..bb17bbe 100644
--- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/commands/CommandReset.kt
+++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/commands/CommandReset.kt
@@ -8,8 +8,6 @@ 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
import org.bukkit.command.CommandSender
diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/jobs/Job.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/jobs/Job.kt
index 685b6a0..c68da8b 100644
--- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/jobs/Job.kt
+++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/jobs/Job.kt
@@ -18,6 +18,7 @@ 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.jobs.Jobs.unlockedJobs
import com.willfp.libreforge.conditions.Conditions
import com.willfp.libreforge.conditions.ConfiguredCondition
import com.willfp.libreforge.effects.ConfiguredEffect
@@ -166,8 +167,8 @@ class Job(
}.register()
PlayerPlaceholder(
- plugin,
- "${id}_level"
+ plugin,
+ "${id}_level"
) {
it.getJobLevel(this).toString()
}.register()
diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/jobs/JobLevelGUI.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/jobs/JobLevelGUI.kt
index 9230e94..a8ef305 100644
--- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/jobs/JobLevelGUI.kt
+++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/jobs/JobLevelGUI.kt
@@ -66,7 +66,7 @@ class JobLevelGUI(
pages = ceil(job.maxLevel.toDouble() / levelsPerPage).toInt()
menu = menu(plugin.configYml.getInt("level-gui.rows")) {
- setTitle(job.name)
+ title = job.name
setMask(
FillerMask(
maskItems,
@@ -142,7 +142,7 @@ class JobLevelGUI(
if (newPage == 0) {
JobsGUI.open(player)
} else {
- menu.addState(player, pageKey, newPage)
+ menu.setState(player, pageKey, newPage)
}
}
}
@@ -162,7 +162,7 @@ class JobLevelGUI(
val newPage = min(pages, page + 1)
- menu.addState(player, pageKey, newPage)
+ menu.setState(player, pageKey, newPage)
}
}
)
@@ -191,5 +191,7 @@ class JobLevelGUI(
}
}
- fun open(player: Player) = menu.open(player)
+ fun open(player: Player) {
+ menu.open(player)
+ }
}
diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/jobs/JobsGUI.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/jobs/JobsGUI.kt
index 1da2134..36f1f19 100644
--- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/jobs/JobsGUI.kt
+++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecojobs/jobs/JobsGUI.kt
@@ -56,14 +56,11 @@ object JobsGUI {
val jobInfoItemBuilder = { player: Player, _: Menu ->
val job = player.activeJob
- if (job == null) {
- ItemStackBuilder(Items.lookup(plugin.configYml.getString("gui.job-info.no-active.item")))
+ job?.getJobInfoIcon(player)
+ ?: ItemStackBuilder(Items.lookup(plugin.configYml.getString("gui.job-info.no-active.item")))
.setDisplayName(plugin.configYml.getFormattedString("gui.job-info.no-active.name"))
.addLoreLines(plugin.configYml.getFormattedStrings("gui.job-info.no-active.lore"))
.build()
- } else {
- job.getJobInfoIcon(player)
- }
}
val jobIconBuilder = { player: Player, menu: Menu, index: Int ->
@@ -78,7 +75,7 @@ object JobsGUI {
}
return menu(plugin.configYml.getInt("gui.rows")) {
- setTitle(plugin.langYml.getString("menu.title"))
+ title = plugin.langYml.getString("menu.title")
setMask(
FillerMask(
@@ -145,7 +142,7 @@ object JobsGUI {
val newPage = max(1, page - 1)
- menu.addState(player, pageKey, newPage)
+ menu.setState(player, pageKey, newPage)
}
}
)
@@ -169,7 +166,7 @@ object JobsGUI {
val newPage = min(pages, page + 1)
- menu.addState(player, pageKey, newPage)
+ menu.setState(player, pageKey, newPage)
}
}
)
diff --git a/eco-core/core-plugin/src/main/resources/config.yml b/eco-core/core-plugin/src/main/resources/config.yml
index 5141445..2392290 100644
--- a/eco-core/core-plugin/src/main/resources/config.yml
+++ b/eco-core/core-plugin/src/main/resources/config.yml
@@ -255,6 +255,13 @@ cannot-afford-type:
sound: "BLOCK_NOTE_BLOCK_PLING"
pitch: 0.5
+cannot-afford-price:
+ in-actionbar: true
+ sound:
+ enabled: true
+ sound: "BLOCK_NOTE_BLOCK_PLING"
+ pitch: 0.5
+
point-names: # If you have point names that look ugly (eg g_souls) then you can map them to nice names to be shown to players.
example_point: "Nicely Formatted Point"
diff --git a/eco-core/core-plugin/src/main/resources/jobs/beekeeper.yml b/eco-core/core-plugin/src/main/resources/jobs/beekeeper.yml
index 7233631..ff84ade 100644
--- a/eco-core/core-plugin/src/main/resources/jobs/beekeeper.yml
+++ b/eco-core/core-plugin/src/main/resources/jobs/beekeeper.yml
@@ -92,7 +92,7 @@ effects:
triggers:
- breed
filters:
- entites:
+ entities:
- bee
- id: take_money
@@ -101,7 +101,7 @@ effects:
triggers:
- consume
filters:
- imems:
+ items:
- honey_bottle
diff --git a/eco-core/core-plugin/src/main/resources/jobs/enchanter.yml b/eco-core/core-plugin/src/main/resources/jobs/enchanter.yml
new file mode 100644
index 0000000..5b80fb8
--- /dev/null
+++ b/eco-core/core-plugin/src/main/resources/jobs/enchanter.yml
@@ -0,0 +1,94 @@
+name: "A54FBEnchanter"
+description: "&7&oLevel up by enchanting items"
+
+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: enchant_item
+ multiplier: 0.5
+ conditions: [ ]
+
+level-placeholders:
+ - id: "money"
+ value: "%level% * 0.25"
+
+effects-description:
+ 1:
+ - "&8» &8Earn &a$%money%&8 for each enchanted item"
+
+rewards-description:
+ 1:
+ - "&8» &8Earn &a$%money%&8 for each enchanted item"
+
+level-up-messages:
+ 1:
+ - "&8» &8Earn &a$%money%&8 for each enchanted item"
+
+level-commands: [ ]
+
+effects:
+ - id: give_money
+ args:
+ amount: "%level% * 0.25"
+ triggers:
+ - enchant_item
+
+conditions: [ ]
+
+icon: player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDJjOGU3NmZjZGRlOWExNWFlMzkyOWI4NGJmNmZmYTRjMTc3N2IxZTI2YjdkNmQ4OTM4ZjBlZjA0ZTg0ODc0YyJ9fX0=
diff --git a/eco-core/core-plugin/src/main/resources/jobs/lumberjack.yml b/eco-core/core-plugin/src/main/resources/jobs/lumberjack.yml
new file mode 100644
index 0000000..9f444ce
--- /dev/null
+++ b/eco-core/core-plugin/src/main/resources/jobs/lumberjack.yml
@@ -0,0 +1,117 @@
+name: "FB8810Lumberjack"
+description: "&7&oLevel up by chopping wood"
+
+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:
+ items:
+ - "*oak_log"
+ - "*spruce_log"
+ - "*birch_log"
+ - "*jungle_log"
+ - "*acacia_log"
+ - "*dark_oak_log"
+ - "*mangrove_log"
+ - "*crimson_stem"
+ - "*warped_stem"
+
+level-placeholders:
+ - id: "money"
+ value: "%level% * 0.4"
+
+effects-description:
+ 1:
+ - "&8» &8Earn &a$%money%&8 for each log chopped."
+
+rewards-description:
+ 1:
+ - "&8» &8Earn &a$%money%&8 for each log chopped."
+
+level-up-messages:
+ 1:
+ - "&8» &8Earn &a$%money%&8 for each log chopped."
+
+level-commands: [ ]
+
+effects:
+ - id: give_money
+ args:
+ every: "ceil(10 - %level% / 10)"
+ amount: "0.4 * %level%"
+ filters:
+ items:
+ - "*oak_log"
+ - "*spruce_log"
+ - "*birch_log"
+ - "*jungle_log"
+ - "*acacia_log"
+ - "*dark_oak_log"
+ - "*mangrove_log"
+ - "*crimson_stem"
+ - "*warped_stem"
+ triggers:
+ - mine_block
+
+conditions: [ ]
+
+icon: player_head texture:basehead-eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvN2E2MjA3MDJmODBiZDJjMjI0MmUyZjEzMWMzZjlhMjU5NDAyYjdmYTg5NzRjODZjZjM0NTBmZjczZTc3MDU5NSJ9fX0=
diff --git a/eco-core/core-plugin/src/main/resources/jobs/smelter.yml b/eco-core/core-plugin/src/main/resources/jobs/smelter.yml
new file mode 100644
index 0000000..7339ed5
--- /dev/null
+++ b/eco-core/core-plugin/src/main/resources/jobs/smelter.yml
@@ -0,0 +1,94 @@
+name: "B4736Smelter"
+description: "&7&oLevel up by smelting items"
+
+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: smelt
+ multiplier: 0.5
+ conditions: [ ]
+
+level-placeholders:
+ - id: "money"
+ value: "%level% * 0.25"
+
+effects-description:
+ 1:
+ - "&8» &8Earn &a$%money%&8 for each smelted item"
+
+rewards-description:
+ 1:
+ - "&8» &8Earn &a$%money%&8 for each smelted item"
+
+level-up-messages:
+ 1:
+ - "&8» &8Earn &a$%money%&8 for each smelted item"
+
+level-commands: [ ]
+
+effects:
+ - id: give_money
+ args:
+ amount: "%level% * 0.25"
+ triggers:
+ - smelt
+
+conditions: [ ]
+
+icon: player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODdjMDc0ODM2MmU5YTYzZTA3YWEyYjA4YjVmN2QxMDFlNTM5NWFhMjE1MzJhNDc2NzIyZGJkZDk4YzJmMiJ9fX0=
diff --git a/eco-core/core-plugin/src/main/resources/lang.yml b/eco-core/core-plugin/src/main/resources/lang.yml
index 93ed005..62d00a1 100644
--- a/eco-core/core-plugin/src/main/resources/lang.yml
+++ b/eco-core/core-plugin/src/main/resources/lang.yml
@@ -6,8 +6,17 @@ messages:
reloaded: "Reloaded!"
cannot-afford: "&cYou can't afford to do this! &fCost: &a$$%cost%"
cannot-afford-type: "&cYou can't afford to do this! &fCost: &a%cost% %type%"
+ cannot-afford-price: "&cYou can't afford to do this! &fPrice: %price%"
on-cooldown: "&cThis effect is on cooldown! &fTime left: &a%seconds% seconds"
cannot-transmit: "&cYou can't transmit here!"
+ must-specify-lrcdb-id: "&cYou must specify the ID of the config to download! Not sure what this means? Go to &alrcdb.auxilor.io"
+ lrcdb-import-error: "&cError importing config: &f%message%"
+ lrcdb-import-success: "&fImported &a%name%&f! Reload the plugin to install it"
+ must-specify-config-name: "&cYou must specify the config name!"
+ invalid-config-name: "&cInvalid config name!"
+ lrcdb-export-error: "&cError exporting config: &f%message%"
+ lrcdb-export-success: "&fExported &a%name%&f! View it on &alrcdb.auxilor.io&f, or share your config ID: &f%id%"
+
needs-player: "&cYou must specify a player!"
gave-xp: "&fYou have given &a%xp% &fXP to %player%&f's %job%&f!"
reset-xp: "&fYou have reset %player%&f's %job%&f XP!"