Skip to content

Changes

Started 11 hr ago
Took 4 min 1 sec on Builder

Summary

  1. Add alchemy unit test coverage and tidy alchemy internals (commit: e53f74c) (details)
  2. Fix potion matching failing when custom effect order differs (commit: 406422a) (details)
  3. Fix brewing stand ingredient transfers using the wrong stack limit (commit: 71bad6a) (details)
  4. Add archery unit test coverage (commit: d3d5281) (details)
  5. Add crossbows unit test coverage (commit: 9f0afd6) (details)
  6. Add spears unit test coverage (commit: a3f6e55) (details)
  7. Add taming unit test coverage (commit: c9ac140) (details)
  8. Fix Holy Hound gating on the wrong subskill unlock (commit: c72abd1) (details)
  9. Add mining unit test coverage (commit: a95ebfb) (details)
  10. Add swords unit test coverage (commit: ff43517) (details)
  11. Add axes unit test coverage (commit: 41d1dad) (details)
  12. Add unarmed unit test coverage (commit: 1b44bb5) (details)
  13. Add excavation unit test coverage (commit: d5390b6) (details)
  14. Add maces unit test coverage (commit: adc1a10) (details)
  15. Add smelting unit test coverage (commit: 2c917cb) (details)
  16. Add repair unit test coverage (commit: 646f831) (details)
  17. Add salvage unit test coverage (commit: c5554a5) (details)
  18. Add herbalism ability unit test coverage (commit: cc392fa) (details)
  19. Add woodcutting gate and Clean Cuts unit test coverage (commit: 580bc40) (details)
  20. Add acrobatics gate and throttle unit test coverage (commit: d0214f1) (details)
  21. Widen statistical tolerance in probability expectation tests (commit: c25b48e) (details)
  22. Add fishing enchantment unit test coverage (commit: 0bf608a) (details)
Commit e53f74c2751dbcb5d0ecd5bf958088e35e18649d by nossr50
Add alchemy unit test coverage and tidy alchemy internals

Covers the Catalysis brew speed curve, Concoctions tier plumbing,
potion stage math, brew and ingredient validation, finishBrewing,
the disable-time brew flush, and the vanilla-brew race handler.

Cleanup while in the area: clearer calculateBrewSpeed, removal of a
duplicated base-potion-type check and an always-false brew guard,
stale debug comment removal, and final locals.
(commit: e53f74c)
The file was addedsrc/test/java/com/gmail/nossr50/skills/alchemy/AlchemyPotionBrewerTest.java
The file was modifiedsrc/main/java/com/gmail/nossr50/datatypes/skills/alchemy/AlchemyPotion.java (diff)
The file was addedsrc/test/java/com/gmail/nossr50/datatypes/skills/alchemy/PotionStageTest.java
The file was addedsrc/test/java/com/gmail/nossr50/listeners/InventoryListenerBrewTest.java
The file was addedsrc/test/java/com/gmail/nossr50/skills/alchemy/AlchemyManagerTest.java
The file was modifiedsrc/main/java/com/gmail/nossr50/skills/alchemy/AlchemyManager.java (diff)
The file was modifiedsrc/main/java/com/gmail/nossr50/skills/alchemy/AlchemyPotionBrewer.java (diff)
The file was addedsrc/test/java/com/gmail/nossr50/skills/alchemy/AlchemyTest.java
Commit 406422a554449d4456e7a8dbd7062827b58267db by nossr50
Fix potion matching failing when custom effect order differs

Custom effects were compared by list index, so two potions carrying
identical effects in a different order were treated as different
potions and the brew silently failed. Effects are now matched by
type, amplifier, and duration regardless of order.
(commit: 406422a)
The file was modifiedsrc/main/java/com/gmail/nossr50/datatypes/skills/alchemy/AlchemyPotion.java (diff)
The file was addedsrc/test/java/com/gmail/nossr50/datatypes/skills/alchemy/AlchemyPotionTest.java
The file was modifiedChangelog.txt (diff)
Commit 71bad6a743390854fe28bf636b9329756810e76e by nossr50
Fix brewing stand ingredient transfers using the wrong stack limit

