This project is no longer being worked on.
Thanks to the Albion Online Data Project, and the many players that download and run the Data Project client while playing the game, market price data are collected and shared freely with all Albion players. Perhaps the most popular tool that utilized these data is AlbionOnline2D.
The Discord bot fetches the latest minimum sell order prices (same as AlbionOnline2D), and plots the past 7 days historical prices, for the item that you asked. The assistant will find the closest match to your query and also provides item suggestions in case you forgot how to spell. What a sweet assistant.
Host it yourself.
emilie price <item name>
- Returns latest minimum sell order prices as Discord embed, and plots 7 days historical prices. (First screenshot)
emilie quick <item name>
- Same as previous command, but no plotting of 7 days historical prices (faster).
emilie search <option> <player/guild name>
<option>
can beplayer
orguild
.- Search and returns details about a player/guild.
- Screenshot: Searching for player
- Screenshot: Searching for guild
emilie gold <number of days>
- Return past 6 hours gold prices, and plots past
<number of days>
gold prices. - Screenshot: Plotting gold prices for past 7 days
Admin commands (Only for self-hosted bots):
emilie extension <option> <cogs filenames>
<option>
can beload
,unload
,reload
.- Load/Unload/Reload cogs in the cogs folder, e.g. if you want to remove or add certain features.
emilie ping
- Bot will return the latency.
emilie eval <python variables/generators>
- eval is simply the Python function eval.
- Allows you to check stuffs that the bot knows, i.e. list of members, servers the bot is in etc.
- Screenshot: Listing all users with the role 'Member'
emilie exec <python codes>
- exec is the Python function exec.
- This is a powerful command and care must be taken when using it.
- This command allows you to run any Python code, thus it can be abused to spam or perform tasks that breaks the bot.
- Screenshot: Finding the first 300 primes (I know this is arbitrary... but just to show you what it can do.)
The eval and the exec commands are there because I got tired of adding features to the bot.
I don't have to implement anything if I can simply run arbitrary codes.
- Famous last words before breaking everything
- First go to Discord's developer portal.
- Create an application by clicking on New Application.
- Click on your newly created application, and on the left panel click on Bot.
- Build a bot by clicking on Add Bot.
- You have now created a bot account.
- Download all the files in this repository, and the requirements. (Look at Requirements below)
- In your bot page in Discord's developer portal, copy the bot's TOKEN.
- Edit config.ini, and change
botToken = abcdefghijklmnopqrstuvwxyz
tobotToken = your copied token
. This is to tell the program to use your bot account. - Open cmd or your terminal in the directory where you downloaded the files. Run
python main.py
. - Your bot should now be hosted on your computer and you should see the message:
Logged in as Bot_Username#1234.
Connected to:
- In your application page in Discord's developer portal, click on OAuth2.
- Under Scopes tick the bot box.
- Choose the Bot Permissions below as you like.
- Copy the link under Scopes once done, and open in your browser.
- Choose your server and go through annoying reCaptcha and you are done.
- Everytime you start the bot, the message will now say:
Logged in as Bot_Username#1234
Connected to:
Your server name
- Inside config.ini you can change or append:
adminUsers = 'username1#1234', 'username2#1234'
commandPrefix = 'emilie ', 'Emilie '
- commandPrefix is how the bot should be called.
- Being an admin user allows you to load/unload/reload cogs, and access utils.py commands.
- The utils.py cog contain powerful commands that should only be callable by admin users.
- Such commands can be abused to spam the server or to kick members. (Refer to Features below)
- You can also change:
debugChannelID = 12345678
workChannelID = 12345678, 12345678
debug = False
onlyWork = False
- If debug is True, then the bot will send debug messages to the channel specified by debugChannelID.
- If onlyWork is True, then bot will only work in channels specified by workChannelID.
- Channel IDs can be obtained by first enabling developer mode in Discord under Settings>Appearance. Then right clicking on a channel and click on Copy ID.
-
Python 3.6 or higher
-
- The bot is written with discord.py, an async API.
-
- matplotlib is required to plot the 7 days historical prices.
To install the required Python libraries, run the command:
pip install discord.py matplotlib
Or if you use
conda
:conda install matplotlib
- Item data search to show recipes etc.
- This is also possible but not implemented yet.
- The item search API is already included in the the cog cogs/search.py, but nothing is done with it yet.
See the LICENSE file for license rights and limitations.