mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-06-24 00:26:16 +02:00
Add enchant squared wrapper.
Fix dependency not being load before enchantment registering.
This commit is contained in:
parent
aad9974baf
commit
aa1f3a446e
6 changed files with 65 additions and 11 deletions
|
|
@ -10,7 +10,7 @@ import org.bukkit.inventory.meta.ItemMeta;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import xyz.alexcrea.cuanvil.dependency.DependencyManager;
|
import xyz.alexcrea.cuanvil.dependency.DependencyManager;
|
||||||
import xyz.alexcrea.cuanvil.enchant.wrapped.VanillaEnchant;
|
import xyz.alexcrea.cuanvil.enchant.wrapped.VanillaEnchantment;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
@ -230,7 +230,7 @@ public abstract class WrappedEnchantment {
|
||||||
*/
|
*/
|
||||||
public static void registerEnchantments(){
|
public static void registerEnchantments(){
|
||||||
for (Enchantment enchantment : Enchantment.values()) {
|
for (Enchantment enchantment : Enchantment.values()) {
|
||||||
register(new VanillaEnchant(enchantment));
|
register(new VanillaEnchantment(enchantment));
|
||||||
}
|
}
|
||||||
|
|
||||||
if(DependencyManager.INSTANCE.getEnchantmentSquaredCompatibility() != null){
|
if(DependencyManager.INSTANCE.getEnchantmentSquaredCompatibility() != null){
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
package xyz.alexcrea.cuanvil.enchant.wrapped;
|
||||||
|
|
||||||
|
import me.athlaeos.enchantssquared.enchantments.CustomEnchant;
|
||||||
|
import me.athlaeos.enchantssquared.managers.CustomEnchantManager;
|
||||||
|
import org.bukkit.NamespacedKey;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import xyz.alexcrea.cuanvil.enchant.WrappedEnchantment;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
public class EnchantSquaredEnchantment extends WrappedEnchantment {
|
||||||
|
|
||||||
|
private final @NotNull CustomEnchant enchant;
|
||||||
|
public EnchantSquaredEnchantment(@NotNull CustomEnchant enchant, @NotNull Plugin enchantSquared) {
|
||||||
|
super(Objects.requireNonNull(NamespacedKey.fromString(enchant.getType().toLowerCase(), enchantSquared)), null, enchant.getMaxLevel());
|
||||||
|
this.enchant = enchant;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO optimise for bulk operation
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getLevel(@NotNull ItemStack item, @NotNull ItemMeta meta) {
|
||||||
|
return CustomEnchantManager.getInstance().getEnchantStrength(item, this.enchant.getType());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEnchantmentPresent(@NotNull ItemStack item, @NotNull ItemMeta meta) {
|
||||||
|
Map<CustomEnchant, Integer> enchants = CustomEnchantManager.getInstance().getItemsEnchantsFromPDC(item);
|
||||||
|
return enchants.containsKey(this.enchant);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addEnchantmentUnsafe(@NotNull ItemStack item, int level) {
|
||||||
|
CustomEnchantManager.getInstance().addEnchant(item, this.enchant.getType(), level);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeFrom(@NotNull ItemStack item) {
|
||||||
|
CustomEnchantManager.getInstance().removeEnchant(item, this.enchant.getType());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -12,11 +12,11 @@ import xyz.alexcrea.cuanvil.enchant.WrappedEnchantment;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
public class VanillaEnchant extends WrappedEnchantment {
|
public class VanillaEnchantment extends WrappedEnchantment {
|
||||||
|
|
||||||
private final @NotNull Enchantment enchantment;
|
private final @NotNull Enchantment enchantment;
|
||||||
|
|
||||||
public VanillaEnchant(@NotNull Enchantment enchantment){
|
public VanillaEnchantment(@NotNull Enchantment enchantment){
|
||||||
super(enchantment.getKey(),
|
super(enchantment.getKey(),
|
||||||
getRarity(enchantment),
|
getRarity(enchantment),
|
||||||
enchantment.getMaxLevel());
|
enchantment.getMaxLevel());
|
||||||
|
|
@ -91,12 +91,12 @@ class CustomAnvil : JavaPlugin() {
|
||||||
logger.warning("Please note CustomAnvil is a more recent version of UnsafeEnchantsPlus")
|
logger.warning("Please note CustomAnvil is a more recent version of UnsafeEnchantsPlus")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register enchantments
|
|
||||||
WrappedEnchantment.registerEnchantments()
|
|
||||||
|
|
||||||
// Load dependency
|
// Load dependency
|
||||||
DependencyManager.loadDependency()
|
DependencyManager.loadDependency()
|
||||||
|
|
||||||
|
// Register enchantments
|
||||||
|
WrappedEnchantment.registerEnchantments()
|
||||||
|
|
||||||
// Load chat listener
|
// Load chat listener
|
||||||
chatListener = ChatEventListener()
|
chatListener = ChatEventListener()
|
||||||
pluginManager.registerEvents(chatListener, this)
|
pluginManager.registerEvents(chatListener, this)
|
||||||
|
|
|
||||||
|
|
@ -20,10 +20,9 @@ object DependencyManager {
|
||||||
|
|
||||||
// Enchantment Squared dependency
|
// Enchantment Squared dependency
|
||||||
enchantmentSquaredCompatibility =
|
enchantmentSquaredCompatibility =
|
||||||
if(pluginManager.isPluginEnabled("EnchantsSquared")) EnchantmentSquaredDependency()
|
if(pluginManager.isPluginEnabled("EnchantsSquared")) EnchantmentSquaredDependency(pluginManager.getPlugin("EnchantsSquared")!!)
|
||||||
else null
|
else null
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,17 @@
|
||||||
package xyz.alexcrea.cuanvil.dependency
|
package xyz.alexcrea.cuanvil.dependency
|
||||||
|
|
||||||
class EnchantmentSquaredDependency {
|
import me.athlaeos.enchantssquared.managers.CustomEnchantManager
|
||||||
|
import org.bukkit.plugin.Plugin
|
||||||
|
import xyz.alexcrea.cuanvil.enchant.WrappedEnchantment
|
||||||
|
import xyz.alexcrea.cuanvil.enchant.wrapped.EnchantSquaredEnchantment
|
||||||
|
|
||||||
|
class EnchantmentSquaredDependency(private val enchantmentSquaredPlugin: Plugin) {
|
||||||
|
|
||||||
fun registerEnchantements(){
|
fun registerEnchantements(){
|
||||||
//TODO
|
for (enchant in CustomEnchantManager.getInstance().allEnchants.values) {
|
||||||
|
WrappedEnchantment.register(EnchantSquaredEnchantment(enchant, enchantmentSquaredPlugin))
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue