Development · Project

Discord Bots

Around 10th March I started developing Botchael and the whole process was hell of a lot of fun.

The idea of getting into developing something as such was influenced by 2 headlight reasons; mainly my passion of automation, “slaves” that are there virtually doing things for me, programmed to do things in certain ways and also that my boyfriend was thinking about adding bots on his server, so I created Botchael and put it right in his server.

Programming

The programming and the development of the bot was not really simple, since I never done such a thing before, I couldn’t imagine too easily how even a discord bot runs, but managed to finish the bot this fast with Google and Stack Overflow, reading first google result’s title and immediately realized that I needed a console application, Discord.NET NuGet and basic ideas for what discord bots are, since I am also new at Discord.

Integrations

As always, I try to code features, managers or systems that are easily to use, plug and play in projects and quickly editable by header parameters — so I did with this project as well.

The Visual Studio Solution has only one project and in the project can be multiple bots that are ran for Discord Applications using tokens. It doesn’t run simultaneously more than one bots in one console launch, and it runs only with command line parameters, which defines bot ID, token, family name (which is used for the root folder of the bot, where all the configs of mods are, server specific and separate). So, can create a master .bat file that runs the application multiple times with different settings (different bot, different token). And all that works with no issue (even though I am not sure this is the most stable way to code it — but everything works greatly).

Next

Well, it’s been a pretty short project to work on, so, I’ll eventually just add more mods or different bots for specific things or services (like Trello, Notes, etc). Not ’cause there aren’t already.

Leave a Reply

Your email address will not be published. Required fields are marked *