diff --git a/src/main/java/com/gmail/nossr50/bukkit/BukkitFactory.java b/src/main/java/com/gmail/nossr50/bukkit/BukkitFactory.java index 596b5ac70..0669bf00e 100644 --- a/src/main/java/com/gmail/nossr50/bukkit/BukkitFactory.java +++ b/src/main/java/com/gmail/nossr50/bukkit/BukkitFactory.java @@ -2,7 +2,7 @@ package com.gmail.nossr50.bukkit; import com.gmail.nossr50.datatypes.items.BukkitMMOItem; import com.gmail.nossr50.datatypes.items.MMOItem; -import com.gmail.nossr50.mcMMO; +import com.gmail.nossr50.util.nbt.NBTManager; import com.gmail.nossr50.util.nbt.RawNBT; import org.bukkit.inventory.ItemStack; @@ -11,22 +11,16 @@ import org.bukkit.inventory.ItemStack; */ public class BukkitFactory { - private final mcMMO pluginRef; - - public BukkitFactory(mcMMO pluginRef) { - this.pluginRef = pluginRef; - } - /** * Creates a BukkitMMOItem which contains Bukkit implementations for the type MMOItem * @return a new BukkitMMOItem */ - public MMOItem createItem(String namespaceKey, int amount, RawNBT rawNBT) { + public static MMOItem createItem(String namespaceKey, int amount, RawNBT rawNBT) { return new BukkitMMOItem(namespaceKey, amount, rawNBT); } - public MMOItem createItem(ItemStack itemStack) { - return createItem(itemStack.getType().getKey().toString(), itemStack.getAmount(), new RawNBT(pluginRef.getNbtManager().getNBT(itemStack).toString())); + public static MMOItem createItem(ItemStack itemStack) { + return createItem(itemStack.getType().getKey().toString(), itemStack.getAmount(), new RawNBT(NBTManager.getNBT(itemStack).toString())); } } diff --git a/src/main/java/com/gmail/nossr50/config/ConfigManager.java b/src/main/java/com/gmail/nossr50/config/ConfigManager.java index a57c172bf..599ddfcdb 100644 --- a/src/main/java/com/gmail/nossr50/config/ConfigManager.java +++ b/src/main/java/com/gmail/nossr50/config/ConfigManager.java @@ -58,7 +58,6 @@ import com.gmail.nossr50.datatypes.skills.properties.DamageProperty; import com.gmail.nossr50.datatypes.skills.properties.MaxBonusLevel; import com.gmail.nossr50.datatypes.skills.subskills.taming.TamingSummon; import com.gmail.nossr50.mcMMO; -import com.gmail.nossr50.skills.repair.RepairCost; import com.gmail.nossr50.skills.repair.RepairTransaction; import com.gmail.nossr50.skills.repair.SimpleRepairCost; import com.gmail.nossr50.skills.repair.repairables.Repairable; @@ -262,6 +261,7 @@ public final class ConfigManager { customSerializers.registerType(new TypeToken() {}, new CustomEnumValueSerializer()); customSerializers.registerType(new TypeToken>() {}, new ItemStackSerializer()); customSerializers.registerType(new TypeToken>() {}, new SetSerializer()); + customSerializers.registerType(new TypeToken() {}, new SimpleRepairCostSerializer()); customSerializers.registerType(TypeToken.of(TamingSummon.class), new TamingSummonSerializer()); customSerializers.registerType(TypeToken.of(Repairable.class), new RepairableSerializer()); @@ -277,7 +277,6 @@ public final class ConfigManager { customSerializers.registerType(TypeToken.of(ItemMatch.class), new CustomItemTargetSerializer()); customSerializers.registerType(TypeToken.of(RepairTransaction.class), new RepairTransactionSerializer()); customSerializers.registerType(TypeToken.of(RawNBT.class), new RawNBTSerializer()); - customSerializers.registerType(TypeToken.of(SimpleRepairCost.class), new SimpleRepairCostSerializer()); } /** diff --git a/src/main/java/com/gmail/nossr50/config/hocon/serializers/SimpleRepairCostSerializer.java b/src/main/java/com/gmail/nossr50/config/hocon/serializers/SimpleRepairCostSerializer.java index 824500448..0671cc001 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/serializers/SimpleRepairCostSerializer.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/serializers/SimpleRepairCostSerializer.java @@ -9,20 +9,20 @@ import ninja.leaping.configurate.objectmapping.serialize.TypeSerializer; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; -public class SimpleRepairCostSerializer implements TypeSerializer> { +public class SimpleRepairCostSerializer implements TypeSerializer { private static final String ITEM_MATCH = "Item-Match"; @Nullable @Override - public SimpleRepairCost deserialize(@NonNull TypeToken type, @NonNull ConfigurationNode value) throws ObjectMappingException { + public SimpleRepairCost deserialize(@NonNull TypeToken type, @NonNull ConfigurationNode value) throws ObjectMappingException { ItemMatch itemMatch = value.getNode(ITEM_MATCH).getValue(new TypeToken>() {}); SimpleRepairCost simpleRepairCost = new SimpleRepairCost<>(itemMatch); return simpleRepairCost; } @Override - public void serialize(@NonNull TypeToken type, @Nullable SimpleRepairCost obj, @NonNull ConfigurationNode value) throws ObjectMappingException { + public void serialize(@NonNull TypeToken type, @Nullable SimpleRepairCost obj, @NonNull ConfigurationNode value) throws ObjectMappingException { value.getNode(ITEM_MATCH).setValue(obj.getItemMatch()); } } diff --git a/src/main/java/com/gmail/nossr50/config/hocon/skills/repair/ConfigRepair.java b/src/main/java/com/gmail/nossr50/config/hocon/skills/repair/ConfigRepair.java index 98c8f1d93..b50493271 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/skills/repair/ConfigRepair.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/skills/repair/ConfigRepair.java @@ -6,16 +6,13 @@ import com.gmail.nossr50.config.hocon.skills.repair.repairmastery.ConfigRepairRe import com.gmail.nossr50.config.hocon.skills.repair.subskills.ConfigRepairSubSkills; import com.gmail.nossr50.datatypes.items.BukkitMMOItem; import com.gmail.nossr50.datatypes.items.ItemMatch; -import com.gmail.nossr50.datatypes.items.ItemMatchProperty; import com.gmail.nossr50.datatypes.items.ItemWildcards; -import com.gmail.nossr50.datatypes.permissions.PermissionWrapper; import com.gmail.nossr50.skills.repair.RepairCost; import com.gmail.nossr50.skills.repair.RepairTransaction; import com.gmail.nossr50.skills.repair.SimpleRepairCost; import com.gmail.nossr50.skills.repair.repairables.Repairable; import ninja.leaping.configurate.objectmapping.Setting; import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; -import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import java.util.ArrayList; diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java index 01bf9ea26..61294b0e4 100644 --- a/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/src/main/java/com/gmail/nossr50/mcMMO.java @@ -34,7 +34,6 @@ import com.gmail.nossr50.util.blockmeta.chunkmeta.ChunkManagerFactory; import com.gmail.nossr50.util.commands.CommandRegistrationManager; import com.gmail.nossr50.util.commands.CommandTools; import com.gmail.nossr50.util.experience.FormulaManager; -import com.gmail.nossr50.util.nbt.NBTManager; import com.gmail.nossr50.util.player.NotificationManager; import com.gmail.nossr50.util.player.PlayerLevelTools; import com.gmail.nossr50.util.player.UserManager; @@ -77,7 +76,7 @@ public class mcMMO extends JavaPlugin { private FormulaManager formulaManager; private NotificationManager notificationManager; private CommandRegistrationManager commandRegistrationManager; - private NBTManager nbtManager; +// private NBTManager nbtManager; private WorldGuardManager worldGuardManager; private PartyManager partyManager; private LocaleManager localeManager; @@ -205,7 +204,7 @@ public class mcMMO extends JavaPlugin { commandRegistrationManager = new CommandRegistrationManager(this); commandRegistrationManager.registerCommands(); - nbtManager = new NBTManager(this); +// nbtManager = new NBTManager(); //Init Chunk Manager Factory chunkManagerFactory = new ChunkManagerFactory(this); @@ -443,9 +442,9 @@ public class mcMMO extends JavaPlugin { return databaseManager; } - public NBTManager getNbtManager() { - return nbtManager; - } +// public NBTManager getNbtManager() { +// return nbtManager; +// } @Deprecated public void setDatabaseManager(DatabaseManager newDatabaseManager) { diff --git a/src/main/java/com/gmail/nossr50/skills/repair/RepairCost.java b/src/main/java/com/gmail/nossr50/skills/repair/RepairCost.java index b7d05c4c1..58c667502 100644 --- a/src/main/java/com/gmail/nossr50/skills/repair/RepairCost.java +++ b/src/main/java/com/gmail/nossr50/skills/repair/RepairCost.java @@ -6,14 +6,14 @@ import org.bukkit.inventory.PlayerInventory; /** * Represents one item in a Repair Transaction */ -public interface RepairCost> { +public interface RepairCost { /** * Searches a player inventory for a matching ItemStack that can be used to pay for the repair transaction * @param playerInventory inventory of player attempting to pay the cost * @return any compatible payment items if found, can be null */ - T findPayment(PlayerInventory playerInventory); + ItemMatch findPayment(PlayerInventory playerInventory); /** * Whether or not there is an item that can be used for this repair cost in the player's inventory diff --git a/src/main/java/com/gmail/nossr50/skills/repair/SimpleRepairCost.java b/src/main/java/com/gmail/nossr50/skills/repair/SimpleRepairCost.java index bfc989c7d..baf5c93ee 100644 --- a/src/main/java/com/gmail/nossr50/skills/repair/SimpleRepairCost.java +++ b/src/main/java/com/gmail/nossr50/skills/repair/SimpleRepairCost.java @@ -16,7 +16,7 @@ import org.bukkit.inventory.PlayerInventory; * This type is strictly for use with RepairTransaction, which represents the full cost of a Repair. * @see com.gmail.nossr50.skills.repair.RepairTransaction for more details */ -public class SimpleRepairCost implements RepairCost> { +public class SimpleRepairCost implements RepairCost { private T itemMatch; diff --git a/src/main/java/com/gmail/nossr50/skills/repair/repairables/MultiRepairCost.java b/src/main/java/com/gmail/nossr50/skills/repair/repairables/MultiRepairCost.java index 6b99f0347..37aaa663a 100644 --- a/src/main/java/com/gmail/nossr50/skills/repair/repairables/MultiRepairCost.java +++ b/src/main/java/com/gmail/nossr50/skills/repair/repairables/MultiRepairCost.java @@ -1,41 +1,42 @@ -package com.gmail.nossr50.skills.repair.repairables; - -import com.gmail.nossr50.datatypes.items.ItemMatch; -import com.gmail.nossr50.datatypes.items.ItemWildcards; -import com.gmail.nossr50.datatypes.items.MMOItem; -import com.gmail.nossr50.skills.repair.RepairCost; -import com.gmail.nossr50.skills.repair.SimpleRepairCost; -import org.bukkit.inventory.PlayerInventory; - -import java.util.HashSet; -import java.util.Set; - -public class MultiRepairCost, U extends ItemMatch> implements RepairCost { - - //Multiple potential item matches - private Set> repairCostWildcards; - - public MultiRepairCost(ItemWildcards itemWildcards) { - repairCostWildcards = new HashSet<>(); - for(ItemMatch wildcard : itemWildcards.getItemTargets()) { - SimpleRepairCost simpleRepairCost = new SimpleRepairCost((U)wildcard); - repairCostWildcards.add(simpleRepairCost); - } - } - - @Override - public U findPayment(PlayerInventory playerInventory) { - for(SimpleRepairCost simpleRepairCost : repairCostWildcards) { - if(simpleRepairCost.findPayment(playerInventory) != null) { - return (U) simpleRepairCost.findPayment(playerInventory); - } - } - - return null; - } - - @Override - public boolean hasPayment(PlayerInventory playerInventory) { - return findPayment(playerInventory) != null; - } -} +//package com.gmail.nossr50.skills.repair.repairables; +// +//import com.gmail.nossr50.datatypes.items.ItemMatch; +//import com.gmail.nossr50.datatypes.items.ItemWildcards; +//import com.gmail.nossr50.datatypes.items.MMOItem; +//import com.gmail.nossr50.skills.repair.RepairCost; +//import com.gmail.nossr50.skills.repair.SimpleRepairCost; +//import org.bukkit.inventory.PlayerInventory; +// +//import java.util.HashSet; +//import java.util.Set; +// +////Do we need this? +//public class MultiRepairCost, U extends ItemMatch> implements RepairCost { +// +// //Multiple potential item matches +// private Set> repairCostWildcards; +// +// public MultiRepairCost(ItemWildcards itemWildcards) { +// repairCostWildcards = new HashSet<>(); +// for(ItemMatch wildcard : itemWildcards.getItemTargets()) { +// SimpleRepairCost simpleRepairCost = new SimpleRepairCost((U)wildcard); +// repairCostWildcards.add(simpleRepairCost); +// } +// } +// +// @Override +// public U findPayment(PlayerInventory playerInventory) { +// for(SimpleRepairCost simpleRepairCost : repairCostWildcards) { +// if(simpleRepairCost.findPayment(playerInventory) != null) { +// return (U) simpleRepairCost.findPayment(playerInventory); +// } +// } +// +// return null; +// } +// +// @Override +// public boolean hasPayment(PlayerInventory playerInventory) { +// return findPayment(playerInventory) != null; +// } +//}