{
  "_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" : 330,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "bc1bcb89cf4ae8b92655c579ab6ce7446df538fb",
            "branch" : [
              {
                "SHA1" : "bc1bcb89cf4ae8b92655c579ab6ce7446df538fb",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "bc1bcb89cf4ae8b92655c579ab6ce7446df538fb",
            "branch" : [
              {
                "SHA1" : "bc1bcb89cf4ae8b92655c579ab6ce7446df538fb",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "bc1bcb89cf4ae8b92655c579ab6ce7446df538fb",
        "branch" : [
          {
            "SHA1" : "bc1bcb89cf4ae8b92655c579ab6ce7446df538fb",
            "name" : "refs/remotes/origin/master"
          }
        ]
      },
      "remoteUrls" : [
        "https://github.com/mcMMO-Dev/mcMMO.git"
      ],
      "scmName" : ""
    },
    {
      
    },
    {
      
    },
    {
      
    },
    {
      "_class" : "org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction"
    }
  ],
  "artifacts" : [
    {
      "displayPath" : "mcMMO.jar",
      "fileName" : "mcMMO.jar",
      "relativePath" : "target/mcMMO.jar"
    },
    {
      "displayPath" : "original-mcMMO.jar",
      "fileName" : "original-mcMMO.jar",
      "relativePath" : "target/original-mcMMO.jar"
    }
  ],
  "building" : false,
  "description" : null,
  "displayName" : "#330",
  "duration" : 70482,
  "estimatedDuration" : 135282,
  "executor" : null,
  "fullDisplayName" : "mcMMO #330",
  "id" : "330",
  "inProgress" : false,
  "keepLog" : false,
  "number" : 330,
  "queueId" : 200,
  "result" : "SUCCESS",
  "timestamp" : 1783470850964,
  "url" : "https://popicraft.net/jenkins/job/mcMMO/330/",
  "builtOn" : "Builder",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java",
          "src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java",
          "src/main/java/com/gmail/nossr50/skills/maces/MacesManager.java",
          "src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java",
          "src/main/java/com/gmail/nossr50/skills/spears/SpearsManager.java",
          "src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java",
          "src/test/java/com/gmail/nossr50/skills/axes/AxesManagerTest.java",
          "src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java",
          "src/test/java/com/gmail/nossr50/skills/swords/SwordsManagerTest.java",
          "Changelog.txt",
          "src/test/java/com/gmail/nossr50/skills/unarmed/UnarmedManagerTest.java"
        ],
        "commitId" : "88f062789a52633f3e84ac97558b657649e10cfa",
        "timestamp" : 1783458987000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Fix combat effects reading stale attack cooldown on Paper 26.1.2+\u000a\u000aPaper 26.1.2 resets the attack strength ticker before\u000aEntityDamageByEntityEvent fires, so Player.getAttackCooldown() reads\u000a~0.1 during damage processing. 2.2.053 fixed the damage bonus scaling\u000ain CombatUtils, but everything that still read the cooldown through\u000aMcMMOPlayer#getAttackStrength() stayed broken:\u000a\u000a- Berserk's +50% bonus went negative, reducing a 9.0 damage punch to\u000a  ~1.35 instead of boosting it to 13.5\u000a- Skull Splitter AoE damage was cut to ~10%\u000a- On-hit odds for Disarm, Rupture (also via Serrated Strikes), Cripple,\u000a  Momentum, Critical Strikes, Armor Impact, and Greater Impact were cut\u000a  to ~10%\u000a\u000aThese now take the attack strength scale that CombatUtils back-derives\u000afrom the damage event. The old signatures and\u000aMcMMOPlayer#getAttackStrength are deprecated.\u000a",
        "date" : "2026-07-07 14:16:27 -0700",
        "id" : "88f062789a52633f3e84ac97558b657649e10cfa",
        "msg" : "Fix combat effects reading stale attack cooldown on Paper 26.1.2+",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/skills/spears/SpearsManager.java"
          },
          {
            "editType" : "edit",
            "file" : "Changelog.txt"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/com/gmail/nossr50/skills/axes/AxesManagerTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/skills/maces/MacesManager.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/util/skills/CombatUtils.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/com/gmail/nossr50/skills/swords/SwordsManagerTest.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/com/gmail/nossr50/skills/unarmed/UnarmedManagerTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/skills/swords/SwordsManager.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/resources/advanced.yml",
          "src/main/java/com/gmail/nossr50/config/AdvancedConfig.java",
          "Changelog.txt"
        ],
        "commitId" : "fbab8db85b03ee1fe607ed51557c9670b3d94d5e",
        "timestamp" : 1783459219000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Make action bar unlock messages a deliberate opt-in\u000a\u000aRouting skill rank unlock messages to the action bar is now controlled\u000aby a new Feedback.ActionBarNotifications.SubSkillUnlocked.UseActionBar\u000akey in advanced.yml, defaulting to false.\u000a\u000aThe previous approach honored the existing SubSkillUnlocked.Enabled\u000akey, but configs from older versions already contain 'Enabled: true'\u000afrom back when the setting had no effect, so updating would have\u000asilently moved unlock messages to the action bar on those servers. The\u000aEnabled key is now ignored for this section; unlock messages stay in\u000achat unless an admin explicitly sets UseActionBar to true.\u000a",
        "date" : "2026-07-07 14:20:19 -0700",
        "id" : "fbab8db85b03ee1fe607ed51557c9670b3d94d5e",
        "msg" : "Make action bar unlock messages a deliberate opt-in",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Changelog.txt"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/advanced.yml"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/config/AdvancedConfig.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/resources/advanced.yml",
          "src/main/java/com/gmail/nossr50/config/AdvancedConfig.java",
          "Changelog.txt"
        ],
        "commitId" : "bc1bcb89cf4ae8b92655c579ab6ce7446df538fb",
        "timestamp" : 1783470440000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Rename SubSkillUnlocked opt-in key to SendToActionBar\u000a\u000aSendToActionBar matches the naming of the sibling\u000aSendCopyOfMessageToChat key; UseActionBar matched nothing else in\u000aadvanced.yml. The key is unreleased so no migration is needed.\u000a",
        "date" : "2026-07-07 17:27:20 -0700",
        "id" : "bc1bcb89cf4ae8b92655c579ab6ce7446df538fb",
        "msg" : "Rename SubSkillUnlocked opt-in key to SendToActionBar",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Changelog.txt"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/advanced.yml"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/config/AdvancedConfig.java"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
      "fullName" : "nossr50"
    }
  ]
}