Shift-right-click transfers checked the source stack against the max
stack size instead of the ingredient slot, so a full source stack was
wrongly refused while a full ingredient slot happily grew past the
stack limit. Room is now judged by the destination stack, using the
component-aware ItemStack#getMaxStackSize.
(commit: 71bad6a)
The file was addedsrc/test/java/com/gmail/nossr50/skills/alchemy/AlchemyPotionBrewerTransferTest.java
The file was modifiedsrc/main/java/com/gmail/nossr50/skills/alchemy/AlchemyPotionBrewer.java (diff)
The file was modifiedChangelog.txt (diff)
Commit d3d52819267ca965f96d969a996306123da3fe4c by nossr50
Add archery unit test coverage

Covers the Skill Shot damage math and its max bonus cap, the arrow
tracker and its periodic invalid-entity cleanup, ability gates, the
distance XP multiplier (including the 50-block cap and cross-world
guards), and both Daze branches: the Paper lookAt path and the
Spigot scheduled-teleport path with its stale-world guard.

Minor cleanup: final locals and a line wrap in the Archery helpers.
(commit: d3d5281)
The file was modifiedsrc/main/java/com/gmail/nossr50/skills/archery/ArcheryManager.java (diff)
The file was addedsrc/test/java/com/gmail/nossr50/skills/archery/ArcheryTest.java
The file was modifiedsrc/main/java/com/gmail/nossr50/skills/archery/Archery.java (diff)
The file was addedsrc/test/java/com/gmail/nossr50/skills/archery/ArcheryManagerTest.java
Commit 9f0afd6151e38136e52adba9b1a21315107f2665 by nossr50
Add crossbows unit test coverage

Covers the Trick Shot ricochet end to end: crossbow and permission
gates, the bounce budget from the subskill rank, the head-on
rejection window (first bounce only), the reflected arrow spawn with
its copied combat state, tipped-arrow potion state, infinite-arrow
pickup denial, and the hit routing that feeds it. Also covers the
Powered Shot damage math and its activation gate.

Minor cleanup: final locals and a corrected comment on the ricochet
angle check.
(commit: 9f0afd6)
The file was addedsrc/test/java/com/gmail/nossr50/skills/crossbows/CrossbowsManagerTest.java
The file was addedsrc/test/java/com/gmail/nossr50/skills/crossbows/CrossbowsTest.java
The file was modifiedsrc/main/java/com/gmail/nossr50/skills/crossbows/CrossbowsManager.java (diff)
Commit a3f6e55adaf5dae01d21ad19a931c7a761314922 by nossr50
Add spears unit test coverage

Covers Momentum end to end: the lazy speed effect type resolution
and its fail-fast when the registry lacks it, attack-strength-scaled
activation odds with the full-strength clamp, the guard that never
downgrades a stronger or longer existing swiftness buff, permission
gating, and the buff application itself. Also covers the Momentum
duration curve and the Spear Mastery bonus damage math.

The tests bootstrap Bukkit Registry and PotionEffectType with mocks
minted during their own static initialization, which makes
registry-backed effect types mockable off-server.

Minor cleanup: final locals and a clarified odds comment.
(commit: a3f6e55)
The file was addedsrc/test/java/com/gmail/nossr50/skills/spears/SpearsManagerTest.java
The file was modifiedsrc/main/java/com/gmail/nossr50/skills/spears/SpearsManager.java (diff)
Commit c9ac1407f2e5898ff47370a5a2e66aaf35c2287c by nossr50
Add taming unit test coverage

Covers the static Taming helpers (damage prevention gate, Thick Fur,
Shock Proof, Holy Hound healing clamps, summon failure messages),
taming XP with its cancellable event, Fast Food Service healing,
Gore and Sharpened Claws damage math, Pummel knockback and its
notifications, Environmentally Aware rescue teleports, Beast Lore
messages including horse stats and the llama exclusion, the Call of
the Wild summon flow (cost, cap, throttle, permission and item
gates, wolf setup and tracking), and the tracked summon lifecycle.
(commit: c9ac140)
The file was addedsrc/test/java/com/gmail/nossr50/skills/taming/TrackedTamingEntityTest.java
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/taming/TamingManagerTest.java (diff)
The file was addedsrc/test/java/com/gmail/nossr50/skills/taming/TamingTest.java
Commit c72abd1a0c70dca848c592475c2be3098892ec6f by nossr50
Fix Holy Hound gating on the wrong subskill unlock

Holy Hound checked Environmentally Aware's unlock level, so wolves
were healed by magic and poison from Taming level 10 instead of the
level 35 the skill guides advertise. It now gates on its own rank.
(commit: c72abd1)
The file was modifiedChangelog.txt (diff)
The file was modifiedsrc/main/java/com/gmail/nossr50/skills/taming/TamingManager.java (diff)
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/taming/TamingManagerTest.java (diff)
Commit a95ebfb2f1b52efaf9fee84387a8e2d892ed9704 by nossr50
Add mining unit test coverage

Covers miningBlockCheck end to end (XP, permission and config gates,
silk touch handling, Super Breaker durability and triple drops,
Mother Lode with its double-drop fallback), the remote detonation
gate and flow (cooldown warning, instant TNT priming, denied fake
breaks), blast mining drop processing (yield rolls, bonus drop
tiers, debris rolls, illegal drops), the blast modifiers and drop
multiplier tiers, the Demolitions Expertise and Bigger Bombs unlock
scans, and the PVP blast damage cap and owner damage reduction.

Extracts the registry bootstrap proven in the spears tests into a
shared TestRegistryBootstrap that mints per-type registry mocks, so
Enchantment and PotionEffectType are both safely mockable off-server
regardless of suite order.

Minor cleanup: corrected five copy-pasted javadocs on the blast
modifier getters.
(commit: a95ebfb)
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/mining/BlastMiningTest.java (diff)
The file was modifiedsrc/main/java/com/gmail/nossr50/skills/mining/MiningManager.java (diff)
The file was addedsrc/test/java/com/gmail/nossr50/TestRegistryBootstrap.java
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/mining/MiningManagerTest.java (diff)
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/spears/SpearsManagerTest.java (diff)
Commit ff435173ce4390d5b0da368f2f1a8da86498efed by nossr50
Add swords unit test coverage

Covers the ability gates (readied sword, living-attacker counter
gate, active super ability), the Rupture flow (refresh instead of
re-roll, blocking defenders, bleed task scheduling and defender
notification), Stab damage scaling, Counter Attack reflection with
its notifications, and Serrated Strikes AoE damage reduction.
(commit: ff43517)
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/swords/SwordsManagerTest.java (diff)
Commit 41d1dadccc4e3898bc12f860155ac426e6d33a2a by nossr50
Add axes unit test coverage

Covers the ability gates including the armored/naked target split
between Armor Impact and Greater Impact, Axe Mastery scaling, the
Critical Hit PVP path with its notifications, Impact armor
durability damage and its no-equipment guard, the Greater Impact
knockback and bonus damage payout, and the armor detection helper.
Also adds save/restore hygiene for the Axes static modifiers the
existing tests mutated.
(commit: 41d1dad)
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/axes/AxesManagerTest.java (diff)
Commit 1b44bb55a8f302c746d24d97eb65ceb997cce2f8 by nossr50
Add unarmed unit test coverage

Covers the ability gates (armed-player disarm targets, empty-fist
arrow deflect, active Berserk, readied fists), all six Block Cracker
brick conversions with the config and activation gates, the full
Disarm flow (protected drops, Iron Grip saves, cancelled events),
Arrow Deflect, and the Steel Arm damage curve including the rank 18
breakpoint and the custom override.
(commit: 1b44bb5)
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/unarmed/UnarmedManagerTest.java (diff)
Commit d5390b64300d5e7128421104dc4ea5d837182fc8 by nossr50
Add excavation unit test coverage

Covers block XP, the Giga Drill Breaker double XP check with tool
durability and its tripled treasure rolls, treasure drop-level
gating, treasure XP payouts, archaeology experience orb rolls and
their rank scaling, and the archaeology permission gate.
(commit: d5390b6)
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/excavation/ExcavationTest.java (diff)
Commit adc1a10327e52ea696dfbbc6b3c30bba0c8a04d4 by nossr50
Add maces unit test coverage

Covers the Cripple flow end to end: the lazy slowness effect type
resolution and its fail-fast, the do-not-stack guard against already
slowed targets, attack-strength-scaled odds, permission gating, the
player/mob tier split for slow duration and strength, and the effect
application with its notification. Crush damage was already covered.
(commit: adc1a10)
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/maces/MacesTest.java (diff)
Commit 2c917cb4a7e5b63da8850d95684918a31be05f0f by nossr50
Add smelting unit test coverage

Covers the Fuel Efficiency multiplier tiers with the spent-fuel and
Short.MAX_VALUE clamps, smelt XP payouts, and the Second Smelt flow:
the winning roll adding an ingot, the nearly-full result slot guard,
and the per-item double drop config gate. The vanilla XP multiplier
was already covered.
(commit: 2c917cb)
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/smelting/SmeltingManagerTest.java (diff)
Commit 646f831b364c6aa71ea79f6aeddbd6f5bb6516fe by nossr50
Add repair unit test coverage

