mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-08-28 08:25:56 +02:00
Compare commits
6 commits
26bba65a9d
...
896b1db0b8
| Author | SHA1 | Date | |
|---|---|---|---|
| 896b1db0b8 | |||
| 4ef033c230 | |||
| 6d11a2db0e | |||
| 06026ef93d | |||
| 5a86f13c3f | |||
| fe346ff4d3 |
11 changed files with 71 additions and 45 deletions
|
|
@ -142,7 +142,7 @@ open class CustomAnvil : JavaPlugin() {
|
|||
|
||||
// Add commands
|
||||
try {
|
||||
CustomAnvilCommand(this)
|
||||
prepareCommand()
|
||||
} catch (e: Exception) {
|
||||
logger.log(Level.SEVERE, "error trying to register commands", e)
|
||||
MetricsUtil.trackError(e)
|
||||
|
|
@ -326,4 +326,14 @@ open class CustomAnvil : JavaPlugin() {
|
|||
return yamlConfig
|
||||
}
|
||||
|
||||
fun prepareCommand() {
|
||||
var command = getCommand(commandReloadName)
|
||||
command?.setExecutor(ReloadExecutor())
|
||||
|
||||
command = getCommand(commandConfigName)
|
||||
command?.setExecutor(EditConfigExecutor())
|
||||
|
||||
CustomAnvilCommand(this)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -189,7 +189,9 @@ object AnvilMergeLogic {
|
|||
val firstEnchants = EnchantmentApi.getEnchantments(first)
|
||||
val secondEnchants = EnchantmentApi.getEnchantments(second)
|
||||
|
||||
val newEnchants = firstEnchants.combineWith(secondEnchants, first, player)
|
||||
// newEnchants will be mutated by combineWith
|
||||
val newEnchants = HashMap(firstEnchants)
|
||||
newEnchants.combineWith(secondEnchants, first, player)
|
||||
|
||||
var hasChanged = !isIdentical(firstEnchants, newEnchants)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,25 +1,50 @@
|
|||
package xyz.alexcrea.cuanvil.command
|
||||
|
||||
import org.bukkit.ChatColor
|
||||
import org.bukkit.command.Command
|
||||
import org.bukkit.command.CommandExecutor
|
||||
import org.bukkit.command.CommandSender
|
||||
|
||||
interface CASubCommand {
|
||||
abstract class CASubCommand : CommandExecutor {
|
||||
|
||||
fun executeCommand(
|
||||
private var alreadySaid = false;
|
||||
override fun onCommand(
|
||||
sender: CommandSender,
|
||||
cmd: Command,
|
||||
cmdstr: String,
|
||||
args: Array<out String>
|
||||
): Boolean {
|
||||
if (!alreadySaid) {
|
||||
sender.sendMessage(
|
||||
ChatColor.RED.toString() +
|
||||
"Please not that this command will be replaced as a subcommand of `/customanvil` or `/ca`"
|
||||
)
|
||||
alreadySaid = true
|
||||
}
|
||||
|
||||
return executeCommand(sender, cmd, cmdstr, args)
|
||||
}
|
||||
|
||||
abstract fun executeCommand(
|
||||
sender: CommandSender,
|
||||
cmd: Command,
|
||||
cmdstr: String,
|
||||
args: Array<out String>
|
||||
): Boolean
|
||||
|
||||
fun allowed(sender: CommandSender): Boolean
|
||||
open fun allowed(sender: CommandSender): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
fun tabCompleter(
|
||||
open fun tabCompleter(
|
||||
sender: CommandSender,
|
||||
args: Array<out String>,
|
||||
list: MutableList<String>
|
||||
)
|
||||
) {
|
||||
}
|
||||
|
||||
fun description(): String
|
||||
open fun description(): String {
|
||||
return "no description"
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -12,7 +12,7 @@ import org.bukkit.command.CommandSender
|
|||
import org.bukkit.entity.Player
|
||||
import xyz.alexcrea.cuanvil.command.DiagnosticExecutor.Companion.NO_DIAG_PERM
|
||||
|
||||
class DebugToggleExecutor : CASubCommand {
|
||||
class DebugToggleExecutor : CASubCommand() {
|
||||
|
||||
override fun description(): String {
|
||||
return "Used to toggle debug logs and retrieve it"
|
||||
|
|
|
|||
|
|
@ -30,7 +30,8 @@ import xyz.alexcrea.cuanvil.util.MetricsUtil
|
|||
import java.util.*
|
||||
import java.util.stream.Collectors
|
||||
|
||||
class DiagnosticExecutor : CASubCommand {
|
||||
|
||||
class DiagnosticExecutor : CASubCommand() {
|
||||
|
||||
companion object {
|
||||
const val NO_DIAG_PERM = "You do not have permission to diagnostic this server"
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ import xyz.alexcrea.cuanvil.dependency.util.PlatformUtil
|
|||
import xyz.alexcrea.cuanvil.gui.config.MainConfigGui
|
||||
import xyz.alexcrea.cuanvil.gui.util.GuiGlobalActions
|
||||
|
||||
class EditConfigExecutor : CASubCommand {
|
||||
class EditConfigExecutor : CASubCommand() {
|
||||
|
||||
override fun executeCommand(
|
||||
sender: CommandSender,
|
||||
|
|
@ -40,13 +40,6 @@ class EditConfigExecutor : CASubCommand {
|
|||
return sender.hasPermission(CustomAnvil.editConfigPermission)
|
||||
}
|
||||
|
||||
override fun tabCompleter(
|
||||
sender: CommandSender,
|
||||
args: Array<out String>,
|
||||
list: MutableList<String>
|
||||
) {
|
||||
}
|
||||
|
||||
override fun description(): String {
|
||||
return "Gui to edit the plugin's config"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import com.google.common.collect.ImmutableMap
|
|||
import org.bukkit.command.Command
|
||||
import org.bukkit.command.CommandSender
|
||||
|
||||
class HelpExecutor : CASubCommand {
|
||||
class HelpExecutor : CASubCommand() {
|
||||
|
||||
lateinit var commands: ImmutableMap<String, CASubCommand>
|
||||
|
||||
|
|
@ -27,17 +27,6 @@ class HelpExecutor : CASubCommand {
|
|||
return true
|
||||
}
|
||||
|
||||
override fun allowed(sender: CommandSender): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
override fun tabCompleter(
|
||||
sender: CommandSender,
|
||||
args: Array<out String>,
|
||||
list: MutableList<String>
|
||||
) {
|
||||
}
|
||||
|
||||
override fun description(): String {
|
||||
return "Help command"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ import xyz.alexcrea.cuanvil.dependency.DependencyManager
|
|||
import xyz.alexcrea.cuanvil.gui.config.global.*
|
||||
import xyz.alexcrea.cuanvil.update.UpdateHandler
|
||||
|
||||
class ReloadExecutor : CASubCommand {
|
||||
class ReloadExecutor : CASubCommand() {
|
||||
|
||||
override fun executeCommand(
|
||||
sender: CommandSender,
|
||||
|
|
@ -40,13 +40,6 @@ class ReloadExecutor : CASubCommand {
|
|||
return sender.hasPermission(CustomAnvil.commandReloadPermission)
|
||||
}
|
||||
|
||||
override fun tabCompleter(
|
||||
sender: CommandSender,
|
||||
args: Array<out String>,
|
||||
list: MutableList<String>
|
||||
) {
|
||||
}
|
||||
|
||||
override fun description(): String {
|
||||
return "Reload the configuration of this plugin"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@ class AnvilResultListener : Listener {
|
|||
if(!worked) {
|
||||
CustomAnvil.verboseLog("Merge extract failed. reset the displayed price")
|
||||
// Reset the price
|
||||
AnvilXpUtil.setAnvilResult(view, player, result)
|
||||
AnvilXpUtil.setAnvilResult(inventory, view, player, result)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,8 @@ object AnvilXpUtil {
|
|||
* Display the required cost (either as xp or as money) or reset anvil price depending on result
|
||||
*/
|
||||
fun setAnvilResult(
|
||||
view: AnvilView,
|
||||
inventory: AnvilInventory,
|
||||
view: InventoryView,
|
||||
player: Player,
|
||||
result: AnvilResult) {
|
||||
if(result.item == null) {
|
||||
|
|
@ -40,7 +41,7 @@ object AnvilXpUtil {
|
|||
return
|
||||
}
|
||||
|
||||
setAnvilInvCost(view, player, result.cost, result.ignoreXpRules)
|
||||
setAnvilInvCost(inventory, view, player, result.cost, result.ignoreXpRules)
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -14,6 +14,18 @@ commands:
|
|||
description: Generic command for custom anvil
|
||||
aliases:
|
||||
- ca
|
||||
anvilconfigreload:
|
||||
description: Reload every config of this plugin
|
||||
permission: ca.command.reload
|
||||
aliases:
|
||||
#- acreload # anvil config reload
|
||||
#- careload # custom anvil reload
|
||||
- carl # custom anvil reload
|
||||
customanvilconfig:
|
||||
description: open a menu for administrator to edit plugin's config in game
|
||||
permission: ca.config.edit
|
||||
aliases:
|
||||
- configanvil
|
||||
|
||||
permissions:
|
||||
ca.affected:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue