Discord bot that reports Dota 2 stats for a fixed group of players, using the OpenDota API.
Scala 3 + ZIO 2, JDA for Discord, sttp for HTTP, scala-chart for plots.
Put your Discord bot token (developer portal > application > bot) in:
~/.dotabot/discord_token
sbt run
sbt testMention the bot with one of:
winloss,winlossplot— win/loss over the last 14 dayslatestmatches— recent match overviewfavorite herobest <stat>/worst <stat>— hero stats ranked per playerfriendly team/enemy team— hero winrates as ally / opponentplot <stat>— chart of a player stat over matches
Sending an unknown command prints the full list with valid stat names.
discord/— bot entrypoint (App), JDA wiring, command parsingservices/dota/— OpenDota API and match/hero repos (cached in local storage)services/dota/statistics/— the actual stat computations and plots