{
  "_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" : 347,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "35ec12e447cea347d11c675f2ebe6b8cf5a147d6",
            "branch" : [
              {
                "SHA1" : "35ec12e447cea347d11c675f2ebe6b8cf5a147d6",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "35ec12e447cea347d11c675f2ebe6b8cf5a147d6",
            "branch" : [
              {
                "SHA1" : "35ec12e447cea347d11c675f2ebe6b8cf5a147d6",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "35ec12e447cea347d11c675f2ebe6b8cf5a147d6",
        "branch" : [
          {
            "SHA1" : "35ec12e447cea347d11c675f2ebe6b8cf5a147d6",
            "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" : None,
  "displayName" : "#347",
  "duration" : 61290,
  "estimatedDuration" : 66335,
  "executor" : None,
  "fullDisplayName" : "mcMMO #347",
  "id" : "347",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 347,
  "queueId" : 221,
  "result" : "SUCCESS",
  "timestamp" : 1783811051582,
  "url" : "https://popicraft.net/jenkins/job/mcMMO/347/",
  "builtOn" : "Builder",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/java/com/gmail/nossr50/util/player/NotificationManager.java",
          "src/test/java/com/gmail/nossr50/util/sounds/SkillUnlockSoundThrottleTest.java",
          "src/main/java/com/gmail/nossr50/runnables/skills/SkillUnlockNotificationTask.java",
          "src/main/java/com/gmail/nossr50/util/sounds/SkillUnlockSoundThrottle.java",
          "Changelog.txt",
          "src/test/java/com/gmail/nossr50/runnables/skills/SkillUnlockNotificationTaskTest.java"
        ],
        "commitId" : "f7bad80ff6f947e29ab6f655f21c654791904e09",
        "timestamp" : 1783796885000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Only play the unlock sound once for batched rank unlock notifications\u000a\u000aMass level changes like /mmoedit all queue dozens of staggered unlock\u000anotifications, each of which played the unlock sound. A per player\u000aquiet window anchored on the last notification now lets the first\u000asound through and keeps the rest of the stream silent; the messages\u000athemselves are unchanged. External callers of the existing\u000aNotificationManager method keep the always-play behavior through a\u000anew overload.\u000a",
        "date" : "2026-07-11 12:08:05 -0700",
        "id" : "f7bad80ff6f947e29ab6f655f21c654791904e09",
        "msg" : "Only play the unlock sound once for batched rank unlock notifications",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/runnables/skills/SkillUnlockNotificationTask.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/util/player/NotificationManager.java"
          },
          {
            "editType" : "add",
            "file" : "src/main/java/com/gmail/nossr50/util/sounds/SkillUnlockSoundThrottle.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/com/gmail/nossr50/runnables/skills/SkillUnlockNotificationTaskTest.java"
          },
          {
            "editType" : "edit",
            "file" : "Changelog.txt"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/com/gmail/nossr50/util/sounds/SkillUnlockSoundThrottleTest.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/java/com/gmail/nossr50/util/skills/SkillUnlockNotificationPacerTest.java",
          "src/main/java/com/gmail/nossr50/util/skills/RankUtils.java",
          "src/main/java/com/gmail/nossr50/listeners/SelfListener.java",
          "src/main/java/com/gmail/nossr50/util/skills/SkillUnlockNotificationPacer.java"
        ],
        "commitId" : "615e5c8cae633c6679b32650643eeda0ff60d907",
        "timestamp" : 1783810306000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Stream skill rank unlock notifications one at a time per player\u000a",
        "date" : "2026-07-11 15:51:46 -0700",
        "id" : "615e5c8cae633c6679b32650643eeda0ff60d907",
        "msg" : "Stream skill rank unlock notifications one at a time per player",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/listeners/SelfListener.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/com/gmail/nossr50/util/skills/SkillUnlockNotificationPacerTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/util/skills/RankUtils.java"
          },
          {
            "editType" : "add",
            "file" : "src/main/java/com/gmail/nossr50/util/skills/SkillUnlockNotificationPacer.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/java/com/gmail/nossr50/listeners/AnvilInteraction.java",
          "src/main/resources/locale/locale_en_US.properties",
          "src/test/java/com/gmail/nossr50/listeners/PlayerListenerSalvageInteractTest.java",
          "src/main/java/com/gmail/nossr50/listeners/PlayerListener.java",
          "src/test/java/com/gmail/nossr50/listeners/AnvilInteractionTest.java"
        ],
        "commitId" : "6ac5834fb775f2f2928b290b0b87b8f81c841f5e",
        "timestamp" : 1783810307000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Tell players which Salvage requirements they are missing at the salvage anvil\u000a",
        "date" : "2026-07-11 15:51:47 -0700",
        "id" : "6ac5834fb775f2f2928b290b0b87b8f81c841f5e",
        "msg" : "Tell players which Salvage requirements they are missing at the salvage anvil",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/java/com/gmail/nossr50/listeners/PlayerListenerSalvageInteractTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/listeners/AnvilInteraction.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_en_US.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/listeners/PlayerListener.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/java/com/gmail/nossr50/listeners/AnvilInteractionTest.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/java/com/gmail/nossr50/util/blockmeta/McMMORegionBackupStore.java",
          "src/main/java/com/gmail/nossr50/mcMMO.java",
          "src/test/java/com/gmail/nossr50/util/blockmeta/McMMORegionBackupStoreTest.java"
        ],
        "commitId" : "d305d5254a731a3fbecf01ae569a7a713486c3cc",
        "timestamp" : 1783810331000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Announce region backups before the per-world backup log lines\u000a",
        "date" : "2026-07-11 15:52:11 -0700",
        "id" : "d305d5254a731a3fbecf01ae569a7a713486c3cc",
        "msg" : "Announce region backups before the per-world backup log lines",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/util/blockmeta/McMMORegionBackupStore.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/mcMMO.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/java/com/gmail/nossr50/util/blockmeta/McMMORegionBackupStoreTest.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/java/com/gmail/nossr50/commands/experience/ExperienceCommand.java"
        ],
        "commitId" : "9cae4d9de7188ca1f715c8a9fe485d3352ea4751",
        "timestamp" : 1783810331000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Fix XP command tab completion suggesting skill names for the value argument\u000a",
        "date" : "2026-07-11 15:52:11 -0700",
        "id" : "9cae4d9de7188ca1f715c8a9fe485d3352ea4751",
        "msg" : "Fix XP command tab completion suggesting skill names for the value argument",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/commands/experience/ExperienceCommand.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/resources/level_up_commands.yml",
          "src/main/java/com/gmail/nossr50/commands/levelup/LevelUpCommand.java",
          "src/test/java/com/gmail/nossr50/commands/levelup/LevelUpCommandTest.java",
          "src/main/java/com/gmail/nossr50/placeholders/PapiPlaceholders.java"
        ],
        "commitId" : "610445ef99f33fcd958e5d7ee319c384f3d7dd47",
        "timestamp" : 1783810331000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Resolve PlaceholderAPI placeholders in level up commands\u000a",
        "date" : "2026-07-11 15:52:11 -0700",
        "id" : "610445ef99f33fcd958e5d7ee319c384f3d7dd47",
        "msg" : "Resolve PlaceholderAPI placeholders in level up commands",
        "paths" : [
          {
            "editType" : "add",
            "file" : "src/main/java/com/gmail/nossr50/placeholders/PapiPlaceholders.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/level_up_commands.yml"
          },
          {
            "editType" : "edit",
            "file" : "src/test/java/com/gmail/nossr50/commands/levelup/LevelUpCommandTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/commands/levelup/LevelUpCommand.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java",
          "src/test/java/com/gmail/nossr50/listeners/PlayerListenerCommandAliasTest.java",
          "src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java",
          "src/main/java/com/gmail/nossr50/commands/XprateCommand.java",
          "src/test/java/com/gmail/nossr50/util/text/TextComponentFactoryTest.java",
          "src/main/java/com/gmail/nossr50/util/text/TextComponentFactory.java",
          "src/main/java/com/gmail/nossr50/listeners/PlayerListener.java",
          "src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardManager.java",
          "src/main/java/com/gmail/nossr50/commands/skills/SkillGuideCommand.java",
          "src/main/java/com/gmail/nossr50/commands/levelup/LevelUpCommand.java",
          "src/main/java/com/gmail/nossr50/util/skills/SkillTools.java",
          "src/main/java/com/gmail/nossr50/datatypes/skills/PrimarySkillType.java"
        ],
        "commitId" : "b3e818f78a3dfa8fa6ecd0f120fad2cf4e0ca065",
        "timestamp" : 1783810349000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Show the capitalized Overhaul.Name skill names in player messages\u000a\u000aSkillTools.getLocalizedSkillName now reads the Overhaul.Name locale\u000aentries; the all-caps SkillName values move behind the new\u000aSkillTools.getHeaderBannerSkillName, which stylized headers,\u000ascoreboards, and skill command matching keep using.\u000a",
        "date" : "2026-07-11 15:52:29 -0700",
        "id" : "b3e818f78a3dfa8fa6ecd0f120fad2cf4e0ca065",
        "msg" : "Show the capitalized Overhaul.Name skill names in player messages",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/commands/XprateCommand.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/util/scoreboards/ScoreboardManager.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/datatypes/skills/PrimarySkillType.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/listeners/PlayerListener.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/java/com/gmail/nossr50/util/text/TextComponentFactoryTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/util/skills/SkillTools.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/util/text/TextComponentFactory.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/commands/skills/SkillGuideCommand.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/commands/skills/SkillCommand.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/commands/levelup/LevelUpCommand.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/java/com/gmail/nossr50/listeners/PlayerListenerCommandAliasTest.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/resources/locale/locale_zh_TW.properties",
          "src/main/resources/locale/locale_cy.properties",
          "src/main/resources/locale/locale_ja_JP.properties",
          "src/main/resources/locale/locale_pt_BR.properties",
          "src/main/resources/locale/locale_fr.properties",
          "src/main/resources/locale/locale_cs_CZ.properties",
          "src/main/resources/locale/locale_pl.properties",
          "src/main/resources/locale/locale_en_US.properties",
          "src/main/resources/locale/locale_hu_HU.properties",
          "src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java",
          "src/main/resources/locale/locale_es.properties",
          "src/main/resources/locale/locale_fi.properties",
          "src/main/resources/locale/locale_it.properties",
          "src/main/resources/locale/locale_de.properties",
          "src/main/resources/locale/locale_lt_LT.properties",
          "src/main/resources/locale/locale_ru.properties",
          "src/main/resources/locale/locale_zh_CN.properties",
          "src/main/resources/locale/locale_ko.properties",
          "src/main/resources/locale/locale_th_TH.properties",
          "src/main/resources/locale/locale_sv.properties",
          "src/main/resources/locale/locale_nl.properties",
          "src/main/resources/locale/locale_da.properties"
        ],
        "commitId" : "8fa961000e1093a19f6476fb20bc4f45997451b4",
        "timestamp" : 1783810366000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Remove the Hylian Luck message and dead locale entries from shipped locales\u000a",
        "date" : "2026-07-11 15:52:46 -0700",
        "id" : "8fa961000e1093a19f6476fb20bc4f45997451b4",
        "msg" : "Remove the Hylian Luck message and dead locale entries from shipped locales",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_cs_CZ.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_da.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_fr.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_ja_JP.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_nl.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_sv.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_zh_CN.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_lt_LT.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_zh_TW.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_ru.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_cy.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_hu_HU.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_de.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_es.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_pl.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_ko.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_th_TH.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_it.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_pt_BR.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_fi.properties"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/locale/locale_en_US.properties"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/test/java/com/gmail/nossr50/placeholders/PapiExpansionRoutingTest.java",
          "src/main/java/com/gmail/nossr50/placeholders/SkillNamePlaceholder.java",
          "src/main/java/com/gmail/nossr50/placeholders/PapiExpansion.java"
        ],
        "commitId" : "0c8337ba930637cb88a27dc79aff592b4b3fe5d3",
        "timestamp" : 1783810366000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Add PlaceholderAPI placeholders for localized skill names\u000a",
        "date" : "2026-07-11 15:52:46 -0700",
        "id" : "0c8337ba930637cb88a27dc79aff592b4b3fe5d3",
        "msg" : "Add PlaceholderAPI placeholders for localized skill names",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/placeholders/PapiExpansion.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/java/com/gmail/nossr50/placeholders/PapiExpansionRoutingTest.java"
          },
          {
            "editType" : "add",
            "file" : "src/main/java/com/gmail/nossr50/placeholders/SkillNamePlaceholder.java"
          }
        ]
      },
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "Changelog.txt"
        ],
        "commitId" : "35ec12e447cea347d11c675f2ebe6b8cf5a147d6",
        "timestamp" : 1783810366000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Update changelog\u000a",
        "date" : "2026-07-11 15:52:46 -0700",
        "id" : "35ec12e447cea347d11c675f2ebe6b8cf5a147d6",
        "msg" : "Update changelog",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "Changelog.txt"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
      "fullName" : "nossr50"
    }
  ]
}