Covers the anvil placement hint firing exactly once, every
handleRepair guard rail (unbreakable, custom model data, permission,
skill level, full durability, missing material, stacked items), the
Repair Mastery bonus and Super Repair double with its notification,
and the Arcane Forging outcomes: rank-zero loss, kept enchants,
stripped enchants, and downgrades. Confirmation windows and the
arcane forging enchant cap were already covered.
(commit: 646f831)
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/repair/RepairManagerTest.java (diff)
Commit c5554a5b313f65b3334f9b230c77bfd4f9cbf0a1 by nossr50
Add salvage unit test coverage

Covers the Scrap Collector yield limits, the enchant bypass perk
guaranteeing full extraction, the anvil placement hint firing once,
the handleSalvage guard rails (unbreakable, skill level, too
damaged), the successful salvage flow with its material payout and
hand emptying, and the arcane salvage split between lost enchants
and full book extraction. Confirmation windows and the enchant cap
were already covered.
(commit: c5554a5)
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/salvage/SalvageManagerTest.java (diff)
Commit cc392fa051990f62afce5cc64511b44b0ae81149 by nossr50
Add herbalism ability unit test coverage

Covers the ability gates (Green Thumb seed requirements, Shroom
Thumb needing both mushroom types, Hylian Luck, readied hoe),
Farmer's Diet delegation, the sweet berry bush harvest with its
delayed age verification and cancelled-harvest guard, plant maturity
rules including the berry bush age-two rule and the untrustworthy
ageables, bonus drop marking (Green Terra and Verdant Bounty triples
versus plain doubles), and the natural/player-placed double drop
split. Green Thumb consumption and multi-block XP were already
covered.
(commit: cc392fa)
The file was addedsrc/test/java/com/gmail/nossr50/skills/herbalism/HerbalismManagerAbilitiesTest.java
Commit 580bc40b7a392478dab1921cb1959485a9b4eb4b by nossr50
Add woodcutting gate and Clean Cuts unit test coverage

Covers the Leaf Blower and Tree Feller gates (axe requirement,
unlock, active ability) and the Clean Cuts triple drop paths: the
metadata marking on single-block breaks and the direct double spawn
under Tree Feller. Double drops, XP, the Tree Feller threshold,
Knock on Wood orbs, and durability were already covered.
(commit: 580bc40)
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingTest.java (diff)
Commit d0214f1dc3beb69a9c6509e4bfd6e3e981c940e0 by nossr50
Add acrobatics gate and throttle unit test coverage

Covers the Dodge gate (blocking players, PVE trigger config, the
lightning config, the unlock), the roll XP throttle with its
lengthening cooldown under exploit prevention, and the fall location
memory. Roll damage, thresholds, graceful roll probability, and the
per-mob dodge XP cap were already covered.
(commit: d0214f1)
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsTest.java (diff)
Commit c25b48e7812f718cdaba7da7801c9a442efb3e29 by nossr50
Widen statistical tolerance in probability expectation tests

At 20 million samples the old 0.035 percentage point tolerance sat
around 3 sigma, so the parameterized static-chance cases would flake
on an unlucky roll every few hundred runs. 0.05 keeps roughly 4.5
sigma of headroom while still catching any real probability
regression.
(commit: c25b48e)
The file was modifiedsrc/test/java/com/gmail/nossr50/util/random/ProbabilityTestUtils.java (diff)
Commit 0bf608a425587c65384f6532f3df94c1c84b84d6 by nossr50
Add fishing enchantment unit test coverage

Covers the enchantment-backed fishing paths: the cast wiring that
reads the rod Lure level and hands it to Master Angler, the deferred
Master Angler task scheduled one tick after the cast, Luck of the Sea
scaling of the treasure roll (main hand, off hand, unenchanted, and
unknown hand), and the Magic Hunter roll including candidate
filtering, the conflict rule, non-enchantable drops, and the locked
gate. These were previously untestable off-server because Enchantment
resolves through the registry; the registry bootstrap added for the
spears coverage unblocks them.
(commit: 0bf608a)
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/fishing/FishingManagerProcessFishingTest.java (diff)
The file was modifiedsrc/test/java/com/gmail/nossr50/skills/fishing/FishingManagerMasterAnglerTest.java (diff)
The file was modifiedsrc/test/java/com/gmail/nossr50/listeners/PlayerListenerFishingTest.java (diff)