{
  "_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" : 335,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "0dcf35b64ace92c17f9fe3e1e222dcaca30ca9cf",
            "branch" : [
              {
                "SHA1" : "0dcf35b64ace92c17f9fe3e1e222dcaca30ca9cf",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "0dcf35b64ace92c17f9fe3e1e222dcaca30ca9cf",
            "branch" : [
              {
                "SHA1" : "0dcf35b64ace92c17f9fe3e1e222dcaca30ca9cf",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "0dcf35b64ace92c17f9fe3e1e222dcaca30ca9cf",
        "branch" : [
          {
            "SHA1" : "0dcf35b64ace92c17f9fe3e1e222dcaca30ca9cf",
            "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" : "#335",
  "duration" : 89755,
  "estimatedDuration" : 135282,
  "executor" : null,
  "fullDisplayName" : "mcMMO #335",
  "id" : "335",
  "inProgress" : false,
  "keepLog" : false,
  "number" : 335,
  "queueId" : 207,
  "result" : "SUCCESS",
  "timestamp" : 1783621157109,
  "url" : "https://popicraft.net/jenkins/job/mcMMO/335/",
  "builtOn" : "Builder",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/java/com/gmail/nossr50/placeholders/LeaderboardPlaceholderInputParser.java",
          "src/main/java/com/gmail/nossr50/database/FlatFileDatabaseManager.java",
          "src/main/java/com/gmail/nossr50/placeholders/PapiExpansion.java",
          "src/main/java/com/gmail/nossr50/placeholders/LeaderboardPlaceholderCache.java",
          "src/test/java/com/gmail/nossr50/placeholders/McTopPlaceholdersTest.java",
          "src/test/java/com/gmail/nossr50/database/SharedSqlContainers.java",
          "src/test/java/com/gmail/nossr50/placeholders/LeaderboardPlaceholderInputParserTest.java",
          "src/main/java/com/gmail/nossr50/placeholders/SkillExpRemainingPlaceholder.java",
          "src/test/java/com/gmail/nossr50/placeholders/LeaderboardPlaceholderSqlIntegrationTest.java",
          "src/main/java/com/gmail/nossr50/placeholders/SkillXpRatePlaceholder.java",
          "src/main/java/com/gmail/nossr50/datatypes/database/LeaderboardSnapshot.java",
          "src/main/java/com/gmail/nossr50/placeholders/SkillLevelPlaceholder.java",
          "src/main/java/com/gmail/nossr50/config/GeneralConfig.java",
          "src/test/java/com/gmail/nossr50/placeholders/LeaderboardPlaceholderFlatFileIntegrationTest.java",
          "src/main/java/com/gmail/nossr50/datatypes/database/UpgradeType.java",
          "src/main/java/com/gmail/nossr50/database/DatabaseManager.java",
          "src/main/resources/config.yml",
          "src/main/java/com/gmail/nossr50/placeholders/McTopPlaceholder.java",
          "src/test/java/com/gmail/nossr50/database/FlatFileDatabaseManagerTest.java",
          "src/test/java/com/gmail/nossr50/util/TestFileCleanup.java",
          "src/main/java/com/gmail/nossr50/placeholders/SkillExpPlaceholder.java",
          "src/main/java/com/gmail/nossr50/placeholders/SkillRankPlaceholder.java",
          "src/main/java/com/gmail/nossr50/placeholders/SkillExpNeededPlaceholder.java",
          "src/test/java/com/gmail/nossr50/database/SQLDatabaseManagerTest.java",
          "Changelog.txt",
          "src/test/java/com/gmail/nossr50/placeholders/LeaderboardPlaceholderCacheTest.java",
          "src/main/java/com/gmail/nossr50/mcMMO.java",
          "src/test/java/com/gmail/nossr50/placeholders/PapiExpansionRoutingTest.java",
          "src/main/java/com/gmail/nossr50/database/DatabaseManagerFactory.java",
          "src/main/java/com/gmail/nossr50/database/SQLDatabaseManager.java"
        ],
        "commitId" : "0dcf35b64ace92c17f9fe3e1e222dcaca30ca9cf",
        "timestamp" : 1783621038000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/github",
          "fullName" : "github"
        },
        "authorEmail" : "noreply@github.com",
        "comment" : "Add async PAPI leaderboard cache and placeholders (#5301)\u000a\u000aFixes #5171\u000aFixes #4800\u000aFixes #4291\u000a\u000aPlaceholders are served from an async snapshot cache refreshed in bulk\u000aper backend interval; includes SQL per-skill leaderboard indexes with a\u000aquery rewrite, ghost-row filtering shared by /mctop and /mcrank,\u000aFlatFile leaderboard generation-swap thread safety, a routing pin test\u000afor the PAPI token seam, and placeholder token names built with\u000aLocale.ENGLISH.\u000a",
        "date" : "2026-07-09 11:17:18 -0700",
        "id" : "0dcf35b64ace92c17f9fe3e1e222dcaca30ca9cf",
        "msg" : "Add async PAPI leaderboard cache and placeholders (#5301)",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/test/java/com/gmail/nossr50/database/FlatFileDatabaseManagerTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/database/FlatFileDatabaseManager.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/com/gmail/nossr50/placeholders/PapiExpansionRoutingTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/database/DatabaseManagerFactory.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/com/gmail/nossr50/placeholders/LeaderboardPlaceholderCacheTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/datatypes/database/UpgradeType.java"
          },
          {
            "editType" : "edit",
            "file" : "src/test/java/com/gmail/nossr50/database/SQLDatabaseManagerTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/database/SQLDatabaseManager.java"
          },
          {
            "editType" : "add",
            "file" : "src/main/java/com/gmail/nossr50/placeholders/LeaderboardPlaceholderInputParser.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/com/gmail/nossr50/placeholders/LeaderboardPlaceholderSqlIntegrationTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/database/DatabaseManager.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/placeholders/SkillLevelPlaceholder.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/placeholders/SkillXpRatePlaceholder.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/resources/config.yml"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/placeholders/SkillExpNeededPlaceholder.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/com/gmail/nossr50/placeholders/McTopPlaceholdersTest.java"
          },
          {
            "editType" : "edit",
            "file" : "Changelog.txt"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/com/gmail/nossr50/database/SharedSqlContainers.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/com/gmail/nossr50/util/TestFileCleanup.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/placeholders/SkillExpPlaceholder.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/com/gmail/nossr50/placeholders/LeaderboardPlaceholderFlatFileIntegrationTest.java"
          },
          {
            "editType" : "add",
            "file" : "src/main/java/com/gmail/nossr50/placeholders/McTopPlaceholder.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/mcMMO.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/config/GeneralConfig.java"
          },
          {
            "editType" : "add",
            "file" : "src/main/java/com/gmail/nossr50/placeholders/LeaderboardPlaceholderCache.java"
          },
          {
            "editType" : "add",
            "file" : "src/main/java/com/gmail/nossr50/datatypes/database/LeaderboardSnapshot.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/com/gmail/nossr50/placeholders/LeaderboardPlaceholderInputParserTest.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/placeholders/SkillRankPlaceholder.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/placeholders/SkillExpRemainingPlaceholder.java"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/placeholders/PapiExpansion.java"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://popicraft.net/jenkins/user/github",
      "fullName" : "github"
    }
  ]
}