From c0685bd1eb8b03ae79e48554c74bbe19dcbdca9e Mon Sep 17 00:00:00 2001 From: nossr50 Date: Tue, 18 Jun 2019 18:07:06 -0700 Subject: [PATCH] PermissionWrapper WIP --- Changelog.txt | 23 +++++++ .../permissions/PermissionWrapper.java | 32 +++++++++ .../nossr50/skills/repair/RepairManager.java | 18 ++--- .../skills/repair/repairables/Repairable.java | 10 +++ src/main/resources/plugin.yml | 66 ------------------- 5 files changed, 74 insertions(+), 75 deletions(-) create mode 100644 src/main/java/com/gmail/nossr50/datatypes/permissions/PermissionWrapper.java diff --git a/Changelog.txt b/Changelog.txt index 348e820c2..044722785 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -12,6 +12,29 @@ Version 2.2.0 Parties no longer have a cap, you can level them forever for bragging rights You can now specify multiple repair-items for an item (such as specifying that a wooden sword can be repaired by all types of planks) Repair no longer consumes materials with item lore, players are informed that they cannot repair with that material if its the only matching repair material in their inventory + Removed the following Repair/Salvage permissions + mcmmo.ability.repair.stonerepair + mcmmo.ability.repair.stringrepair + mcmmo.ability.repair.toolrepair + mcmmo.ability.repair.woodrepair + mcmmo.ability.repair.armorrepair + mcmmo.ability.repair.diamondrepair + mcmmo.ability.repair.goldrepair + mcmmo.ability.repair.ironrepair + mcmmo.ability.repair.leatherrepair + mcmmo.ability.repair.othermaterialrepair + mcmmo.ability.repair.otherrepair + mcmmo.ability.salvage.armorsalvage + mcmmo.ability.salvage.diamondsalvage + mcmmo.ability.salvage.goldsalvage + mcmmo.ability.salvage.ironsalvage + mcmmo.ability.salvage.leathersalvage + mcmmo.ability.salvage.othermaterialsalvage + mcmmo.ability.salvage.othersalvage + mcmmo.ability.salvage.stonesalvage + mcmmo.ability.salvage.stringsalvage + mcmmo.ability.salvage.toolsalvage + mcmmo.ability.salvage.woodsalvage Added new locale string - Repair.NoBasicRepairMatsFound Simplified the config entries for Repairables in the Repair config Repairables in the repair config now use their internal registry key names instead of Bukkit material names diff --git a/src/main/java/com/gmail/nossr50/datatypes/permissions/PermissionWrapper.java b/src/main/java/com/gmail/nossr50/datatypes/permissions/PermissionWrapper.java new file mode 100644 index 000000000..59736f35a --- /dev/null +++ b/src/main/java/com/gmail/nossr50/datatypes/permissions/PermissionWrapper.java @@ -0,0 +1,32 @@ +package com.gmail.nossr50.datatypes.permissions; + +import java.util.Objects; + +public class PermissionWrapper { + private String permissionAddress; + + public PermissionWrapper(String permissionAddress) { + this.permissionAddress = permissionAddress; + } + + public String getPermissionAddress() { + return permissionAddress; + } + + public void setPermissionAddress(String permissionAddress) { + this.permissionAddress = permissionAddress; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (!(o instanceof PermissionWrapper)) return false; + PermissionWrapper that = (PermissionWrapper) o; + return getPermissionAddress().equals(that.getPermissionAddress()); + } + + @Override + public int hashCode() { + return Objects.hash(getPermissionAddress()); + } +} diff --git a/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java b/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java index 44ba4f9c6..7ca2bd29b 100644 --- a/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java +++ b/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java @@ -69,15 +69,15 @@ public class RepairManager extends SkillManager { } // Permissions checks on material and item types - if (!Permissions.repairMaterialType(player, repairable.getRepairItemMaterialCategory())) { - mcMMO.getNotificationManager().sendPlayerInformation(player, NotificationType.NO_PERMISSION, "mcMMO.NoPermission"); - return; - } - - if (!Permissions.repairItemType(player, repairable.getRepairItemType())) { - mcMMO.getNotificationManager().sendPlayerInformation(player, NotificationType.NO_PERMISSION, "mcMMO.NoPermission"); - return; - } +// if (!Permissions.repairMaterialType(player, repairable.getRepairItemMaterialCategory())) { +// mcMMO.getNotificationManager().sendPlayerInformation(player, NotificationType.NO_PERMISSION, "mcMMO.NoPermission"); +// return; +// } +// +// if (!Permissions.repairItemType(player, repairable.getRepairItemType())) { +// mcMMO.getNotificationManager().sendPlayerInformation(player, NotificationType.NO_PERMISSION, "mcMMO.NoPermission"); +// return; +// } int skillLevel = getSkillLevel(); int minimumRepairableLevel = repairable.getMinimumLevel(); diff --git a/src/main/java/com/gmail/nossr50/skills/repair/repairables/Repairable.java b/src/main/java/com/gmail/nossr50/skills/repair/repairables/Repairable.java index fa5a5ea4b..d93780559 100644 --- a/src/main/java/com/gmail/nossr50/skills/repair/repairables/Repairable.java +++ b/src/main/java/com/gmail/nossr50/skills/repair/repairables/Repairable.java @@ -1,5 +1,6 @@ package com.gmail.nossr50.skills.repair.repairables; +import com.gmail.nossr50.datatypes.permissions.PermissionWrapper; import com.gmail.nossr50.skills.repair.RepairTransaction; import com.gmail.nossr50.util.nbt.RawNBT; import org.bukkit.Material; @@ -13,6 +14,7 @@ public class Repairable { private int baseXP; private RawNBT rawNBT; private int repairCount; + private PermissionWrapper permissionWrapper; public Repairable(Material itemMaterial, RepairTransaction repairTransaction, int minimumLevel, int repairCount, int baseXP, RawNBT rawNBT) { this(itemMaterial.getKey().getKey(), repairTransaction, minimumLevel, repairCount, baseXP, false, rawNBT); @@ -34,6 +36,14 @@ public class Repairable { this.rawNBT = rawNBT; } + public PermissionWrapper getPermissionWrapper() { + return permissionWrapper; + } + + public void setPermissionWrapper(PermissionWrapper permissionWrapper) { + this.permissionWrapper = permissionWrapper; + } + public RawNBT getRawNBT() { return rawNBT; } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index a645125cd..cf9ebe3fd 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -445,47 +445,14 @@ permissions: description: Allows access to all Repair abilities children: mcmmo.ability.repair.arcaneforging: true - mcmmo.ability.repair.armorrepair: true - mcmmo.ability.repair.diamondrepair: true - mcmmo.ability.repair.goldrepair: true - mcmmo.ability.repair.ironrepair: true - mcmmo.ability.repair.leatherrepair: true - mcmmo.ability.repair.othermaterialrepair: true - mcmmo.ability.repair.otherrepair: true mcmmo.ability.repair.repairbonus: true mcmmo.ability.repair.repairmastery: true - mcmmo.ability.repair.stonerepair: true - mcmmo.ability.repair.stringrepair: true - mcmmo.ability.repair.toolrepair: true - mcmmo.ability.repair.woodrepair: true mcmmo.ability.repair.arcaneforging: description: Allows access to the Arcane Forging ability - mcmmo.ability.repair.armorrepair: - description: Allows ability to repair armor - mcmmo.ability.repair.diamondrepair: - description: Allows ability to repair Diamond tools & armor - mcmmo.ability.repair.goldrepair: - description: Allows ability to repair Gold tools & armor - mcmmo.ability.repair.ironrepair: - description: Allows ability to repair Iron tools & armor - mcmmo.ability.repair.leatherrepair: - description: Allows ability to repair Leather armor - mcmmo.ability.repair.othermaterialrepair: - description: Allows ability to repair items of material type OTHER - mcmmo.ability.repair.otherrepair: - description: Allows ability to repair items of type OTHER mcmmo.ability.repair.superrepair: description: Allows access to Super Repair bonus mcmmo.ability.repair.repairmastery: description: Allows access to Repair Mastery - mcmmo.ability.repair.stonerepair: - description: Allows ability to repair Stone tools - mcmmo.ability.repair.stringrepair: - description: Allows ability to repair Bow and Fishing rod - mcmmo.ability.repair.toolrepair: - description: Allows ability to repair tools - mcmmo.ability.repair.woodrepair: - description: Allows ability to repair Wood tools mcmmo.ability.salvage.*: default: false description: Allows access to all Salvage abilities @@ -496,43 +463,10 @@ permissions: children: mcmmo.ability.salvage.advancedsalvage: true mcmmo.ability.salvage.arcanesalvage: true - mcmmo.ability.salvage.armorsalvage: true - mcmmo.ability.salvage.diamondsalvage: true - mcmmo.ability.salvage.goldsalvage: true - mcmmo.ability.salvage.ironsalvage: true - mcmmo.ability.salvage.leathersalvage: true - mcmmo.ability.salvage.othermaterialsalvage: true - mcmmo.ability.salvage.othersalvage: true - mcmmo.ability.salvage.stonesalvage: true - mcmmo.ability.salvage.stringsalvage: true - mcmmo.ability.salvage.toolsalvage: true - mcmmo.ability.salvage.woodsalvage: true mcmmo.ability.salvage.advancedsalvage: description: Allows access to the Advanced Salvage ability mcmmo.ability.salvage.arcanesalvage: description: Allows access to the Arcane Salvage ability - mcmmo.ability.salvage.armorsalvage: - description: Allows ability to salvage armor - mcmmo.ability.salvage.diamondsalvage: - description: Allows ability to salvage Diamond tools & armor - mcmmo.ability.salvage.goldsalvage: - description: Allows ability to salvage Gold tools & armor - mcmmo.ability.salvage.ironsalvage: - description: Allows ability to salvage Iron tools & armor - mcmmo.ability.salvage.leathersalvage: - description: Allows ability to salvage Leather armor - mcmmo.ability.salvage.othermaterialsalvage: - description: Allows ability to salvage items of material type OTHER - mcmmo.ability.salvage.othersalvage: - description: Allows ability to salvage items of type OTHER - mcmmo.ability.salvage.stonesalvage: - description: Allows ability to salvage Stone tools - mcmmo.ability.salvage.stringsalvage: - description: Allows ability to salvage Bow and Fishing rod - mcmmo.ability.salvage.toolsalvage: - description: Allows ability to salvage tools - mcmmo.ability.salvage.woodsalvage: - description: Allows ability to salvage Wood tools mcmmo.ability.smelting.*: default: false description: Allows access to all Smelting abilities