Skip to content

Instantly share code, notes, and snippets.

@Rapptz
Created June 10, 2021 14:10
Show Gist options
  • Star 59 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save Rapptz/99cf4c1ab8b5ce584e2bf0b7ba88d5f8 to your computer and use it in GitHub Desktop.
Save Rapptz/99cf4c1ab8b5ce584e2bf0b7ba88d5f8 to your computer and use it in GitHub Desktop.

I have a bot named R. Danny. It is actually the oldest bot on Discord. I made that bot within a few hours of me joining Discord. I remember the first day I joined Discord, August 10th 2015, my friend was trying to convince me to move our operations from Skype and IRC over to this chat he had just found today called Discord. So I logged on and tinkered with it and I was pretty impressed as my first impression. I spent that day looking up an API for Discord and couldn't find anything until I stumbled upon a package named node-discord by izy852. This node-discord package was incredibly barebones, it was just a WebSocket wrapper with two events, a message and a debug event. It might as well be the simplest sugar for Discord. But I looked at it and I played with it for a while and I decided it was possible for me to move our tournaments over to Discord with what I had there.

I didn't use node-discord for very long, I really only used it for probably the first two days before throwing it away and started reverse engineering the API myself via discord.py. I didn't like JS much and I wanted to make a library for my bot to truly shine. I essentially made discord.py for the sake of my bot. It was during this time that Voltana, izy, and I made a server known today as Discord API. In that server we spent our concentrated manpower reverse engineering the API for fun. Stan would join and give us API announcements on things that would break between v1, v2, and v3 along with new features that might affect our really tiny ecosystem. Our ecosystem was small -- we barely had 200 members at the time and that was a lot! But it was our nice little ecosystem.

I made R. Danny with the intention of using it in the r/Splatoon server. It was there since day 1 essentially. We used to do all sorts of cool things like tags, profiles, and checking in-game information like maps and equipment. It was a vital resource for that server. I remember people were impressed that I had a bot and asked me how I did it. I motivated a few others to start making a bot of their own. One of those people was someone you might know as jagrosh. He wanted to make his own bot and add it into the r/Splatoon server as well. He ended up becoming a major bot developer for the platform by creating popular bots such as GiveawayBot and Yggdrasil. People still, to this day, mention how my bot has impacted them and improved their experience.

R. Danny was the first bot to come up with a starboard feature. It's been copied a lot by other people nowadays, which is fine. The feature came from StackOverflow Chat, which is where I used to hang out before Discord was a thing and I wanted to come up with a way to port it over so my friends would move over to Discord. I've implemented a lot of influential features using R. Danny and used him as a way to drive the design of discord.py into what it is today. Most library developers did not maintain public bots -- I used to be the sole exception.

During the verification fiasco, my bot became gimped. I was against the verification system and didn't appreciate that my hobby was being neutered over concerns that I did not share with the newly formed API team. My bot is a vital moderation bot for all the communities I'm in. Mason insulted my bot's potential death. I still hold that very personally. Due to a bug and lucky accident, my bot still has the members intent despite being unverified. It was a lucky accident -- I had checked the box before the flip was switched and it never toggled itself off. It's been unnoticed since I haven't told any staff about it. Please don't fix it.

Unfortunately for me when this message intent change goes live I'll have to officially sunset R. Danny and all my bots. An actual literal death of my oldest bot and everything this hobby meant for me. A piece of my history and my time. A piece of Discord history. I'm sure a lot of the people over at Discord Inc. don't care about my bot at all. Maybe some would even do another jab at me for being emotionally attached to it. But to me, this actually matters.

It depresses me.

@synesthesium
Copy link

really sad. all these changes discord is making feel like it's no longer a passion project and more of an evil corporate entity who wants everyone to think in the same way they think.

yeah. for some context, i've been a bot developer since late 2018, who has been near nonstop since. it's how i learned python. it's what opened me up to coding in general. it's why i'm making a game today.
this development, this feeling of freedom and infinite possibility, the thing that kept me writing bots and trying new ideas is starting to feel extinguished with the constant clamps put onto the developers.
i shouldn't have to submit a request to read message content; i should just be able to read it.
i shouldn't be forced to adapt to an objectively inferior system; i should just have the option to.
the harnesses on bot development are just going to cause more and more clones of the same bots that already exist. there's gonna be more mee6 and rythm clones than there will be stars in the sky.

and let's not even get started about the new bot developers -- this is going to be their first impression of discord bot development. they won't have nearly as easy of an experience getting in as the older bot developers did.
this is just about the final nail in the coffin for me as discord goes. i don't know what i'll move to after; telegram, matrix, who knows. all i know is that i'm not willing to stick by a platform that makes decisions for, excuse my language, the fuck of it, that sits here and does nothing about the predators on their platform, that allowed and defended "cub" content (don't google it), i could go on and on and on but it's so long of a list of screw-ups that i can't go into it right now. maybe i'll make my own gist for that, who knows.

i just know that this is seriously going downhill, and i don't see it coming back up

tl;dr, i'm a bot dev and i heavily disagree with the recent and imminent changes to discord that inhibit creativity and make it harder for new users to get into bot development.

@squishycat92
Copy link

and let's not even get started about the new bot developers -- this is going to be their first impression of discord bot development. they won't have nearly as easy of an experience getting in as the older bot developers did.

I actually am a developer who is pretty new to bot developing. I started developing my bot around 5 days ago as a way to put my Python skills to use and practice writing code in it. I had an easy enough time working around the API limitations since my bot is currently in <100 servers, meaning that I'm not required to verify my bot for access to some of the other intent features.

Today, I was working on implementing the new Timeout feature and happened to come across this gist while doing research as to why discord.py was an archived repository. Being new to Discord bot development, I was not aware of the mandatory transition to slash commands.

I have to say, I do not agree at all with Discord's changes to the API platform as a whole. I've never been a fan of slash commands, and based on how slowly the other major bots have been implementing them, I don't think a lot of others are either. Not only are they more confusing and complicated to work with, but slash commands take away some of the immersiveness of bots that I've always loved. Instead of typing a slash and using your mouse to pick from a list of available options, I've always preferred simply typing the command into the channel. It really feels that Discord is babying up Discord. The mouse-picking interact method with bots honestly seems really gimmicky and the in-chat message that says "user used /info" or whatever seems completely unnecessary; I wouldn't be surprised if Discord decided to add bot output to some sort of secondary text box (under the send message box or in the sidebar perhaps).

Even without considering slash commands, restricting developers' options of using the API to make more awesome bots is still a terrible move by Discord. The dropping of library support forces developers to spend more of their time on actually implementing the API into their code (whether through an API request with response parsing or through other means) and less time on actually implementing their ideas into a functional bot, which is what I was looking forward to. The remaining libraries that actually support Discord's new API will give existing developers a choice: completely rewrite their bot in the same programming language to support the use of slash commands for those who are developing in languages that support the new API, rewrite their bot in a different programming language that supports the new API so that they can continue developing, rewrite their bot in an incompatible programming language and be forced to implement the API themselves, or completely quit developing the bot.

I fully respect and understand your decision to stop development on discord.py, and I wish you luck in future projects that you may work on. Discord is killing many of the small bot developers who don't have the time or knowledge to simply rewrite their bot in a different language and/or completely re-implement API methods in their code. I really want Discord to bring back the legacy way of interacting with bots (especially with how buggy slash commands currently are - even many big bots such as MEE6 and Dyno constantly run into errors when using slash commands), but I have no expectations for Discord. As for me, I'm not doing anything: I will continue developing my bot using discord.py (mainly for the learning experience of developing with Python). By the time April of next year rolls around, I'll have to consider my options again.

@bsod2528
Copy link

All I can say at this moment - is to take care of your health Danny ; ) Because you've not only made history, you're motivating many other people around the world to take up such a wonderful art ; ) Ciao

@UltiRequiem
Copy link

Tale care Danny :')

@TechStudent10
Copy link

Maybe some would even do another jab at me for being emotionally attached to it. But to me, this actually matters.

It depresses me.

Discord might have my most favorite ads and marketing ever, along with a basically universal messaging platform, the developer side of things with verification and whatnot just feels like a pain. I used Discord.py to make my first ever bot for Discord and I still use it today. The API team really needs to figure out what they're doing.

@polycord-token-invalidator-bot

The stupid thing that Discord doesn't get is that this doesn't stop selfbots at all, but rather encourages devs to make selfbots to get around these restrictions (yes I know about the guild limit, but you get all intents handed to you) It just hurts legitimate devs. Get your s**t together Discord.

@StormTersteeg
Copy link

Welp... I was wondering why my bots stopped working properly... I remember seeing this change being scheduled but it seems like the day is finally here.

Very sad to see Discord neglect and ignore it's bot developers... I completely understand your decision and I'd like to thank you for all the work you did for the community. R. Danny walked so our bots could run.

@SkyfallWasTaken
Copy link

RIP R. Danny.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment