mcMMO-Dev / mcMMO

The RPG Lover's Mod!
https://mcmmo.org
GNU General Public License v3.0
1.01k stars 865 forks source link

Bug: Repair skill will always recover 50% of its max durability without any sub skill. #3919

Closed LazyGon closed 5 years ago

LazyGon commented 5 years ago

The title means, repair skill will always require 2 material to repair item completely. This will make Repair Mastery meaningless because Super Repair with max rank will recover full durability. I think recovered durability per one repairing should be 1 / (amount of material to craft). Bukkit.getRecipeFor(ItemStack item) might be useful to get how many materials are used for repaired item in repair.vanilla.yml (I wrote above is implementation of mcMMO classic)

server version: Paper version git-Paper-616 (MC: 1.13.2) (Implementing API version 1.13.2-R0.1-SNAPSHOT) mcMMO version: 2.1.52

nossr50 commented 5 years ago

Post the values of your repair config at paste.gg

LazyGon commented 5 years ago

repair.vanilla.yml https://paste.gg/p/anonymous/7899419dd35a4ebeb9170de21298ff2e

advanced.yml https://paste.gg/p/anonymous/9863a3be93564553a61a536d4efca9c4

note: I'm using retro mode.

by the way, why numbers in repair.vanilla.yml are invalid by default? (like .25) typo? salvage.vanilla.yml also includes those invalid numbers.

LazyGon commented 5 years ago

In RepairConfig.java: int minimumQuantity = (itemMaterial != null ? SkillUtils.getRepairAndSalvageQuantities(new ItemStack(itemMaterial), repairMaterial, repairMetadata) : config.getInt("Repairables." + key + ".MinimumQuantity", 2)); This part may be cause of this issue. If config has no setting of minimum quantity, amount of needed material should always be 2 (This is said in config, but I did not notice it untill I found the part of source cord above :p).

I think repair.vanilla.yml Should have the section of MinimumQuantity by default with setting I wrote first.

I added repair.vanilla.yml "MinimumQuantity: x", then this bug resolved. Sorry for my stupid overlooking.