mirror of
https://github.com/Auxilor/EcoJobs.git
synced 2025-12-20 15:39:26 +00:00
Compare commits
16 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d8113c3819 | ||
|
|
2e655ffbb8 | ||
|
|
88a44777e1 | ||
|
|
bd7305fae1 | ||
|
|
25b78106ee | ||
|
|
1b75ba0098 | ||
|
|
b4b235f1b5 | ||
|
|
c7ec273747 | ||
|
|
9991f9b683 | ||
|
|
921f086f49 | ||
|
|
b0c882dc21 | ||
|
|
59a528689d | ||
|
|
16be3a8b69 | ||
|
|
8e1200f293 | ||
|
|
301b4d35f3 | ||
|
|
ff84afdc7d |
@@ -46,8 +46,8 @@ allprojects {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compileOnly 'com.willfp:eco:6.37.1'
|
||||
implementation 'com.willfp:libreforge:3.102.0'
|
||||
compileOnly 'com.willfp:eco:6.42.0'
|
||||
implementation 'com.willfp:libreforge:3.109.0'
|
||||
implementation 'org.joml:joml:1.10.4'
|
||||
|
||||
compileOnly 'org.jetbrains:annotations:23.0.0'
|
||||
|
||||
@@ -7,6 +7,11 @@ import org.bukkit.command.CommandSender
|
||||
import org.bukkit.entity.Player
|
||||
|
||||
class CommandJobs(plugin: EcoPlugin) : PluginCommand(plugin, "jobs", "ecojobs.command.jobs", true) {
|
||||
init {
|
||||
this.addSubcommand(CommandJoin(plugin))
|
||||
.addSubcommand(CommandLeave(plugin))
|
||||
}
|
||||
|
||||
override fun onExecute(player: CommandSender, args: List<String>) {
|
||||
player as Player
|
||||
JobsGUI.open(player)
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.willfp.ecojobs.commands
|
||||
|
||||
import com.willfp.eco.core.EcoPlugin
|
||||
import com.willfp.eco.core.command.impl.Subcommand
|
||||
import com.willfp.eco.util.StringUtils
|
||||
import com.willfp.ecojobs.jobs.Jobs
|
||||
import com.willfp.ecojobs.jobs.activeJob
|
||||
import com.willfp.ecojobs.jobs.hasJob
|
||||
import org.bukkit.command.CommandSender
|
||||
import org.bukkit.entity.Player
|
||||
import org.bukkit.util.StringUtil
|
||||
|
||||
class CommandJoin(plugin: EcoPlugin) : Subcommand(plugin, "join", "ecojobs.command.join", true) {
|
||||
override fun onExecute(player: CommandSender, args: List<String>) {
|
||||
player as Player
|
||||
|
||||
if (args.isEmpty()) {
|
||||
player.sendMessage(plugin.langYml.getMessage("needs-job"))
|
||||
return
|
||||
}
|
||||
|
||||
val id = args[0]
|
||||
|
||||
val job = Jobs.getByID(id)
|
||||
|
||||
if (job == null || !player.hasJob(job)) {
|
||||
player.sendMessage(plugin.langYml.getMessage("invalid-job"))
|
||||
return
|
||||
}
|
||||
|
||||
if (player.activeJob == job) {
|
||||
player.sendMessage(plugin.langYml.getMessage("job-already-joined"))
|
||||
return
|
||||
}
|
||||
|
||||
player.sendMessage(
|
||||
plugin.langYml.getMessage("joined-job", StringUtils.FormatOption.WITHOUT_PLACEHOLDERS)
|
||||
.replace("%job%", job.name)
|
||||
)
|
||||
player.activeJob = job
|
||||
}
|
||||
|
||||
override fun tabComplete(sender: CommandSender, args: List<String>): List<String> {
|
||||
if (sender !is Player) {
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
val completions = mutableListOf<String>()
|
||||
if (args.isEmpty()) {
|
||||
// Currently, this case is not ever reached
|
||||
return Jobs.values().filter { sender.hasJob(it) }.map { it.id }
|
||||
}
|
||||
|
||||
if (args.size == 1) {
|
||||
StringUtil.copyPartialMatches(
|
||||
args[1],
|
||||
Jobs.values().filter { sender.hasJob(it) }.map { it.id },
|
||||
completions
|
||||
)
|
||||
return completions
|
||||
}
|
||||
|
||||
return emptyList()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.willfp.ecojobs.commands
|
||||
|
||||
import com.willfp.eco.core.EcoPlugin
|
||||
import com.willfp.eco.core.command.impl.Subcommand
|
||||
import com.willfp.eco.util.StringUtils
|
||||
import com.willfp.ecojobs.jobs.activeJob
|
||||
import org.bukkit.command.CommandSender
|
||||
import org.bukkit.entity.Player
|
||||
|
||||
class CommandLeave(plugin: EcoPlugin) : Subcommand(plugin, "leave", "ecojobs.command.leave", true) {
|
||||
override fun onExecute(player: CommandSender, args: List<String>) {
|
||||
player as Player
|
||||
|
||||
if (player.activeJob == null) {
|
||||
player.sendMessage(plugin.langYml.getMessage("no-job"))
|
||||
return
|
||||
}
|
||||
|
||||
player.sendMessage(
|
||||
plugin.langYml.getMessage("left-job", StringUtils.FormatOption.WITHOUT_PLACEHOLDERS)
|
||||
.replace("%job%", player.activeJob?.name ?: "")
|
||||
)
|
||||
|
||||
player.activeJob = null
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import com.willfp.eco.core.EcoPlugin
|
||||
import com.willfp.eco.core.gui.menu
|
||||
import com.willfp.eco.core.gui.menu.Menu
|
||||
import com.willfp.eco.core.gui.slot
|
||||
import com.willfp.eco.core.gui.slot.ConfigSlot
|
||||
import com.willfp.eco.core.gui.slot.FillerMask
|
||||
import com.willfp.eco.core.gui.slot.MaskItems
|
||||
import com.willfp.eco.core.items.Items
|
||||
@@ -165,6 +166,7 @@ class JobLevelGUI(
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
setSlot(
|
||||
plugin.configYml.getInt("level-gui.progression-slots.close.location.row"),
|
||||
plugin.configYml.getInt("level-gui.progression-slots.close.location.column"),
|
||||
@@ -178,6 +180,14 @@ class JobLevelGUI(
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
for (config in plugin.configYml.getSubsections("level-gui.custom-slots")) {
|
||||
setSlot(
|
||||
config.getInt("row"),
|
||||
config.getInt("column"),
|
||||
ConfigSlot(config)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.willfp.eco.core.config.updating.ConfigUpdater
|
||||
import com.willfp.eco.core.gui.menu
|
||||
import com.willfp.eco.core.gui.menu.Menu
|
||||
import com.willfp.eco.core.gui.slot
|
||||
import com.willfp.eco.core.gui.slot.ConfigSlot
|
||||
import com.willfp.eco.core.gui.slot.FillerMask
|
||||
import com.willfp.eco.core.gui.slot.MaskItems
|
||||
import com.willfp.eco.core.items.Items
|
||||
@@ -197,6 +198,14 @@ object JobsGUI {
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
for (config in plugin.configYml.getSubsections("gui.custom-slots")) {
|
||||
setSlot(
|
||||
config.getInt("row"),
|
||||
config.getInt("column"),
|
||||
ConfigSlot(config)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -116,6 +116,9 @@ gui:
|
||||
row: 4
|
||||
column: 2
|
||||
|
||||
# Custom GUI slots; see here for a how-to: https://plugins.auxilor.io/all-plugins/custom-gui-slots
|
||||
custom-slots: []
|
||||
|
||||
level-gui:
|
||||
rows: 6
|
||||
|
||||
@@ -210,6 +213,9 @@ level-gui:
|
||||
row: 6
|
||||
column: 5
|
||||
|
||||
# Custom GUI slots; see here for a how-to: https://plugins.auxilor.io/all-plugins/custom-gui-slots
|
||||
custom-slots: []
|
||||
|
||||
level-up:
|
||||
message:
|
||||
enabled: true
|
||||
|
||||
@@ -20,6 +20,10 @@ messages:
|
||||
unlocked-job: "&fSuccessfully unlocked the %job%&f job for %player%!"
|
||||
cannot-spawn-job: "&cYou already have this job unlocked!"
|
||||
invalid-amount: "&cInvalid amount!"
|
||||
no-job: "&cYou don't have a job!"
|
||||
joined-job: "&fYou have joined the %job%&f job!"
|
||||
left-job: "&fYou have left the %job%&f job!"
|
||||
job-already-joined: "&cYou already have this job!"
|
||||
|
||||
menu:
|
||||
title: "Jobs"
|
||||
|
||||
@@ -49,6 +49,8 @@ permissions:
|
||||
ecojobs.command.jobs: true
|
||||
ecojobs.command.unlock: true
|
||||
ecojobs.command.givexp: true
|
||||
ecojobs.command.join: true
|
||||
ecojobs.command.leave: true
|
||||
ecojobs.command.reset: true
|
||||
|
||||
ecojobs.command.reload:
|
||||
@@ -69,6 +71,12 @@ permissions:
|
||||
ecojobs.command.reset:
|
||||
description: Allows the use of /ecojobs reset.
|
||||
default: op
|
||||
ecojobs.command.join:
|
||||
description: Allows the use of /jobs join.
|
||||
default: true
|
||||
ecojobs.command.leave:
|
||||
description: Allows the use of /jobs leave.
|
||||
default: true
|
||||
|
||||
ecojobs.xpmultiplier.50percent:
|
||||
description: Gives the player 50% more job experience
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#libreforge-updater
|
||||
#Sat Sep 17 15:45:43 BST 2022
|
||||
version=1.6.0
|
||||
#Thu Oct 06 12:02:41 BST 2022
|
||||
version=1.14.0
|
||||
plugin-name=EcoJobs
|
||||
|
||||
Reference in New Issue
Block a user