Compare commits

..

9 commits

Author SHA1 Message Date
26bba65a9d
remove legacy command 2026-06-30 23:47:16 +02:00
2bf913293b
rebase on news update 2026-06-30 23:35:00 +02:00
dbdce37c74
prepare for v2 2026-06-30 21:08:37 +02:00
f8622e9867
rebase on new update 2026-06-30 21:08:36 +02:00
9acf9a62d2
1.21 cleanup and fix
also random cleanup
2026-06-30 21:08:36 +02:00
4e8acef7c3
fix from rebase 2026-06-30 21:08:36 +02:00
297f41c347
progress on 1.21 transition 2026-06-30 21:08:36 +02:00
010b54e9ed
initial 1.21 transition 2026-06-30 21:08:32 +02:00
0ab7abd6b4
fix enchant combine not working
Some checks are pending
Java CI with Gradle / build (push) Waiting to run
2026-06-30 19:56:29 +02:00
11 changed files with 45 additions and 71 deletions

View file

@ -142,7 +142,7 @@ open class CustomAnvil : JavaPlugin() {
// Add commands
try {
prepareCommand()
CustomAnvilCommand(this)
} catch (e: Exception) {
logger.log(Level.SEVERE, "error trying to register commands", e)
MetricsUtil.trackError(e)
@ -326,14 +326,4 @@ open class CustomAnvil : JavaPlugin() {
return yamlConfig
}
fun prepareCommand() {
var command = getCommand(commandReloadName)
command?.setExecutor(ReloadExecutor())
command = getCommand(commandConfigName)
command?.setExecutor(EditConfigExecutor())
CustomAnvilCommand(this)
}
}

View file

@ -189,9 +189,7 @@ object AnvilMergeLogic {
val firstEnchants = EnchantmentApi.getEnchantments(first)
val secondEnchants = EnchantmentApi.getEnchantments(second)
// newEnchants will be mutated by combineWith
val newEnchants = HashMap(firstEnchants)
newEnchants.combineWith(secondEnchants, first, player)
val newEnchants = firstEnchants.combineWith(secondEnchants, first, player)
var hasChanged = !isIdentical(firstEnchants, newEnchants)

View file

@ -1,50 +1,25 @@
package xyz.alexcrea.cuanvil.command
import org.bukkit.ChatColor
import org.bukkit.command.Command
import org.bukkit.command.CommandExecutor
import org.bukkit.command.CommandSender
abstract class CASubCommand : CommandExecutor {
interface CASubCommand {
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(
fun executeCommand(
sender: CommandSender,
cmd: Command,
cmdstr: String,
args: Array<out String>
): Boolean
open fun allowed(sender: CommandSender): Boolean {
return true
}
fun allowed(sender: CommandSender): Boolean
open fun tabCompleter(
fun tabCompleter(
sender: CommandSender,
args: Array<out String>,
list: MutableList<String>
) {
}
)
open fun description(): String {
return "no description"
}
fun description(): String
}

View file

@ -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"

View file

@ -30,8 +30,7 @@ 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"

View file

@ -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,6 +40,13 @@ 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"
}

View file

@ -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,6 +27,17 @@ 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"
}

View file

@ -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,6 +40,13 @@ 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"
}

View file

@ -115,7 +115,7 @@ class AnvilResultListener : Listener {
if(!worked) {
CustomAnvil.verboseLog("Merge extract failed. reset the displayed price")
// Reset the price
AnvilXpUtil.setAnvilResult(inventory, view, player, result)
AnvilXpUtil.setAnvilResult(view, player, result)
}
return
}

View file

@ -32,8 +32,7 @@ object AnvilXpUtil {
* Display the required cost (either as xp or as money) or reset anvil price depending on result
*/
fun setAnvilResult(
inventory: AnvilInventory,
view: InventoryView,
view: AnvilView,
player: Player,
result: AnvilResult) {
if(result.item == null) {
@ -41,7 +40,7 @@ object AnvilXpUtil {
return
}
setAnvilInvCost(inventory, view, player, result.cost, result.ignoreXpRules)
setAnvilInvCost(view, player, result.cost, result.ignoreXpRules)
}
/**

View file

@ -14,18 +14,6 @@ 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: