Discord MarketBot for EVE Online
![Internet spaceships are serious business](https://img.shields.io/badge/internet%20spaceships-are%20serious%20business-2F849E.svg?style=for-the-badge)
General information
The purpose of this bot is to get fast information on the EVE Online market for specific items and in specific regions.
It uses a combination of data from Evepraisal and the EVE Swagger Interface provided by CCP.
Usage
Add this bot to your Discord server! or alternatively you can try it out first on my dev server.
Bot commands
Commands can be found on the MarketBot website's commands page.
Discord permissions
Required permissions can be found on the MarketBot website's permissions page.
Screenshots
MarketBot in action!
![Image of price command](https://user-images.githubusercontent.com/3472373/37924487-42f77698-3132-11e8-9df4-c316ee4457f5.png)
![Image of sell command](https://user-images.githubusercontent.com/3472373/37924510-560e97b6-3132-11e8-9fd3-54df753bbc1f.png)
![Image of item command](https://user-images.githubusercontent.com/3472373/37924531-7113853a-3132-11e8-94ca-c920e356bbb1.png)
![Image of history command](https://user-images.githubusercontent.com/3472373/37924569-8c5fa3a0-3132-11e8-9b56-e6bbbcee37bc.png)
Logging
This bot keeps records of issued commands, this data is used to monitor performance, usage and accuracy of the bot.
What information does it save?
- The channel in which the command was issued.
- For counting how many unique channels/servers this bot is active in.
- The username and id of the user who issued a command to the bot.
- This helps me count how many unique channels the bot is active in, because the above logging does not include Direct Message channels
- The item-parameter of the command and the item the bot did the search for.
- For monitoring the accuracy of the bot's guessing system and tracking which items are most often searched for. This data will allow me to build shortcuts in the guessing system to improve performance.
- The region-parameter of the command and the region the bot did the search for.
- For counting which regions are most often selected to search in. I have a feeling it'll be The Forge, but with this data I can build new functionality that can search a select few regions at the same time to get you the best item price. It is impractical to have this feature search all regions in New Eden.
Feature requests
Please open an issue if you have any feature ideas for this bot
or are missing any functionality.
Alternatively you can contact me in EVE Online: Ionaru Otsada
, or on Discord: Ionaru#3801
.
Self-hosting
It is possible to self-host this bot, it requires NodeJS 14 or greater.
Step one: Creating a bot user
- Go to https://discordapp.com/developers/applications/me.
- Create a new App, give it a name and picture. The "redirect URL" is not needed. Click "Create App".
- Click on "Create a Bot User" and confirm.
- Click the link next to "Token" to reveal your Discord Bot Token, you will need it later.
- Invite the bot to your server by placing the bot's Client ID in this link:
https://discordapp.com/oauth2/authorize?client_id=PLACE_CLIENT_ID_HERE&scope=bot%20applications.commands
- Paste the link in your web browser and follow the steps on the Discord website.
Step two (Docker): Installing the bot
- Install Docker and Docker Compose.
- Go to the Releases page, download and extract the latest release.
- Go to the config folder, create a copy of
marketbot.template.ini
and name the copy marketbot.ini
. Set the Discord Bot Token to the one you created.
- Create a
.env
file containing the variables MARKETBOT_CONFIG_VOLUME
, MARKETBOT_DATA_VOLUME
and MARKETBOT_LOG_VOLUME
pointing to the relevant directories (or leave them empty).
- Run
docker-compose up
.
Step two (Node.js): Installing the bot
- Install Node.js.
- Go to the Releases page, download and extract the latest release.
- Install dependencies with
npm install
.
- Go to the config folder, create a copy of
marketbot.template.ini
and name the copy marketbot.ini
. Set the Discord Bot Token to the one you created.
- Go back to the main folder and run
npm start
.
Contact me in EVE Online: Ionaru Otsada
or on Discord: Ionaru#3801
if you need any assistance.
To-Do & Ideas
- [x] Support for searches in Jita, Amarr & other trade hubs
- [ ] % difference between lowest sell order and highest buy order
- [ ] Show volume in price history
- [ ] Show deviation between low and high in price history
- [ ] EVE Online quotes in bot (error) messages
- [x] Darker graphs to better match Discord colors
- [x] More information in price command output (low/high)
Developer information
Want to contribute? Awesome!
Just follow these steps to get started:
- Fork this repository and clone the fork into a directory of your choice.
- Follow the Self-hosting steps to get a development version of the bot up and running
- Make your changes, test them and create a pull request.
Special thanks
![Bugsnag](https://images.typeform.com/images/QKuaAssrFCq7/image/default)