{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction",
      "causes" : [
        {
          "_class" : "hudson.triggers.SCMTrigger$SCMTriggerCause",
          "shortDescription" : "Started by an SCM change"
        }
      ]
    },
    {
      
    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "refs/remotes/origin/master" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 304,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "11225a2f55412618512c1ee0a0d87ba895060e08",
            "branch" : [
              {
                "SHA1" : "11225a2f55412618512c1ee0a0d87ba895060e08",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "11225a2f55412618512c1ee0a0d87ba895060e08",
            "branch" : [
              {
                "SHA1" : "11225a2f55412618512c1ee0a0d87ba895060e08",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "11225a2f55412618512c1ee0a0d87ba895060e08",
        "branch" : [
          {
            "SHA1" : "11225a2f55412618512c1ee0a0d87ba895060e08",
            "name" : "refs/remotes/origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/mcMMO-Dev/mcMMO.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    
  ],
  "building" : False,
  "description" : None,
  "displayName" : "#304",
  "duration" : 48447,
  "estimatedDuration" : 46420,
  "executor" : None,
  "fullDisplayName" : "mcMMO #304",
  "id" : "304",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 304,
  "queueId" : 113,
  "result" : "FAILURE",
  "timestamp" : 1778209445918,
  "url" : "https://popicraft.net/jenkins/job/mcMMO/304/",
  "builtOn" : "Builder",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "pom.xml",
          "src/test/java/com/gmail/nossr50/database/SQLDatabaseManagerTest.java"
        ],
        "commitId" : "397d6de36ce0f9578612a6a1aa98039dcfb0257b",
        "timestamp" : 1778118362000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Add -DskipDockerTests=true flag to skip Testcontainers SQL tests\u000a",
        "date" : "2026-05-06 18:46:02 -0700",
        "id" : "397d6de36ce0f9578612a6a1aa98039dcfb0257b",
        "msg" : "Add -DskipDockerTests=true flag to skip Testcontainers SQL tests",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/java/com/gmail/nossr50/database/SQLDatabaseManagerTest.java"
          },
          {
            "editType" : "edit",
            "file" : "pom.xml"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java",
          "src/main/java/com/gmail/nossr50/listeners/BlockListener.java",
          "src/test/java/com/gmail/nossr50/skills/excavation/ExcavationTest.java",
          "src/test/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingTest.java",
          "src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java",
          "Changelog.txt"
        ],
        "commitId" : "ce021dbe129c912820f28649d6c4050ed80abe13",
        "timestamp" : 1778206892000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Fix Woodcutting/Excavation bonus drops bypassing BlockDropItemEvent\u000a\u000aWoodcutting (Harvest Lumber, Clean Cuts) and Excavation treasure drops\u000apreviously spawned items directly via world.dropItem(), bypassing\u000aBlockDropItemEvent entirely. This made them invisible to Telekinesis-style\u000aenchant plugins (ExcellentEnchants, EcoEnchants, etc.).\u000a\u000aWoodcutting fix: processBonusDropCheck() now calls BlockUtils.markDropsAsBonus()\u000afor normal breaks, routing bonus drops through the existing BlockDropItemEvent\u000ametadata pipeline. Tree Feller retains the direct-spawn path since it sets\u000ablocks to AIR without firing BlockDropItemEvent.\u000a\u000aExcavation fix: treasure rolls are now performed inside onBlockDropItemEvent()\u000avia ExcavationManager.rollAndCollectTreasureDrops(). The returned ItemStacks\u000aare spawned and injected into event.getItems(), exposing them to the full\u000aBukkit event pipeline. GigaDrillBreaker's 3x roll count is preserved. The\u000aold processExcavationBonusesOnBlock(treasure, location) path is kept as a\u000adeprecated fallback for external API callers.\u000a",
        "date" : "2026-05-07 19:21:32 -0700",
        "id" : "ce021dbe129c912820f28649d6c4050ed80abe13",
        "msg" : "Fix Woodcutting/Excavation bonus drops bypassing BlockDropItemEvent",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/skills/excavation/ExcavationManager.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/java/com/gmail/nossr50/skills/excavation/ExcavationTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/listeners/BlockListener.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/skills/woodcutting/WoodcuttingManager.java"
          },
          {
            "editType" : "edit",
            "file" : "Changelog.txt"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/java/com/gmail/nossr50/util/platform/MinecraftGameVersionTest.java",
          "Changelog.txt",
          "src/main/java/com/gmail/nossr50/util/MinecraftGameVersionFactory.java"
        ],
        "commitId" : "11225a2f55412618512c1ee0a0d87ba895060e08",
        "timestamp" : 1778209298000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Fix Minecraft version detection failing on Spigot servers\u000a\u000aThe old regex required a trailing [-_] after the version digits, which worked\u000afor getBukkitVersion() strings (e.g. '1.21.4-R0.1-SNAPSHOT') but silently\u000afailed on Spigot's Bukkit.getVersion() format ('git-Spigot-12345-abcdef\u000a(MC: 1.21.4)') since '1.21.4)' has no trailing dash or underscore. Version\u000aresolved to 0.0.0, causing Tricky Trials potions (isAtLeast 1.21.0 check)\u000ato be incorrectly skipped on every Spigot server.\u000a\u000aMinecraftGameVersionFactory now uses two patterns:\u000a- Primary: extracts from the '(MC: X.Y.Z)' segment that CraftBukkit always\u000a  embeds in Bukkit.getVersion() — handles Spigot, old Paper, and Paper 26+\u000a- Fallback: original regex for strings without '(MC: ...)' such as\u000a  getBukkitVersion()-style strings\u000a\u000aTests updated with @Nested classes covering both paths, including explicit\u000aSpigot format cases and Paper 26+ versioning (26.1.2-60-b4682bf format).\u000a",
        "date" : "2026-05-07 20:01:38 -0700",
        "id" : "11225a2f55412618512c1ee0a0d87ba895060e08",
        "msg" : "Fix Minecraft version detection failing on Spigot servers",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/java/com/gmail/nossr50/util/platform/MinecraftGameVersionTest.java"
          },
          {
            "editType" : "edit",
            "file" : "Changelog.txt"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/util/MinecraftGameVersionFactory.java"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
      "fullName" : "nossr50"
    },
    {
      "absoluteUrl" : "https://popicraft.net/jenkins/user/github",
      "fullName" : "github"
    }
  ]
}