Discord Bot written in Java using the JDA Discord API wrapper.
Command Examples
Stocks Command
Uses the Finnhub and Messari APIs to search for and display stock/crypto currency prices.
$query where query is a stock/crypto symbol, company name, or ID.
Alternatively, $stock query or $crypto query may be used to search specifically for stock or crypto.
If a singular matching symbol is found, the market data for that symbol is displayed, otherwise a pageable message containing the search results will be shown.
Blitz Command
Uses the Blitz.gg API to display League of Legends champion build data.
blitz [champion] [role] where champion is the name of a champion and role is the name of a role.
Match History Command
Uses the COD API to display a player's match history in Modern Warfare/Cold War.
[platform] [trigger] [name] [match ID] where platform is one of XBOX, XBL, PSN, BATTLE (optional & assumed to be Battle.net), trigger is one of mwhistory, cwhistory (depending on the game), name is the player name to search, and match ID is optional however when specified will display the player's stats for a specific match.
Deal or No Deal Command
Play a game of Deal or No Deal using a programmatically built image as the UI.
dd start to begin a game
dd select [#] to select your case
dd open [#, #, #...] to open cases
Dictionary Command
Uses the Merriam-Webster dictionary to display definitions of a given word, pairs the definition with a random image found using the Unsplash API - Search photos by keyword endpoint (with the dictionary word as the keyword).
define [word] where word is the word to find in the dictionary.
If more than one word is found, the results will be displayed in a pageable message.
Grand Exchange Command
Uses the OSRS Wiki Grand Exchange API to search for & display item prices.
g.e [query] where query is either the name or ID of an item.
If more than one item is found, the results will be displayed in a pageable message.
Gunfight Command
Win/loss tracker for Modern Warfare. Buttons are used to add wins & losses, results are saved to a leaderboard.
gunfight! to begin a session or to re-send the tracker message.
leaderboard! to view the leaderboard.
leaderboard! [#] to view a specific session from the leaderboard.
Hangman Command
Play a game of Hangman using a programmatically built image as the UI. The gallows is randomly selected from a variety of options. Either choose a word to play or get the bot to pick one from the dictionary.
hm start [word] to start a game using the given word.
hm ai to start a game with a word the bot picks from the dictionary.
hm stop to forfeit the game.
hm hint to unlock a letter in the word.
LOL Lookup Command
Uses the Riot Gamees API to look up a player's League of Legends stats and build an image displaying them.
[region] lollookup [name] where region is the optional region code e.g oce (region is assumed to be oce), and name is the player's summoner name.
Execute Order 66 Command
This command uses a role named target.
This role is applied to all members when they join and may be manually added/removed as with any role.
Typing kill list will send a private message to the user displaying the list of members who are targeted.
By typing execute order 66, the bot will join the voice channel and play a random audio clip before kicking all members on the list. (Members who the bot cannot kick will be removed from the list prior to executing).
Kicked members will be sent a message with an invite back to the server.
kill list to view targeted members.
execute order 66 to kick the targeted members.
execute.mp4
Millionaire Command
This command allows the user to play a game of Who Wants to Be a Millionaire. Buttons are used to answer questions/use the lifeline and winnings are saved in to a bank which is ranked on a leaderboard.
The questions are retrieved from the Open Trivia DB and are of random difficulty/topics.
millionaire start to start the game.
millionaire forfeit to forfeit the game (keeping the winnings up until that point).
millionaire bank to view your bank.
millionaire bank [@someone] to view another member's bank (where @someone is the @mention of another member).
millionaire leaderboard to view the bank leaderboard
MW Lookup Command
Uses the COD API to look up a player's Modern Warfare stats and build an image displaying them. This image displays the player's best (most used) weapons, streaks, equipment, field upgrade, and commendations, alongside their Win/Loss and Kill/Death ratios.
An optional query may be provided to display only a specific stat e.g a specific weapon or streak.
[platform] mwlookup [name] where platform is one of XBOX, XBL, PSN, BATTLE (optional & assumed to be Battle.net), and name is the player name to search.
Alternatively, [platform] mwlookup [name] +[query] may be provided, where platform and name are as above, and query is the name of a stat to display e.g +bradley to display only the player's Infantry Assault Vehicle stats.
MW Random Command
Generate a random Modern Warfare loadout and build an image to display it. Assign a random name to the loadout.
The generated loadout abides by all in-game restrictions e.g 2 primary weapons if the overkill perk is rolled. This also applies to the weapon attachments, where if a rolled attachment blocks another attachment category e.g a barrel attachment blocking the muzzle category, no muzzle category attachments will be added.
A short comment about the loadout is generated and appended to the message.
Possible weapons & attachments can be seen here.
mwrandom
OSRS Lending Command
Track OSRS item loans between members. Loans are accepted/declined via buttons and are displayed as a dynamically built bank image.
osrslend [@loanee] [items] where @loanee is the @mention of the member to loan items to, and items is a comma separated list of items with optional quantities e.g twisted bow, 500GP, monkfish x5
osrslend forgive [loan id] where loan id is the id of a loan to delete (must be the loaner of the items)
osrslend loans to view a list of your incoming/outgoing loans
osrslend loans [loan id] to view the details of a specific loan with the given loan id
OSRS Lookup Command
Uses the OSRS Hiscores CSV API and Wise Old Man API to look up a player's OSRS stats and build an image displaying them. This image displays the player's skills, bosses, clue scrolls, achievements, account type, and optional XP tracker.
[optional args] osrslookup [name] where name is the name of the player to look up, and optional args is any combination of xp, virtual, and league.
xp uses the Wise Old Man API to get the player's weekly XP gained and appends it to the image. If the player is not currently tracked on Wise Old Man, a request is made to begin tracking them for next time.
virtual displays the player's virtual levels instead of their actual levels.
league displays the player's Trailblazer League stats instead of their normal stats. Will display map/relic unlocks if exported from osleague.tools and uploaded using the TrailBlazer Command.
The image is built in individual sections, allowing the exclusion/inclusion of sections dynamically, e.g if a player has no clue scroll completions, the clue scroll section is not added to the image.




























