{
  "name": "Bosskills",
  "author": "Mad",
  "supportedGames": [
    "all"
  ],
  "takaroVersion": "v0.0.21",
  "versions": [
    {
      "tag": "1.0.0",
      "description": "Pay and Announcement for Bosses",
      "configSchema": "{\"$schema\":\"http://json-schema.org/draft-07/schema#\",\"type\":\"object\",\"required\":[\"coinAmountDevourer\"],\"additionalProperties\":false,\"properties\":{\"coinAmountDevourer\":{\"title\":\"coinAmountDevourer\",\"description\":\"Amoint of Coin to award\",\"default\":0,\"type\":\"number\"},\"announceDevourer\":{\"title\":\"announceDevourer\",\"description\":\"Post in chat Boss Kill\",\"type\":\"string\"}}}",
      "uiSchema": "{}",
      "commands": [],
      "hooks": [
        {
          "name": "Devourer",
          "eventType": "log",
          "description": "Hook for log events",
          "regex": null,
          "function": "// Hook function for detecting boss kills and sending congratulatory PM\nimport { data, takaro } from '@takaro/helpers';\n\nasync function main() {\n    const { gameServerId, eventData } = data;\n\n    // Check if eventData exists and contains the message\n    if (!eventData || !eventData.msg) {\n        console.log(\"Error: Expected log message not found in data structure\");\n        return;\n    }\n\n    // Get the log message from the correct path in the data object\n    const logLine = eventData.msg;\n    console.log(\"Processing log line:\", logLine);\n\n    // Check if this is a bossDevourer kill line\n    if (!logLine.includes(\"killed animal bossDevourer\")) {\n        console.log(\"Not a bossDevourer kill\");\n        return;\n    }\n\n    // Extract player name using regex \n    // Format: [CSMM_Patrons]entityKilled: Mad (Steam_76561198041959712) killed animal bossDevourer with Dev: Instant Death Pistol\n    const playerMatch = logLine.match(/entityKilled: (\\w+) \\(Steam_/);\n\n    if (!playerMatch || !playerMatch[1]) {\n        console.log(\"Could not extract player name from kill log\");\n        return;\n    }\n\n    const playerName = playerMatch[1];\n    console.log(\"Extracted player name:\", playerName);\n\n    try {\n        // Search for the player to get their ID\n        const playerSearchResult = await takaro.player.playerControllerSearch({\n            filters: {\n                name: [playerName]\n            }\n        });\n\n        if (playerSearchResult.data.data.length === 0) {\n            console.log(\"Player not found in database:\", playerName);\n            return;\n        }\n\n        const playerId = playerSearchResult.data.data[0].id;\n\n        // Send the message using the player ID\n        await takaro.gameserver.gameServerControllerSendMessage(gameServerId, {\n            message: `good kill on that animal bossDevourer!`,\n        });\n\n\n        console.log(\"Successfully sent message about player:\", playerName);\n    } catch (error) {\n        console.log(\"Error:\", error.message);\n    }\n}\n\nawait main();"
        }
      ],
      "cronJobs": [],
      "functions": [],
      "permissions": []
    }
  ]
}