Jonin // v5 Changelog
Let's get some things right! This is our first time making a full webpage as a changelog to show what changes have been made to Jonin. Why? It’s because Jonin is growing, thanks to all of you who have supported us from the beginning. Everyone has been super helpful in making Jonin one of the best bots there is. We believe that is now time to officially start recording all of the major changes and updates that we make to Jonin! This changelog is also not updated for every change, it will only be updated for the most important changes.
Here is a quick note of the stats that we wished to achieve and what we actually achieved. Jonin was expected to be used about 5,000 times in a year but in half a year Jonin has been used more than 45,000 times crushing the expectations. Jonin was expected to have a member count of 50,000 which would fluctuate constantly but currently Jonin has on average 200,000 users and is steadily increasing which is just amazing at how integrated the community has made Jonin. We never expected Jonin to get over 100 servers but as of September 2020 Jonin has surpassed 550 servers! And this is why we believe that Jonin’s v5 is a very huge and integral update that is necessary for the future.
A few weeks ago you might have seen the announcement in the Jonin Support server, the one regarding the 50+ command removals and the downtime over multiple days. This was due to a hack of our dedicated host server for Jonin. We lost all stored data (none of the user and guild data was leaked during this hack but Jonin’s code was exposed) therefore we wiped all data on the dedicated host and we were forced to stop using this host. Once we had cleared the issues, we still had to deal with the aftermath of running Jonin without a database which required the removal of numerous commands. All commands that required an API key or were scheduled for updates were also removed for safety reasons. It was a very time consuming process to rebuild the bot to run properly. But after a lot of work and issue fixes we are back and ready to prove our skills! Jonin also recently got approved for intents, which means commands that require guild data can now function properly again.
We have a long overdue thank you to TXJ#5664, he helped host Jonin and keep it running since v3, and is one of the main reasons why Jonin is alive today. With many systems being added we are also cleaning up the server’s functions. All the roles have been updated and permissions for channels have been updated. The server will also be more integrated with Jonin as your role can give you perks on commands!
Jonin’s highly complex v5 brings together a newer and more efficient code base which also has a better error handling system. Version 4 of Jonin was an unnecessary rush and caused a mess that was never needed. With the introduction of v5 all the code has been checked a multitude of times and most commands have been re-coded from scratch to give them a more updated code structure instead of improving upon previous code.
So what changed? Well… everything did! The old code base that was used for v3 and v4 was heavily modified and reconstructed to work in a more efficient way with the sharding that has now been integrated with Jonin. The structure and naming system for all commands has been updated and changed to work in a more interconnected way. All commands have also been heavily optimized and updated to work to the best they can. Error handling has also been reinforced to keep Jonin running under unknown issues. A new premium system has also been implemented to Jonin, read more below.
A new premium system has been implemented onto Jonin to get more support and keep her alive. The premium system works in the following way: You subscribe to 1 month minimum of Tier 2 on the Patreon. Once you gain the role (Please DM an owner if you run into any issues getting the role) you can ‘claim’ a server to gain the premium. Why a server? Well, due to the importance of this new system and to keep data secure it is safer for us to store server data instead of user data. Regardless, AFK is the only exception that allows the storage of user data since it is temporary. Because of this system we are NOT allowing a command for the user to switch their premium to another server, to do so you must join the Jonin Support server and request an owner to change your subscription under approval of the server. So what does premium do? The premium system gives more perks on Jonin, as well as more information for almost every command, such as higher quality images or data that isn’t shown on non-premium embeds.
For 4 version updates Jonin has stayed a multipurpose bot, but after recent command additions we have officially found a useful purpose for Jonin. A chatbot! Talk with Jonin and a complicated and powerful AI will give you a response. To keep this feature working properly we will be storing 10 past conversations (20 messages) with the bot in cache. No users will be able to view another user’s chat history through the bot and normal messages that do not regard this command will not be recorded. This command stores data as a user so you can have the same conversation over multiple servers. You can set channels to automatically trigger this command. So any message sent in those channels will be replied to. You can also DM Jonin to trigger this command. The server’s main language can also be set in the database so all chat responses in your server will be automatically translated to the wanted language. The default language will be English (EN) but can be set with a command.
Jonin’s v5 also brings forward the blacklist feature, with this feature the server moderators can set and restrict Jonin to specific channels. If all given channels are deleted, Jonin will not respond in any channels unless the blacklist command was run by a moderator. If no channels are blacklisted for a server, Jonin will respond in all channels. The user blacklist has been dropped which means all users that were previously banned from using Jonin can now continue to use Jonin. Note, Jonin does store command runs for safety checks and troubleshooting.
The content of the day (COTD) command is accessed through the open NASA API. But due to the API’s being updated by 3rd parties there is a higher chance of errors. Therefore the error handling for this command has been drastically increased with multiple checks for issues so the bot can function properly without breaking. With the introduction of the premium system the COTD command will allow HD images whenever possible. A new updated module is now being used to make the authenticated API request, this new module is for better error handling and faster requests. Due to the API being updated every day and having downtime for a few hours the command cannot be improved any further.
During v4 the IP command was under beta testing and was not publicly stated as a command. But during v5 development we have decided to keep this command and improve the format of the information. Some information on this command requires premium to view. This command now uses an open database as an API so this command will likely change categories in future updates. This command does not store any data and any dynamic data is not controlled by Jonin.
//ip 126.96.36.199 //ip jonin.gq
The news command has been a decently used command and did not require many changes. Most of the embed format and code function remains the same. Error handling has been majorly improved to keep this command from causing crashes as experience from previous versions of this command.
//news Canada //news * No input defaults the location to the United States (US)
In past reports many users have had issues understanding how the OSU! Command functions, so a new system has been implemented! Passing the keyword ‘user’ will make the code check only for users, passing the keyword ‘beatmap’ will only check for beatmaps, passing the keyword ‘profile’ will make an image with profile stats for the given osu user, passing no keywords for filtering will check for beatmap first, if none are found then users are checked, there is no auto profile image maker for the no filter call. Posting entire links will also work now, as the code will detect the user ID or beatmap ID from the link.
//osu Fangary12 //osu profile Kirito8704 //osu user HVKurasad //osu beatmap 1740944 //osu 1740944 //osu https://osu.ppy.sh/beatmapsets/830964#osu/1740944 //osu https://osu.ppy.sh/users/17284849
The search command will continue to use the Google API to get requests for commands. It has had no issues and not much could be updated so the only stuff that was changed is the structure and the error handing. Profanity and unsafe words will also be removed from the responses.
//search how to hack google
In a goal to get 100% SFW commands, we have added a profanity filter on the responses as well as a new format to make this command look more unique.
The weather command has been changed, it no longer requires a weather API but will stay in the API category until future updates to keep the system easy to understand. A new option system has been implements so when more than 1 location is found under the given name, Jonin will ask you to pick one of the locations.
//weather Dallas //weather Dallas, TX //weather Dallas, TX, US
The fomat of the debug command has been updated, but the main function and structure has only been minimally updated since it shows general information that already works properly.
The dir command has been updated to the new code orgainzation format. It has also been change to use the client.commands collection instead of the fs module to find the location of a command.
The DM command has been working properly and needed no changes other than minimal stucture updates.
//dm 272442568275525634 Hello there!
Only a few changes have been made for the eval command, the main thing being the formatting of the status. The eval command now uses the description instead of the embed field for a higher character limit.
The entire stucture of the reload command was remade and made to work with the new command system and code structure, a few bugs that have persisted for a while but they have finally been squashed!
//reload ping //reload devs //reload
The toggle command has had a few issues in it's auto-detection for commands or command groups, those have been fixed and the structure has been updated to work with the new code format.
//toggle ping //toggle devs //toggle off/on