mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 06:36:45 +01:00
NBT Manager will be a static abusing class for now
This commit is contained in:
parent
f1de5484ec
commit
df6386ec2f
@ -2,7 +2,7 @@ package com.gmail.nossr50.bukkit;
|
|||||||
|
|
||||||
import com.gmail.nossr50.datatypes.items.BukkitMMOItem;
|
import com.gmail.nossr50.datatypes.items.BukkitMMOItem;
|
||||||
import com.gmail.nossr50.datatypes.items.MMOItem;
|
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 com.gmail.nossr50.util.nbt.RawNBT;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
@ -11,22 +11,16 @@ import org.bukkit.inventory.ItemStack;
|
|||||||
*/
|
*/
|
||||||
public class BukkitFactory {
|
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
|
* Creates a BukkitMMOItem which contains Bukkit implementations for the type MMOItem
|
||||||
* @return a new BukkitMMOItem
|
* @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);
|
return new BukkitMMOItem(namespaceKey, amount, rawNBT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MMOItem<?> createItem(ItemStack itemStack) {
|
public static MMOItem<?> createItem(ItemStack itemStack) {
|
||||||
return createItem(itemStack.getType().getKey().toString(), itemStack.getAmount(), new RawNBT(pluginRef.getNbtManager().getNBT(itemStack).toString()));
|
return createItem(itemStack.getType().getKey().toString(), itemStack.getAmount(), new RawNBT(NBTManager.getNBT(itemStack).toString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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.properties.MaxBonusLevel;
|
||||||
import com.gmail.nossr50.datatypes.skills.subskills.taming.TamingSummon;
|
import com.gmail.nossr50.datatypes.skills.subskills.taming.TamingSummon;
|
||||||
import com.gmail.nossr50.mcMMO;
|
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.RepairTransaction;
|
||||||
import com.gmail.nossr50.skills.repair.SimpleRepairCost;
|
import com.gmail.nossr50.skills.repair.SimpleRepairCost;
|
||||||
import com.gmail.nossr50.skills.repair.repairables.Repairable;
|
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<FormulaType>() {}, new CustomEnumValueSerializer());
|
||||||
customSerializers.registerType(new TypeToken<MMOItem<?>>() {}, new ItemStackSerializer());
|
customSerializers.registerType(new TypeToken<MMOItem<?>>() {}, new ItemStackSerializer());
|
||||||
customSerializers.registerType(new TypeToken<Set<?>>() {}, new SetSerializer());
|
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(TamingSummon.class), new TamingSummonSerializer());
|
||||||
customSerializers.registerType(TypeToken.of(Repairable.class), new RepairableSerializer());
|
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(ItemMatch.class), new CustomItemTargetSerializer());
|
||||||
customSerializers.registerType(TypeToken.of(RepairTransaction.class), new RepairTransactionSerializer());
|
customSerializers.registerType(TypeToken.of(RepairTransaction.class), new RepairTransactionSerializer());
|
||||||
customSerializers.registerType(TypeToken.of(RawNBT.class), new RawNBTSerializer());
|
customSerializers.registerType(TypeToken.of(RawNBT.class), new RawNBTSerializer());
|
||||||
customSerializers.registerType(TypeToken.of(SimpleRepairCost.class), new SimpleRepairCostSerializer());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -9,20 +9,20 @@ import ninja.leaping.configurate.objectmapping.serialize.TypeSerializer;
|
|||||||
import org.checkerframework.checker.nullness.qual.NonNull;
|
import org.checkerframework.checker.nullness.qual.NonNull;
|
||||||
import org.checkerframework.checker.nullness.qual.Nullable;
|
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";
|
private static final String ITEM_MATCH = "Item-Match";
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@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<?>>() {});
|
ItemMatch<?> itemMatch = value.getNode(ITEM_MATCH).getValue(new TypeToken<ItemMatch<?>>() {});
|
||||||
SimpleRepairCost<?> simpleRepairCost = new SimpleRepairCost<>(itemMatch);
|
SimpleRepairCost<?> simpleRepairCost = new SimpleRepairCost<>(itemMatch);
|
||||||
return simpleRepairCost;
|
return simpleRepairCost;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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());
|
value.getNode(ITEM_MATCH).setValue(obj.getItemMatch());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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.config.hocon.skills.repair.subskills.ConfigRepairSubSkills;
|
||||||
import com.gmail.nossr50.datatypes.items.BukkitMMOItem;
|
import com.gmail.nossr50.datatypes.items.BukkitMMOItem;
|
||||||
import com.gmail.nossr50.datatypes.items.ItemMatch;
|
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.items.ItemWildcards;
|
||||||
import com.gmail.nossr50.datatypes.permissions.PermissionWrapper;
|
|
||||||
import com.gmail.nossr50.skills.repair.RepairCost;
|
import com.gmail.nossr50.skills.repair.RepairCost;
|
||||||
import com.gmail.nossr50.skills.repair.RepairTransaction;
|
import com.gmail.nossr50.skills.repair.RepairTransaction;
|
||||||
import com.gmail.nossr50.skills.repair.SimpleRepairCost;
|
import com.gmail.nossr50.skills.repair.SimpleRepairCost;
|
||||||
import com.gmail.nossr50.skills.repair.repairables.Repairable;
|
import com.gmail.nossr50.skills.repair.repairables.Repairable;
|
||||||
import ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -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.CommandRegistrationManager;
|
||||||
import com.gmail.nossr50.util.commands.CommandTools;
|
import com.gmail.nossr50.util.commands.CommandTools;
|
||||||
import com.gmail.nossr50.util.experience.FormulaManager;
|
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.NotificationManager;
|
||||||
import com.gmail.nossr50.util.player.PlayerLevelTools;
|
import com.gmail.nossr50.util.player.PlayerLevelTools;
|
||||||
import com.gmail.nossr50.util.player.UserManager;
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
@ -77,7 +76,7 @@ public class mcMMO extends JavaPlugin {
|
|||||||
private FormulaManager formulaManager;
|
private FormulaManager formulaManager;
|
||||||
private NotificationManager notificationManager;
|
private NotificationManager notificationManager;
|
||||||
private CommandRegistrationManager commandRegistrationManager;
|
private CommandRegistrationManager commandRegistrationManager;
|
||||||
private NBTManager nbtManager;
|
// private NBTManager nbtManager;
|
||||||
private WorldGuardManager worldGuardManager;
|
private WorldGuardManager worldGuardManager;
|
||||||
private PartyManager partyManager;
|
private PartyManager partyManager;
|
||||||
private LocaleManager localeManager;
|
private LocaleManager localeManager;
|
||||||
@ -205,7 +204,7 @@ public class mcMMO extends JavaPlugin {
|
|||||||
commandRegistrationManager = new CommandRegistrationManager(this);
|
commandRegistrationManager = new CommandRegistrationManager(this);
|
||||||
commandRegistrationManager.registerCommands();
|
commandRegistrationManager.registerCommands();
|
||||||
|
|
||||||
nbtManager = new NBTManager(this);
|
// nbtManager = new NBTManager();
|
||||||
|
|
||||||
//Init Chunk Manager Factory
|
//Init Chunk Manager Factory
|
||||||
chunkManagerFactory = new ChunkManagerFactory(this);
|
chunkManagerFactory = new ChunkManagerFactory(this);
|
||||||
@ -443,9 +442,9 @@ public class mcMMO extends JavaPlugin {
|
|||||||
return databaseManager;
|
return databaseManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public NBTManager getNbtManager() {
|
// public NBTManager getNbtManager() {
|
||||||
return nbtManager;
|
// return nbtManager;
|
||||||
}
|
// }
|
||||||
|
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public void setDatabaseManager(DatabaseManager newDatabaseManager) {
|
public void setDatabaseManager(DatabaseManager newDatabaseManager) {
|
||||||
|
@ -6,14 +6,14 @@ import org.bukkit.inventory.PlayerInventory;
|
|||||||
/**
|
/**
|
||||||
* Represents one item in a Repair Transaction
|
* 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
|
* 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
|
* @param playerInventory inventory of player attempting to pay the cost
|
||||||
* @return any compatible payment items if found, can be null
|
* @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
|
* Whether or not there is an item that can be used for this repair cost in the player's inventory
|
||||||
|
@ -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.
|
* 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
|
* @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;
|
private T itemMatch;
|
||||||
|
|
||||||
|
@ -1,41 +1,42 @@
|
|||||||
package com.gmail.nossr50.skills.repair.repairables;
|
//package com.gmail.nossr50.skills.repair.repairables;
|
||||||
|
//
|
||||||
import com.gmail.nossr50.datatypes.items.ItemMatch;
|
//import com.gmail.nossr50.datatypes.items.ItemMatch;
|
||||||
import com.gmail.nossr50.datatypes.items.ItemWildcards;
|
//import com.gmail.nossr50.datatypes.items.ItemWildcards;
|
||||||
import com.gmail.nossr50.datatypes.items.MMOItem;
|
//import com.gmail.nossr50.datatypes.items.MMOItem;
|
||||||
import com.gmail.nossr50.skills.repair.RepairCost;
|
//import com.gmail.nossr50.skills.repair.RepairCost;
|
||||||
import com.gmail.nossr50.skills.repair.SimpleRepairCost;
|
//import com.gmail.nossr50.skills.repair.SimpleRepairCost;
|
||||||
import org.bukkit.inventory.PlayerInventory;
|
//import org.bukkit.inventory.PlayerInventory;
|
||||||
|
//
|
||||||
import java.util.HashSet;
|
//import java.util.HashSet;
|
||||||
import java.util.Set;
|
//import java.util.Set;
|
||||||
|
//
|
||||||
public class MultiRepairCost<T extends MMOItem<T>, U extends ItemMatch<T>> implements RepairCost<U> {
|
////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;
|
// //Multiple potential item matches
|
||||||
|
// private Set<SimpleRepairCost<U>> repairCostWildcards;
|
||||||
public MultiRepairCost(ItemWildcards<T> itemWildcards) {
|
//
|
||||||
repairCostWildcards = new HashSet<>();
|
// public MultiRepairCost(ItemWildcards<T> itemWildcards) {
|
||||||
for(ItemMatch<T> wildcard : itemWildcards.getItemTargets()) {
|
// repairCostWildcards = new HashSet<>();
|
||||||
SimpleRepairCost<U> simpleRepairCost = new SimpleRepairCost<U>((U)wildcard);
|
// for(ItemMatch<T> wildcard : itemWildcards.getItemTargets()) {
|
||||||
repairCostWildcards.add(simpleRepairCost);
|
// SimpleRepairCost<U> simpleRepairCost = new SimpleRepairCost<U>((U)wildcard);
|
||||||
}
|
// repairCostWildcards.add(simpleRepairCost);
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
@Override
|
//
|
||||||
public U findPayment(PlayerInventory playerInventory) {
|
// @Override
|
||||||
for(SimpleRepairCost simpleRepairCost : repairCostWildcards) {
|
// public U findPayment(PlayerInventory playerInventory) {
|
||||||
if(simpleRepairCost.findPayment(playerInventory) != null) {
|
// for(SimpleRepairCost simpleRepairCost : repairCostWildcards) {
|
||||||
return (U) simpleRepairCost.findPayment(playerInventory);
|
// if(simpleRepairCost.findPayment(playerInventory) != null) {
|
||||||
}
|
// return (U) simpleRepairCost.findPayment(playerInventory);
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
return null;
|
//
|
||||||
}
|
// return null;
|
||||||
|
// }
|
||||||
@Override
|
//
|
||||||
public boolean hasPayment(PlayerInventory playerInventory) {
|
// @Override
|
||||||
return findPayment(playerInventory) != null;
|
// public boolean hasPayment(PlayerInventory playerInventory) {
|
||||||
}
|
// return findPayment(playerInventory) != null;
|
||||||
}
|
// }
|
||||||
|
//}
|
||||||
|
Loading…
Reference in New Issue
Block a user