mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-07-25 16:45:28 +02:00
Lets generify some of this stuff
This commit is contained in:
@@ -8,6 +8,7 @@ import org.bukkit.inventory.PlayerInventory;
|
||||
*/
|
||||
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
|
||||
|
@@ -22,8 +22,8 @@ import java.util.HashSet;
|
||||
public class RepairTransaction {
|
||||
private HashSet<RepairCost> repairCosts;
|
||||
|
||||
public RepairTransaction() {
|
||||
repairCosts = new HashSet<>();
|
||||
public RepairTransaction(HashSet<RepairCost> repairCosts) {
|
||||
this.repairCosts = repairCosts;
|
||||
}
|
||||
|
||||
public void addRepairCost(RepairCost repairCost) {
|
||||
|
@@ -1,11 +1,13 @@
|
||||
package com.gmail.nossr50.skills.repair;
|
||||
|
||||
import com.gmail.nossr50.datatypes.items.BukkitMMOItem;
|
||||
import com.gmail.nossr50.datatypes.items.CustomItemTarget;
|
||||
import com.gmail.nossr50.datatypes.items.ItemMatch;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.PlayerInventory;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Implementation of RepairCost
|
||||
*
|
||||
@@ -15,12 +17,12 @@ 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<T extends ItemMatch> implements RepairCost {
|
||||
|
||||
private CustomItemTarget desiredItemTarget;
|
||||
private T itemMatch;
|
||||
|
||||
public SimpleRepairCost(CustomItemTarget customItemTarget) {
|
||||
this.desiredItemTarget = customItemTarget;
|
||||
public SimpleRepairCost(T customItemTarget) {
|
||||
this.itemMatch = customItemTarget;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -31,14 +33,31 @@ public class SimpleRepairCost implements RepairCost {
|
||||
|
||||
BukkitMMOItem playerInventoryItem = new BukkitMMOItem(itemStack);
|
||||
|
||||
//TODO:
|
||||
//TODO:
|
||||
//TODO:
|
||||
//TODO:
|
||||
//TODO: Write the code that compares playerInventoryItem with the <T extends itemMatch>
|
||||
//TODO:
|
||||
//TODO:
|
||||
//TODO:
|
||||
//TODO:
|
||||
//TODO:
|
||||
//TODO:
|
||||
//TODO:
|
||||
|
||||
//If the item matches return it
|
||||
if(desiredItemTarget.isMatch(playerInventoryItem))
|
||||
if(itemMatch.isMatch(playerInventoryItem))
|
||||
return itemStack;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public ItemMatch getItemMatch() {
|
||||
return itemMatch;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPayment(PlayerInventory playerInventory) {
|
||||
return findPayment(playerInventory) != null;
|
||||
|
@@ -1,27 +1,25 @@
|
||||
package com.gmail.nossr50.skills.repair.repairables;
|
||||
|
||||
import com.gmail.nossr50.datatypes.items.CustomItemTarget;
|
||||
import com.gmail.nossr50.datatypes.items.ItemMatch;
|
||||
import com.gmail.nossr50.datatypes.permissions.PermissionWrapper;
|
||||
import com.gmail.nossr50.skills.repair.RepairTransaction;
|
||||
import com.gmail.nossr50.util.nbt.RawNBT;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class Repairable {
|
||||
private int minimumLevel;
|
||||
private short maximumDurability;
|
||||
private RepairTransaction repairTransaction;
|
||||
private int baseXP;
|
||||
private CustomItemTarget customItemTarget;
|
||||
private ItemMatch itemMatch;
|
||||
private int repairCount;
|
||||
private PermissionWrapper permissionWrapper;
|
||||
private boolean hasPermission = false;
|
||||
|
||||
public Repairable(CustomItemTarget customItemTarget, int minimumLevel, short maximumDurability, RepairTransaction repairTransaction, int baseXP, int repairCount, PermissionWrapper permissionWrapper) {
|
||||
public Repairable(ItemMatch itemMatch, int minimumLevel, short maximumDurability, RepairTransaction repairTransaction, int baseXP, int repairCount, PermissionWrapper permissionWrapper) {
|
||||
this.minimumLevel = minimumLevel;
|
||||
this.maximumDurability = maximumDurability;
|
||||
this.repairTransaction = repairTransaction;
|
||||
this.baseXP = baseXP;
|
||||
this.customItemTarget = customItemTarget;
|
||||
this.itemMatch = itemMatch;
|
||||
this.repairCount = repairCount;
|
||||
this.permissionWrapper = permissionWrapper;
|
||||
|
||||
@@ -61,12 +59,12 @@ public class Repairable {
|
||||
this.baseXP = baseXP;
|
||||
}
|
||||
|
||||
public CustomItemTarget getCustomItemTarget() {
|
||||
return customItemTarget;
|
||||
public ItemMatch getItemMatch() {
|
||||
return itemMatch;
|
||||
}
|
||||
|
||||
public void setCustomItemTarget(CustomItemTarget customItemTarget) {
|
||||
this.customItemTarget = customItemTarget;
|
||||
public void setItemMatch(ItemMatch itemMatch) {
|
||||
this.itemMatch = itemMatch;
|
||||
}
|
||||
|
||||
public int getRepairCount() {
|
||||
|
@@ -1,10 +1,8 @@
|
||||
package com.gmail.nossr50.skills.repair.repairables;
|
||||
|
||||
import com.gmail.nossr50.datatypes.items.CustomItemTarget;
|
||||
import com.gmail.nossr50.datatypes.items.ItemMatch;
|
||||
import com.gmail.nossr50.datatypes.permissions.PermissionWrapper;
|
||||
import com.gmail.nossr50.skills.repair.RepairTransaction;
|
||||
import com.gmail.nossr50.util.nbt.RawNBT;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class RepairableBuilder {
|
||||
|
||||
@@ -12,12 +10,12 @@ public class RepairableBuilder {
|
||||
private short maximumDurability;
|
||||
private RepairTransaction repairTransaction;
|
||||
private int baseXP;
|
||||
private CustomItemTarget customItemTarget;
|
||||
private ItemMatch itemMatch;
|
||||
private int repairCount;
|
||||
private PermissionWrapper permissionWrapper;
|
||||
|
||||
public RepairableBuilder(CustomItemTarget customItemTarget, Short maximumDurability, RepairTransaction repairTransaction) {
|
||||
this.customItemTarget = customItemTarget;
|
||||
public RepairableBuilder(ItemMatch itemMatch, Short maximumDurability, RepairTransaction repairTransaction) {
|
||||
this.itemMatch = itemMatch;
|
||||
this.maximumDurability = maximumDurability;
|
||||
this.repairTransaction = repairTransaction;
|
||||
}
|
||||
@@ -57,7 +55,7 @@ public class RepairableBuilder {
|
||||
}
|
||||
|
||||
private Repairable makeRepairable() {
|
||||
Repairable repairable = new Repairable(customItemTarget, minimumLevel, maximumDurability, repairTransaction,
|
||||
Repairable repairable = new Repairable(itemMatch, minimumLevel, maximumDurability, repairTransaction,
|
||||
baseXP, repairCount, permissionWrapper);
|
||||
|
||||
return repairable;
|
||||
|
Reference in New Issue
Block a user