• Stars
    star
    425
  • Rank 101,702 (Top 3 %)
  • Language
    JavaScript
  • License
    BSD 4-Clause "Ori...
  • Created over 6 years ago
  • Updated 26 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

The open source Discord bot that solves all of your problems.

Switchblade is gradually coming back and we are only accepting new PRs on "next" branch. The "main" and "dev" branches are still outdated.

Switchblade has outdated code and we don't recommend self-hosting unless you're using for a personal server. We are NOT providing any type of support.


Switchblade

Switchblade is a free and open source solution to your server managing problems, built from scratch with code organization and quality in mind. Our goal is to cover as many functionalities and niches as possible, while still maintaining high quality.

Table of Contents

Commands

Switchblade has over 190 commands, and having to update a list here would be unproductive. Instead, we have a commands page on our website that pulls command metadata straight out of the running bot, so you always get the latest information. Check it out!

Music

⚠ Music is currently disabled on Switchblade's main instance!

We've put a lot of effort into our music system, so you always get the best listening experience. Our system accepts URLs from many different services, like SoundCloud, Deezer, Twitch, and many more. In order to provide you ears with delightful lag-free music, we've spread our Lavalink nodes around the globe, so there's always a low latency connection available to the voice server you're in.

To play a song, join a voice channel and type s!play <query>. The <query> can be anything you want, from a song name to a Soundcloud playlist URL, we've got you covered!

Playback control commands

Command Description
s!play <song> Plays a song or adds it to the queue
s!queue Displays the current queue
s!queue remove <number> Removes a specific song from the queue
s!queue jump <number> Jumps to a specific song on the queue
s!queue clear Removes everything from the queue, except the current song
s!queue shuffle Shuffles the queue
s!skip Skips the current song
s!volume <0-150> Adjusts the volume
s!bassboost We'll leave this one for you to try yourself.

Contributing

We want everyone to be able to help with Switchblade as easily as possible, so we've created a list with the many ways you can contribute to the project. Take a look, and if you think you can help with any of these, please do! If you have any questions, don't hesitate to join our community server and ask as many questions as you want.

Ideas and discussion

Have an awesome idea for a new command? We'd love to hear about it, no matter how silly you think it is. For us, no idea is a bad idea, so please open an issue describing what you have in mind. We'll discuss it and, quite possibly, add it to the bot! You can also help by giving your opinion on one of the many existing ideas we have on our list.

Writing code

If you know how to code in JavaScript, then feel free to give one of the existent ideas a try. Fork this repository, make some changes and then open a pull request! We don't really have much documentation on how the bot ecosystem works, but you should be able to get it with a quick look under the hood.

⚠ Please don't open Pull Requests with features that haven't been discussed as issues yet. We don't want you to waste time writing a feature that might get denied. If you have an idea and want it to be in the bot, check the Ideas and discussion paragraph above.

Reporting bugs

Found something crashes the bot? Something isn't working like intended? Please let us know! Whenever you find a bug flying around, try using one of these. If that doesn't work, don't hesitate to write a bug report. Please give us as much information as you can, preferably filling all of the fields provided on the template.

Triaging bug reports

There are probably many bug reports in the issues tab of this repo already. You can help by triaging them and telling us if the, or maybe writing a comment with more information about it. The reports should have a step-by-step guide on how to reproduce the problem, so go ahead! Try to reproduce a bug yourself and tell us what you found.

Translation

One of our main goals is to make Switchblade avaliable as many people as possible, and that's why we have put together an awesome team consisting of more than 50 translators from all around the globe. Do you want to be a part of it? Awesome! We translate our strings through Crowdin, a platform made for software localisation. Go to our Crowdin page and request to join the team. After that, join our community server and ping one of the translation managers so they can accept you and give you your roles. Ah, and did we mention that translators get an awesome badge on their profile card?

Self-hosting

We ask you to please not host your own instance of Switchblade. Even though our license allows it, self-hosted instances of the bot have brought us a lot of headache in the past. If you're considering self-hosting, please try the official instance of the bot first. If you have any concerns about the security of our instance, please contact us. We'd love to talk and answer any questions you have.

If you're really really really going to self-host the bot, please read our license first, and be aware that we don't provide any self-hosting support. You'll be on your own.

Branching, canary and updates

We work on the dev branch, which is deployed automagically to Switchblade Canary, our private testing , whenever commits are pushed. Canary isn't publicly avaliable for everyone to add to their servers, but, if you ask nicely enough, we might open an exception.

Once we feel like the code on dev is stable enough, we merge it to the master branch, that gets deployed to Switchblade, the public instance that everyone can add to their servers.

We usually do that every two months or so, but we might skip a month if we're not confident enough about the reliability of the current code. To get to know about updates as soon as they happen, follow us on medium or join our community server. We post detailed updates notes as soon as stuff goes live.

Sponsors

Sponsors are organizations and companies that contribute to our projects with money. They get their logo with a link to their website on this page! Click here and become a sponsor today!

Backers

Backers are the people who contribute to our projects monetarily. They get their image with a link to their website on this page, an awesome badge on their Switchblade profile and a role that grants exclusive access to some channels in our discord server. Click here and become a backer today!

Hacktoberfest

We are totally Hacktoberfest friendly, in 2021 we are even giving Switchblade Stickers to those who open 3 or more valid PRs to Switchblade during October, please check our issue tab clicking here.

More Repositories

1

invidget

SVG invite widgets that look just like the ones on the Discord client!
JavaScript
116
star
2

runeterra

Legends of Runeterra deck code encoder/decoder in JavaScript
JavaScript
49
star
3

reactcord

React components that mimic Discord's interface
JavaScript
25
star
4

node-speedrun

Node.js wrapper for the Speedrun.com API
JavaScript
14
star
5

crowdin-discord-webhooks

Sends Crowdin events directly to a Discord channel of your choice
JavaScript
12
star
6

bladey-web

Switchblade's official website, made with Bulma and Vue.js.
Vue
12
star
7

switchblade-next

Complete rewrite of Switchblade's codebase into Eris
JavaScript
11
star
8

steamladder.js

Node.js wrapper for the Steam Ladder API
TypeScript
10
star
9

api

Switchblade's new API, now completely separate from the bot itself.
JavaScript
9
star
10

lorassets

Automatically built and well organized Legends of Runeterra data and asset bundles.
JavaScript
8
star
11

freefire-static-data

Garena Free Fire static data scraped from the official website and structured as JSON
JavaScript
6
star
12

bastille

Sandboxed scripting environment for Switchblade
C++
6
star
13

bot-list-poster

Switchblade's Custom Bot List Statistics Poster
JavaScript
5
star
14

website

JavaScript
4
star
15

website-old

Switchblade's website, built with Vue, Nuxt and Bulma.
Vue
4
star
16

fnbrco.js

Node.js wrapper for the fnbr.co API
JavaScript
4
star
17

discord-embed-validator

joi schema for validating Discord Embed Objects
JavaScript
4
star
18

gitblade

GitHub app built with Probot to automate our GitHub workflow
4
star
19

memes

Oh no
3
star
20

statistics-collector

Collects statistics about Discord servers and sends them to InfluxDB
JavaScript
3
star
21

auth-deprecated

[DEPRECATED] Switchblade authorization micro-service
JavaScript
3
star
22

music

Switchblade's Custom Music Service
JavaScript
3
star
23

bladey-graphql

Bladey API but it's GraphQL
JavaScript
3
star
24

mdn-doc

Mozilla Developer Network JavaScript Documentation scraper
TypeScript
3
star
25

vscode-extension-redirect

Cloudflare Worker for redirecting users to VSCode extension pages
JavaScript
3
star
26

bladey-api

API consumed by the Switchblade website
JavaScript
3
star
27

crowdin.js

Node.js wrapper for the Crowdin API
JavaScript
3
star
28

api-template

cachΓͺ do wesley safadΓ£o = R$500k - R$600k
2
star
29

lavalink-node-discovery-thing

Proof-of-concept of automatic lavalink node discovery inside a docker swarm
JavaScript
2
star
30

id

Switchblade's OAuth 2.0 server
JavaScript
2
star
31

.github

2
star
32

translation-guide

This is the source of our translation guide. Make sure to read it before you start translating.
2
star
33

bladeyqueue

HTML
2
star
34

bladeyplate

Boilerplate used for our Node projects!
1
star
35

bladiem

Switchblade's parser for human-readable date/time strings.
1
star
36

shardix-bot

Demo bot for the shardix orchestrator
TypeScript
1
star
37

service-utils

Gets host and port for our services depending on the environment
JavaScript
1
star
38

github-to-crowdin

Updates your Crowdin files whenever a push is made to a certain branch on your GitHub repo.
JavaScript
1
star
39

reminders

Switchblade's Reminder Scheduler
Dockerfile
1
star
40

switchblade-compose

Docker Compose setup we use to develop and deploy Switchblade to our Docker Swarm cluster
1
star
41

bladey-REDACTED

β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ by β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ
JavaScript
1
star
42

lavablade

Switchblade's Lavalink Client
1
star
43

crowdin-action

GitHub action for pushing files to Crowdin
Dockerfile
1
star