mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-06-23 08:14:00 +02:00
add excellent enchant limit
This commit is contained in:
parent
8ded2ae9c6
commit
f3c6526967
8 changed files with 56 additions and 16 deletions
|
|
@ -71,7 +71,7 @@ dependencies {
|
||||||
compileOnly(project(":impl:LegacyEcoEnchant"))
|
compileOnly(project(":impl:LegacyEcoEnchant"))
|
||||||
|
|
||||||
// ExcellentEnchants
|
// ExcellentEnchants
|
||||||
implementation(project(":impl:ExcellentEnchant5_3"))
|
implementation(project(":impl:ExcellentEnchant5_4"))
|
||||||
compileOnly("su.nightexpress.excellentenchants:Core:5.1.0") {
|
compileOnly("su.nightexpress.excellentenchants:Core:5.1.0") {
|
||||||
exclude("org.spigotmc")
|
exclude("org.spigotmc")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,11 +11,7 @@ repositories {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
// Spigot api
|
|
||||||
compileOnly("org.spigotmc:spigot-api:1.18-R0.1-SNAPSHOT")
|
|
||||||
|
|
||||||
// Excellent Enchant
|
// Excellent Enchant
|
||||||
compileOnly("su.nightexpress.excellentenchants:Core:5.3.0") {
|
compileOnly("su.nightexpress.excellentenchants:Core:5.4.1")
|
||||||
exclude("org.spigotmc")
|
compileOnly("su.nightexpress.nightcore:main:2.14.1")
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,12 @@
|
||||||
|
package xyz.alexcrea.cuanvil.dependency.plugins;
|
||||||
|
|
||||||
|
import su.nightexpress.excellentenchants.EnchantsAPI;
|
||||||
|
|
||||||
|
public class ExcellentEnchant5_4EnchantSettings {
|
||||||
|
|
||||||
|
|
||||||
|
public static int anvilLimit() {
|
||||||
|
return EnchantsAPI.getEnchantManager().getSettings().getAnvilEnchantsLimit();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -18,5 +18,5 @@ for (nmsPart in reobfNMS) {
|
||||||
// compatibility subprojects
|
// compatibility subprojects
|
||||||
include(":impl:LegacyEcoEnchant")
|
include(":impl:LegacyEcoEnchant")
|
||||||
findProject(":impl:LegacyEcoEnchant")?.name = "LegacyEcoEnchant"
|
findProject(":impl:LegacyEcoEnchant")?.name = "LegacyEcoEnchant"
|
||||||
include("impl:ExcellentEnchant5_3")
|
include("impl:ExcellentEnchant5_4")
|
||||||
findProject(":impl:ExcellentEnchant5_3")?.name = "ExcellentEnchant5_3"
|
findProject(":impl:ExcellentEnchant5_4")?.name = "ExcellentEnchant5_4"
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package xyz.alexcrea.cuanvil.enchant.wrapped;
|
||||||
|
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import su.nightexpress.excellentenchants.api.enchantment.CustomEnchantment;
|
||||||
|
import xyz.alexcrea.cuanvil.dependency.plugins.ExcellentEnchant5_4EnchantSettings;
|
||||||
|
import xyz.alexcrea.cuanvil.enchant.CAEnchantment;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class CAEEV5_4Enchantment extends CAEEV5Enchantment {
|
||||||
|
|
||||||
|
public CAEEV5_4Enchantment(@NotNull CustomEnchantment enchantment) {
|
||||||
|
super(enchantment);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnchantConflict(@NotNull Map<CAEnchantment, Integer> enchantments, @NotNull Material itemMat) {
|
||||||
|
if(super.isEnchantConflict(enchantments, itemMat)) return true;
|
||||||
|
|
||||||
|
var limit = ExcellentEnchant5_4EnchantSettings.anvilLimit();
|
||||||
|
var count = enchantments.keySet().stream()
|
||||||
|
.filter(key -> key instanceof CAEEV5_4Enchantment)
|
||||||
|
.count();
|
||||||
|
|
||||||
|
return count > limit;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,10 +1,8 @@
|
||||||
package xyz.alexcrea.cuanvil.dependency.packet
|
package xyz.alexcrea.cuanvil.dependency.packet
|
||||||
|
|
||||||
import org.bukkit.Bukkit
|
import org.bukkit.Bukkit
|
||||||
import su.nightexpress.nightcore.bridge.paper.PaperBridge
|
|
||||||
import xyz.alexcrea.cuanvil.dependency.MinecraftVersionUtil
|
import xyz.alexcrea.cuanvil.dependency.MinecraftVersionUtil
|
||||||
import xyz.alexcrea.cuanvil.dependency.packet.versions.*
|
import xyz.alexcrea.cuanvil.dependency.packet.versions.*
|
||||||
import xyz.alexcrea.cuanvil.dependency.util.PlatformUtil
|
|
||||||
import xyz.alexcrea.cuanvil.update.UpdateUtils
|
import xyz.alexcrea.cuanvil.update.UpdateUtils
|
||||||
|
|
||||||
object PacketManagerSelector {
|
object PacketManagerSelector {
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,7 @@ import xyz.alexcrea.cuanvil.api.EnchantmentApi
|
||||||
import xyz.alexcrea.cuanvil.api.event.listener.CATreatAnvilResultEvent
|
import xyz.alexcrea.cuanvil.api.event.listener.CATreatAnvilResultEvent
|
||||||
import xyz.alexcrea.cuanvil.enchant.wrapped.CAEEPreV5Enchantment
|
import xyz.alexcrea.cuanvil.enchant.wrapped.CAEEPreV5Enchantment
|
||||||
import xyz.alexcrea.cuanvil.enchant.wrapped.CAEEV5Enchantment
|
import xyz.alexcrea.cuanvil.enchant.wrapped.CAEEV5Enchantment
|
||||||
|
import xyz.alexcrea.cuanvil.enchant.wrapped.CAEEV5_4Enchantment
|
||||||
import xyz.alexcrea.cuanvil.enchant.wrapped.CALegacyEEEnchantment
|
import xyz.alexcrea.cuanvil.enchant.wrapped.CALegacyEEEnchantment
|
||||||
import java.lang.reflect.Method
|
import java.lang.reflect.Method
|
||||||
import su.nightexpress.excellentenchants.api.EnchantRegistry as V5EnchantRegistry
|
import su.nightexpress.excellentenchants.api.EnchantRegistry as V5EnchantRegistry
|
||||||
|
|
@ -25,6 +26,7 @@ import su.nightexpress.excellentenchants.registry.EnchantRegistry as PreV5Enchan
|
||||||
class ExcellentEnchantsDependency {
|
class ExcellentEnchantsDependency {
|
||||||
|
|
||||||
enum class ListenerVersion(val classPath: String) {
|
enum class ListenerVersion(val classPath: String) {
|
||||||
|
V5_4("su.nightexpress.excellentenchants.enchantment.EnchantSettings"),
|
||||||
V5_3("su.nightexpress.excellentenchants.enchantment.EnchantRegistry"),
|
V5_3("su.nightexpress.excellentenchants.enchantment.EnchantRegistry"),
|
||||||
V5("su.nightexpress.excellentenchants.manager.listener.AnvilListener"),
|
V5("su.nightexpress.excellentenchants.manager.listener.AnvilListener"),
|
||||||
PRE_V5("su.nightexpress.excellentenchants.enchantment.listener.AnvilListener"),
|
PRE_V5("su.nightexpress.excellentenchants.enchantment.listener.AnvilListener"),
|
||||||
|
|
@ -70,14 +72,14 @@ class ExcellentEnchantsDependency {
|
||||||
|
|
||||||
// As excellent enchants is loaded before custom anvil and register enchantment to registry, we need to unregister old "vanilla" enchant.
|
// As excellent enchants is loaded before custom anvil and register enchantment to registry, we need to unregister old "vanilla" enchant.
|
||||||
when (listenerVersion) {
|
when (listenerVersion) {
|
||||||
ListenerVersion.V5_3 -> {
|
ListenerVersion.V5_4 -> {
|
||||||
for (enchantment in ExcellentEnchant5_3Registry.getRegistered()) {
|
for (enchantment in ExcellentEnchant5_3Registry.getRegistered()) {
|
||||||
EnchantmentApi.unregisterEnchantment(enchantment.bukkitEnchantment.key)
|
EnchantmentApi.unregisterEnchantment(enchantment.bukkitEnchantment.key)
|
||||||
EnchantmentApi.registerEnchantment(CAEEV5Enchantment(enchantment))
|
EnchantmentApi.registerEnchantment(CAEEV5_4Enchantment(enchantment))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ListenerVersion.V5 -> {
|
ListenerVersion.V5, ListenerVersion.V5_3 -> {
|
||||||
for (enchantment in V5EnchantRegistry.getRegistered()) {
|
for (enchantment in V5EnchantRegistry.getRegistered()) {
|
||||||
EnchantmentApi.unregisterEnchantment(enchantment.bukkitEnchantment.key)
|
EnchantmentApi.unregisterEnchantment(enchantment.bukkitEnchantment.key)
|
||||||
EnchantmentApi.registerEnchantment(CAEEV5Enchantment(enchantment))
|
EnchantmentApi.registerEnchantment(CAEEV5Enchantment(enchantment))
|
||||||
|
|
@ -130,7 +132,8 @@ class ExcellentEnchantsDependency {
|
||||||
|
|
||||||
when (listenerVersion) {
|
when (listenerVersion) {
|
||||||
ListenerVersion.V5,
|
ListenerVersion.V5,
|
||||||
ListenerVersion.V5_3
|
ListenerVersion.V5_3,
|
||||||
|
ListenerVersion.V5_4,
|
||||||
-> {
|
-> {
|
||||||
if (listener is V5AnvilListener) {
|
if (listener is V5AnvilListener) {
|
||||||
this.v5AnvilListener = listener
|
this.v5AnvilListener = listener
|
||||||
|
|
@ -165,6 +168,7 @@ class ExcellentEnchantsDependency {
|
||||||
when (listenerVersion) {
|
when (listenerVersion) {
|
||||||
ListenerVersion.V5_3,
|
ListenerVersion.V5_3,
|
||||||
ListenerVersion.V5,
|
ListenerVersion.V5,
|
||||||
|
ListenerVersion.V5_4,
|
||||||
-> this.usedAnvilListener = v5AnvilListener!!
|
-> this.usedAnvilListener = v5AnvilListener!!
|
||||||
ListenerVersion.PRE_V5 -> this.usedAnvilListener = preV5AnvilListener!!
|
ListenerVersion.PRE_V5 -> this.usedAnvilListener = preV5AnvilListener!!
|
||||||
ListenerVersion.LEGACY -> this.usedAnvilListener = legacyAnvilListener!!
|
ListenerVersion.LEGACY -> this.usedAnvilListener = legacyAnvilListener!!
|
||||||
|
|
@ -228,7 +232,8 @@ class ExcellentEnchantsDependency {
|
||||||
if (event.inventory.getItem(2) != null) {
|
if (event.inventory.getItem(2) != null) {
|
||||||
when (listenerVersion) {
|
when (listenerVersion) {
|
||||||
ListenerVersion.V5,
|
ListenerVersion.V5,
|
||||||
ListenerVersion.V5_3
|
ListenerVersion.V5_3,
|
||||||
|
ListenerVersion.V5_4,
|
||||||
-> v5AnvilListener!!.onClickAnvil(event)
|
-> v5AnvilListener!!.onClickAnvil(event)
|
||||||
ListenerVersion.PRE_V5 -> preV5AnvilListener!!.onClickAnvil(event)
|
ListenerVersion.PRE_V5 -> preV5AnvilListener!!.onClickAnvil(event)
|
||||||
ListenerVersion.LEGACY -> legacyAnvilListener!!.onClickAnvil(event)
|
ListenerVersion.LEGACY -> legacyAnvilListener!!.onClickAnvil(event)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue