{
  "_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" : 340,
          "buildResult" : None,
          "marked" : {
            "SHA1" : "0edb5ad634a0c78298b290bcb4eda8d599994920",
            "branch" : [
              {
                "SHA1" : "0edb5ad634a0c78298b290bcb4eda8d599994920",
                "name" : "refs/remotes/origin/master"
              }
            ]
          },
          "revision" : {
            "SHA1" : "0edb5ad634a0c78298b290bcb4eda8d599994920",
            "branch" : [
              {
                "SHA1" : "0edb5ad634a0c78298b290bcb4eda8d599994920",
                "name" : "refs/remotes/origin/master"
              }
            ]
          }
        }
      },
      "lastBuiltRevision" : {
        "SHA1" : "0edb5ad634a0c78298b290bcb4eda8d599994920",
        "branch" : [
          {
            "SHA1" : "0edb5ad634a0c78298b290bcb4eda8d599994920",
            "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" : "#340",
  "duration" : 155444,
  "estimatedDuration" : 135282,
  "executor" : None,
  "fullDisplayName" : "mcMMO #340",
  "id" : "340",
  "inProgress" : False,
  "keepLog" : False,
  "number" : 340,
  "queueId" : 213,
  "result" : "SUCCESS",
  "timestamp" : 1783728251304,
  "url" : "https://popicraft.net/jenkins/job/mcMMO/340/",
  "builtOn" : "Builder",
  "changeSet" : {
    "_class" : "hudson.plugins.git.GitChangeSetList",
    "items" : [
      {
        "_class" : "hudson.plugins.git.GitChangeSet",
        "affectedPaths" : [
          "src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java",
          "src/main/java/com/gmail/nossr50/listeners/PlayerListener.java",
          "src/test/java/com/gmail/nossr50/listeners/PlayerListenerFishingExploitTest.java",
          "Changelog.txt"
        ],
        "commitId" : "0edb5ad634a0c78298b290bcb4eda8d599994920",
        "timestamp" : 1783727376000,
        "author" : {
          "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
          "fullName" : "nossr50"
        },
        "authorEmail" : "nossr50@gmail.com",
        "comment" : "Keep denied spam-fishing catches from paying Fishing rewards\u000a\u000aThe exploit check split in #5313 gates rewards in the HIGHEST-priority\u000ahandler by re-reading the exploit verdicts, but only the overfishing\u000averdict could be re-read: isFishingTooOften() stamps the catch timestamp\u000aon every call, so the reward gate could not call it again and spam\u000acatches kept their skill XP, treasure rolls, and extra fish.\u000a\u000aFishingManager now records the verdict of the most recent spam check,\u000aexposed through wasFishingTooOften(), and the reward gate checks both\u000averdicts. Covered by a new listener test that dispatches PlayerFishEvents\u000athrough the real handler priority chain.\u000a",
        "date" : "2026-07-10 16:49:36 -0700",
        "id" : "0edb5ad634a0c78298b290bcb4eda8d599994920",
        "msg" : "Keep denied spam-fishing catches from paying Fishing rewards",
        "paths" : [
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/listeners/PlayerListener.java"
          },
          {
            "editType" : "add",
            "file" : "src/test/java/com/gmail/nossr50/listeners/PlayerListenerFishingExploitTest.java"
          },
          {
            "editType" : "edit",
            "file" : "Changelog.txt"
          },
          {
            "editType" : "edit",
            "file" : "src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java"
          }
        ]
      }
    ],
    "kind" : "git"
  },
  "culprits" : [
    {
      "absoluteUrl" : "https://popicraft.net/jenkins/user/nossr50",
      "fullName" : "nossr50"
    }
  ]
}