<freeStyleBuild _class='hudson.model.FreeStyleBuild'><action _class='hudson.model.CauseAction'><cause _class='hudson.triggers.SCMTrigger$SCMTriggerCause'><shortDescription>Started by an SCM change</shortDescription></cause></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmaster _class='hudson.plugins.git.util.Build'><buildNumber>304</buildNumber><marked><SHA1>11225a2f55412618512c1ee0a0d87ba895060e08</SHA1><branch><SHA1>11225a2f55412618512c1ee0a0d87ba895060e08</SHA1><name>refs/remotes/origin/master</name></branch></marked><revision><SHA1>11225a2f55412618512c1ee0a0d87ba895060e08</SHA1><branch><SHA1>11225a2f55412618512c1ee0a0d87ba895060e08</SHA1><name>refs/remotes/origin/master</name></branch></revision></refsremotesoriginmaster></buildsByBranchName><lastBuiltRevision><SHA1>11225a2f55412618512c1ee0a0d87ba895060e08</SHA1><branch><SHA1>11225a2f55412618512c1ee0a0d87ba895060e08</SHA1><name>refs/remotes/origin/master</name></branch></lastBuiltRevision><remoteUrl>https://github.com/mcMMO-Dev/mcMMO.git</remoteUrl><scmName></scmName></action><action></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'><artifactsUrl>https://popicraft.net/jenkins/view/all/job/mcMMO/304/artifact</artifactsUrl><changesUrl>https://popicraft.net/jenkins/view/all/job/mcMMO/changes</changesUrl><displayUrl>https://popicraft.net/jenkins/view/all/job/mcMMO/304/</displayUrl><testsUrl>https://popicraft.net/jenkins/view/all/job/mcMMO/304/testReport</testsUrl></action><building>false</building><displayName>#304</displayName><duration>48447</duration><estimatedDuration>46420</estimatedDuration><fullDisplayName>mcMMO #304</fullDisplayName><id>304</id><inProgress>false</inProgress><keepLog>false</keepLog><number>304</number><queueId>113</queueId><result>FAILURE</result><timestamp>1778209445918</timestamp><url>https://popicraft.net/jenkins/view/all/job/mcMMO/304/</url><builtOn>Builder</builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>pom.xml</affectedPath><affectedPath>src/test/java/com/gmail/nossr50/database/SQLDatabaseManagerTest.java</affectedPath><commitId>397d6de36ce0f9578612a6a1aa98039dcfb0257b</commitId><timestamp>1778118362000</timestamp><author><absoluteUrl>https://popicraft.net/jenkins/user/nossr50</absoluteUrl><fullName>nossr50</fullName></author><authorEmail>nossr50@gmail.com</authorEmail><comment>Add -DskipDockerTests=true flag to skip Testcontainers SQL tests
</comment><date>2026-05-06 18:46:02 -0700</date><id>397d6de36ce0f9578612a6a1aa98039dcfb0257b</id><msg>Add -DskipDockerTests=true flag to skip Testcontainers SQL tests</msg><path><editType>edit</editType><file>src/test/java/com/gmail/nossr50/database/SQLDatabaseManagerTest.java</file></path><path><editType>edit</editType><file>pom.xml</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java</affectedPath><affectedPath>src/main/java/com/gmail/nossr50/listeners/BlockListener.java</affectedPath><affectedPath>src/test/java/com/gmail/nossr50/skills/excavation/ExcavationTest.java</affectedPath><affectedPath>src/test/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingTest.java</affectedPath><affectedPath>src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java</affectedPath><affectedPath>Changelog.txt</affectedPath><commitId>ce021dbe129c912820f28649d6c4050ed80abe13</commitId><timestamp>1778206892000</timestamp><author><absoluteUrl>https://popicraft.net/jenkins/user/nossr50</absoluteUrl><fullName>nossr50</fullName></author><authorEmail>nossr50@gmail.com</authorEmail><comment>Fix Woodcutting/Excavation bonus drops bypassing BlockDropItemEvent

