This LEGO Discord bot is used to show general informations about LEGO sets and parts in chat.
Since July 2020, LegBot has been invited to more than 100 servers ! Thank you everyone ! I hope the bot is doing right for your queries, do not forget to contact me on twitter if something goes wrong or is missing !
As of February 2021 LegBot is on more than 300 servers ! This is insane !
March 2021 : 400 ! I'll consider adding a tag instead of editing this file. September 2021 : almost 600 !
Thanks you everyone !
On July 6th 2024, Legbot will start to dysfunction.
This is due to a change in Discord's policy that requires developers to prove their identity through an official document. And there's no way that I will give them my ID card.
If you want to use Legbot for your Discord server, you will now have to selfhost the bot using this repo code.
Thanks everyone who supported this project for the last 4 and a half years. I can proudly say that it was installed on more than 900 servers, only through word of mouth. Thanks to the people who contributed with ideas and improvements.
All commands are listed on Legbot's website.
!set [SET NUMBER]
to have general useful infos about a specific set
!part [PART ID]
to have informations about a piece (Bricklink id).
Green for pieces still produced, orange otherwise
!search [query]
Search for a set by name (Beta feature, may be surprisingly wrong)!part " search terms "
Search for a part name (Beta, not usabe in the middle of a sentence)!mixeljoint
Show a list of the most used mixeljoint (with an awesome drawing of each)!bs [SET NUMBER]
Get a direct link to the Brickset page of the set!bl [SET NUMBER]
Get a direct link to the Bricklink page of the set!review [SET NUMBER]
Get the set score based on the BrickInsights review!help
Show all the bot commands!inviteLegBot
Get a link to invite LegBot to your server!credits
Display the bot credits
On most of Legbot's messages you can add reactions to have specific behaviour.
:mag_right: :mag: :frame:
Will post a bigger picture of the set/part. (Useful on mobile where you can't click the thumbnail !)
:wastebasket:
Will delete the message. Works on the pictures posted by the 🔎,🔍 or 🖼️ interactions.
- Rebrickable API : https://rebrickable.com/api/
- Brick Insight public API : https://brickinsights.com/
- Brickset API : https://brickset.com
- BrickLink links : https://www.bricklink
- BrickOwl links : https://www.brickowl.com
This bot is based on the discord.js library.
- NodeJS 16.9.x or higher
- Clone this repo
- Delete README.md and the readme.assets directory (optionnal)
- Run
npm install
- Set your own api keys and tokens in a fresh
config.json
based onconfig.example.json
- The
trigger
conf is the "how" you speaks to the bot. Default :!
- The
- Run
node app.js
- Enjoy
Giving a tip through Liberapay or Coindrop will help me paying the monthly bill of the bot hosting. (About $7 a month). Surplus will go to Brickset and Rebrickable as Legbot would not be the same without them.
Legbot changelog and versions are available on the release page.
- 1.5.5
- The
!set
command now returns the designers of the sets (if available) and the related Bricklist.- Require an external script to get this data.
- Improving
!set
string parsing in middle of sentences. - "Delete" and "bigger picture" reactions have now a timeout of 240 seconds instead of 120.
- Legbot now replies directly to the original message.
- Adding websites favicon at the bottom of cards depending on the origin of the data.
- Upgrading discord.js version and changing node-fetch call to match the new behaviour of the library.
- The
- 1.5.4
- Improving the
!part
search using a Levenshtein implementation to find the most relevant results. - Adding the "Print of" section in the part card if the given result is a printed version of a brick.
- Adding the "Alternates" section in the part card to show mold variations (like
4081a
/4081b
)
- Improving the
- 1.5.3
- The "bigger picture" reaction can now itself have a 🗑️ (
:wastebasket:
) reaction to delete the enlarged picture. - Extended the 🗑️ (
:wastebasket:
) reaction listener from 60 to 120 seconds. - Prices and PPP now contains UK and DE prices.
- Fixing the date output for a part released during a single year (no more "from 2002 to 2002")
- The "bigger picture" reaction can now itself have a 🗑️ (
- 1.5.2
- Various improvements.
- You can now add a 🔎,🔍 or 🖼️ reaction within 120 seconds to ask the bot to post a bigger picture of a set or a part.
- Adding a direct link to the Brickset search page at the end of the
!search
results. - New parts are now distinguished from "in production" and "no more produced".
- Fixing an issue where the instructions links were broken.
- 1.5.1
- Various bug fixes.
- You can now delete a bot message by adding the 🗑️ (
:wastebasket:
) emoji as a react in the 60 seconds following the post. - Experimental pieces search feature. Set the query between double-quotes like
!part "Mahiki Metru"
.
- 1.5
- Adding the
instructions
section to a set query. Thanks @"Commander Purple" on top.gg for the idea ! - Adding the AGPL licence.
- Updating nodejs to v16.x
- Updating discord.js to 13.x
- Adding a beta feature to search for sets using
!search Piruk
for example. - Adding the
maximumSearchResults
correspondig var to limit the bot output.
- Adding the
- 1.4.4
- Blacklist some queries !
!set 69
is a very fun search, but uses bandwidth and server resources.
- Blacklist some queries !
- 1.4.3
- All REST requests are now using the async node-fetch way.
- Improving the
!part
search by doing a second request if the first one did not find anything. - Adding badges to the README.md
- Updating the log system to be csv-parsing compatible
- 1.4.2
- Adding a custom command to fetch the Brickset's random set of the day
- Require an external php script (at the moment)
- Adding a custom command to fetch the Brickset's random set of the day
- 1.4.1
- LegBot is now able to fetch sets with hyphens ids (6862-1 or 6862-2 for example).
- The old way is still working, but will fetch the "-1" set by default.
- Updating the readme.md to say that LegBot is now on almost 300 servers !
- Brickset is now listing LegBot in their apps section !
- Updating the discord.js lib to 12.x
- LegBot is now able to fetch sets with hyphens ids (6862-1 or 6862-2 for example).
- 1.4
- Removing the ability to search for multiple pieces (vers 1.2.1), it was not used
- Removing the corresponding config var (
piecesMax
) - You can now pass a command in the middle of your sentence ! For a more natural flow.
- 1.3.1
- Fixing a crash on
!bl
and!bs
commands. - Fixing a crash where no sets were found but with a success message from the API.
- Fixing a crash on
- 1.3.0
- The great comeback of the full
!set
command. Thanks you Brickset for the API key :) - Adding a config entry for the Brickset API key (
bricksetApiKey
)
- The great comeback of the full
- 1.2.3
- Not a big update, I just wanted to mess around with a MixelJoints custom feature.
- Not that crazy tho.
!mixeljoint
- Not that crazy tho.
- Updating the custom functions declaration by removing the necessity to specify the directory.
- Not a big update, I just wanted to mess around with a MixelJoints custom feature.
- 1.2.3
- Due to an update at the main external API, sets data has been missing for few weeks. !sets and !review are now back, but with less informations than before. I hope I'll be able to fix that soon.
- Review are now returned with a pretty "card", like other queries.
- Addin a debug log
- Adding the corresponding config var (
debug
, bool)
- 1.2.2
- You can now add custom functions without messing with existing code, simply add a js file and declare it into the config var. (See custom/example.js)
- Adding the corresponding config var (
moreFunctions
, can be an array) - The bot is now adding a 🙄 reaction to a message if he didn't find the piece / set.
- The bot is now adding a 🤔 reaction when there is no set or parts id given.
- General code rework on message var.
- 1.2.1
- You can now search for multiple pieces (ex :
!part 36840 36841
) - Adding the corresponding config var (
piecesMax
, default = 2)
- You can now search for multiple pieces (ex :
- 1.2.0
- Adding logging of commands, anonymously, to get infos about most used commands to improve them in the future.
- 1.1.0
- Adding the !botinfo command
- Updating the readme
- Ordering code
- 1.0.0
- Initial release