Bringing TeamSpeak voice notifications to Discord
In the past few weeks my friends and I spent quite literally day and night on Discord's voice chat. This inevitably brought back some good memories from the Summer nights we spent playing games and chatting away on TeamSpeak. And even though Discord is pretty great, there's one TeamSpeak feature missing to complete the nostalgia trip: the obnoxious voice notifications. Let's bring those back. User joined your channel
Introducing DisTeamCordSpeak, a Discord bot that'll play TeamSpeak's infamous notification sounds on voice chat whenever someone connects or disconnects from a channel. More on how that works below.
The source code and instructions on running it are available on GitHub and I highly recommend playing around with it to see what dumb ideas you come up with to annoy your quarantained friends.
How does it work?
My first attempt at getting this to work involved breaking open Discord's client and replacing the existing connect and disconnect notification sounds. Discord's desktop app is built with Electron, meaning it's basically a glorified webapp. Speaking of its webapp, it's even easier to hack our own sound samples in there. However, the downside of changing these notifications clientside is that they'll only work for people with the modified client. I also figured that Discord's excellent engineers (and legal department) might not be too happy with some random guy on the internet distributing a hacked client. So let's try a different approach.
Instead, we'll have bot user that sits idle on the server. When it sees someone joining a voice channel, the bot itself will join said voice channel and play the infamous user joined your channel notification.
At first I thought this was gonna be an imense pain: dealing with Discord's API, opening audio files, making sure the audio streams to Discord correctly, etc. However, a quick Google search led me to discord.js which does all that (and more) in a couple lines of code.
The end result is DisTeamCordSpeak, probably the worst name ever for the dumbest idea ever.