Просмотр исходного кода

NBT Manager will be a static abusing class for now

nossr50 5 лет назад
Родитель
Сommit
df6386ec2f

+ 4 - 10
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()));
     }
 
 }

+ 1 - 2
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<FormulaType>() {}, new CustomEnumValueSerializer());
         customSerializers.registerType(new TypeToken<MMOItem<?>>() {}, new ItemStackSerializer());
         customSerializers.registerType(new TypeToken<Set<?>>() {}, new SetSerializer());
+        customSerializers.registerType(new TypeToken<SimpleRepairCost>() {}, 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());
     }
 
     /**

+ 3 - 3
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<SimpleRepairCost<?>> {
+public class SimpleRepairCostSerializer implements TypeSerializer<SimpleRepairCost> {
 
     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<ItemMatch<?>>() {});
         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());
     }
 }

+ 0 - 3
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;

+ 5 - 6
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) {

+ 2 - 2
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<T extends ItemMatch<?>> {
+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

+ 1 - 1
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<T extends ItemMatch> implements RepairCost<ItemMatch<?>> {
+public class SimpleRepairCost<T extends ItemMatch> implements RepairCost {
 
     private T itemMatch;
 

+ 42 - 41
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<T extends MMOItem<T>, U extends ItemMatch<T>> implements RepairCost<U> {
-
-    //Multiple potential item matches
-    private Set<SimpleRepairCost<U>> repairCostWildcards;
-
-    public MultiRepairCost(ItemWildcards<T> itemWildcards) {
-        repairCostWildcards = new HashSet<>();
-        for(ItemMatch<T> wildcard : itemWildcards.getItemTargets()) {
-            SimpleRepairCost<U> simpleRepairCost = new SimpleRepairCost<U>((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<T extends MMOItem<T>, U extends ItemMatch<T>> implements RepairCost {
+//
+//    //Multiple potential item matches
+//    private Set<SimpleRepairCost<U>> repairCostWildcards;
+//
+//    public MultiRepairCost(ItemWildcards<T> itemWildcards) {
+//        repairCostWildcards = new HashSet<>();
+//        for(ItemMatch<T> wildcard : itemWildcards.getItemTargets()) {
+//            SimpleRepairCost<U> simpleRepairCost = new SimpleRepairCost<U>((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;
+//    }
+//}