Woodcutting (Harvest Lumber, Clean Cuts) and Excavation treasure drops
previously spawned items directly via world.dropItem(), bypassing
BlockDropItemEvent entirely. This made them invisible to Telekinesis-style
enchant plugins (ExcellentEnchants, EcoEnchants, etc.).

Woodcutting fix: processBonusDropCheck() now calls BlockUtils.markDropsAsBonus()
for normal breaks, routing bonus drops through the existing BlockDropItemEvent
metadata pipeline. Tree Feller retains the direct-spawn path since it sets
blocks to AIR without firing BlockDropItemEvent.

Excavation fix: treasure rolls are now performed inside onBlockDropItemEvent()
via ExcavationManager.rollAndCollectTreasureDrops(). The returned ItemStacks
are spawned and injected into event.getItems(), exposing them to the full
Bukkit event pipeline. GigaDrillBreaker's 3x roll count is preserved. The
old processExcavationBonusesOnBlock(treasure, location) path is kept as a
deprecated fallback for external API callers.
</comment><date>2026-05-07 19:21:32 -0700</date><id>ce021dbe129c912820f28649d6c4050ed80abe13</id><msg>Fix Woodcutting/Excavation bonus drops bypassing BlockDropItemEvent</msg><path><editType>edit</editType><file>src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java</file></path><path><editType>edit</editType><file>src/test/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingTest.java</file></path><path><editType>edit</editType><file>src/main/java/com/gmail/nossr50/listeners/BlockListener.java</file></path><path><editType>edit</editType><file>src/test/java/com/gmail/nossr50/skills/excavation/ExcavationTest.java</file></path><path><editType>edit</editType><file>src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java</file></path><path><editType>edit</editType><file>Changelog.txt</file></path></item><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>src/test/java/com/gmail/nossr50/util/platform/MinecraftGameVersionTest.java</affectedPath><affectedPath>Changelog.txt</affectedPath><affectedPath>src/main/java/com/gmail/nossr50/util/MinecraftGameVersionFactory.java</affectedPath><commitId>11225a2f55412618512c1ee0a0d87ba895060e08</commitId><timestamp>1778209298000</timestamp><author><absoluteUrl>https://popicraft.net/jenkins/user/nossr50</absoluteUrl><fullName>nossr50</fullName></author><authorEmail>nossr50@gmail.com</authorEmail><comment>Fix Minecraft version detection failing on Spigot servers

The old regex required a trailing [-_] after the version digits, which worked
for getBukkitVersion() strings (e.g. '1.21.4-R0.1-SNAPSHOT') but silently
failed on Spigot's Bukkit.getVersion() format ('git-Spigot-12345-abcdef
(MC: 1.21.4)') since '1.21.4)' has no trailing dash or underscore. Version
resolved to 0.0.0, causing Tricky Trials potions (isAtLeast 1.21.0 check)
to be incorrectly skipped on every Spigot server.

MinecraftGameVersionFactory now uses two patterns:
- Primary: extracts from the '(MC: X.Y.Z)' segment that CraftBukkit always
  embeds in Bukkit.getVersion() — handles Spigot, old Paper, and Paper 26+
- Fallback: original regex for strings without '(MC: ...)' such as
  getBukkitVersion()-style strings

Tests updated with @Nested classes covering both paths, including explicit
Spigot format cases and Paper 26+ versioning (26.1.2-60-b4682bf format).
</comment><date>2026-05-07 20:01:38 -0700</date><id>11225a2f55412618512c1ee0a0d87ba895060e08</id><msg>Fix Minecraft version detection failing on Spigot servers</msg><path><editType>edit</editType><file>src/main/java/com/gmail/nossr50/util/MinecraftGameVersionFactory.java</file></path><path><editType>edit</editType><file>Changelog.txt</file></path><path><editType>edit</editType><file>src/test/java/com/gmail/nossr50/util/platform/MinecraftGameVersionTest.java</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://popicraft.net/jenkins/user/nossr50</absoluteUrl><fullName>nossr50</fullName><id>nossr50</id></culprit><culprit><absoluteUrl>https://popicraft.net/jenkins/user/github</absoluteUrl><fullName>github</fullName><id>github</id></culprit></freeStyleBuild>