# Xiao

> Note: The bot is no longer available for invite.

Xiao is a Discord bot coded in JavaScript with
[discord.js](https://discord.js.org/) using the
[Commando](https://github.com/discordjs/Commando) command framework. With nearly
300 commands, she is one of the most feature-filled bots out there, and formerly
served over 10,000 servers with a uniquely devoted fanbase.

## Commands (297)
### Utility:

* **prefix**: Shows or sets the command prefix.
* **eval**: Executes JavaScript code.
* **blacklist**: Blacklists a user from using commands.
* **donate**: Responds with Xiao's donation links.
* **help**: Displays a list of available commands, or detailed information for a specific command.
* **info**: Responds with detailed bot information.
* **ping**: Checks the bot's ping to the Discord server.
* **uptime**: Responds with how long the bot has been active.
* **whitelist**: Removes a user from the blacklist.

### Command Management:

* **groups**: Lists all command groups.
* **enable**: Enables a command or command group.
* **disable**: Disables a command or command group.
* **reload**: Reloads a command or command group.
* **load**: Loads a new command.
* **unload**: Unloads a command.

### Discord Information:

* **avatar**: Responds with a user's avatar.
* **channel-info**: Responds with detailed information on a channel.
* **discriminator**: Searches for other users with a certain discriminator.
* **emoji-image**: Responds with an emoji's full-scale image.
* **emoji-list**: Responds with a list of the server's custom emoji.
* **emoji-info**: Responds with detailed information on an emoji.
* **id**: Responds with a user's ID.
* **role-info**: Responds with detailed information on a role.
* **server-info**: Responds with detailed information on the server.
* **user-info**: Responds with detailed information on a user.

### Random Response:

* **8-ball**: Asks your question to the Magic 8 Ball.
* **cat-fact**: Responds with a random cat fact.
* **cat**: Responds with a random cat image.
* **charlie-charlie-challenge**: Asks your question to Charlie.
* **choose**: Chooses between options you provide.
* **chuck-norris**: Responds with a random Chuck Norris joke.
* **coin**: Flips a coin.
* **compliment**: Compliments a user.
* **dick**: Determines your dick size.
* **discord-email-fun-fact**: Responds with a random fun fact from the Discord emails.
* **dog-fact**: Responds with a random dog fact.
* **dog**: Responds with a random dog image.
* **fact-core**: Responds with a random Fact Core quote.
* **fidget**: Responds with a random image of Fidget.
* **fortune**: Responds with a random fortune.
* **fruit**: Responds with a random fruit.
* **guess-looks**: Guesses what a user looks like.
* **joke**: Responds with a random joke.
* **karen**: Responds with a random image of Karen.
* **kiss-marry-kill**: Determines who to kiss, who to marry, and who to kill.
* **magic-conch**: Asks your question to the Magic Conch.
* **name**: Responds with a random name, with the gender of your choice.
* **new-york-times**: Searches the New York Times for your query.
* **number-fact**: Responds with a random fact about a specific number.
* **offspring**: Determines if your new child will be a boy or a girl.
* **opinion**: Determines the opinion on something.
* **oracle-turret**: Responds with a random Oracle Turret quote.
* **pikachu**: Responds with a random image of Pikachu.
* **quantum-coin**: Flips a coin that lands on some form of nothing.
* **quote**: Responds with a random quote.
* **rate-waifu**: Rates a waifu.
* **reddit**: Responds with a random post from a subreddit.
* **roast**: Roasts a user.
* **roll**: Rolls a dice with a maximum value of your choice.
* **security-key**: Responds with a random security key.
* **ship**: Ships two people together.
* **shower-thought**: Responds with a random shower thought, directly from r/Showerthoughts.
* **user-roulette**: Randomly chooses a member of the server.
* **would-you-rather**: Responds with a random "Would you rather ...?" question.
* **xiao**: Responds with a random image of Xiao Pai.

### Single Response:

* **can-you-not**: Can YOU not?
* **dark-theme-light-theme**: Determines whether you use dark or light theme.
* **eat-pant**: Eat pant.
* **give-flower**: Gives Xiao Pai a flower.
* **hello-world**: Hello world.
* **isnt-joke**: Isn't joke...
* **its-joke**: It's joke!
* **lenny**: Responds with the lenny face.
* **nitro**: Sends the "This message can only be viewed by users with Discord Nitro." message.
* **slow-clap**: _slow clap_
* **spam**: Responds with a picture of Spam.
* **tableflip**: Flips a table... With animation!
* **wynaut**: Why not? Wynaut?

### Events:

* **astronomy-picture-of-the-day**: Responds with today's Astronomy Picture of the Day.
* **days-until**: Responds with how many days there are until a certain date.
* **doomsday-clock**: Responds with the current time of the Doomsday Clock.
* **google-doodle**: Responds with a Google Doodle, either the latest one or a random one from the past.
* **holidays**: Responds with today's holidays.
* **horoscope**: Responds with today's horoscope for a specific Zodiac sign.
* **neko-atsume-password**: Responds with today's Neko Atsume password.
* **time**: Responds with the current time in a particular location.
* **today-in-history**: Responds with an event that occurred today in history.
* **word-of-the-day**: Responds with today's word of the day.

### Search:

* **bulbapedia**: Searches Bulbapedia for your query.
* **danbooru**: Responds with an image from Danbooru, with optional query.
* **deviantart**: Responds with an image from a DeviantArt section, with optional query.
* **dictionary**: Defines a word.
* **flickr**: Searches Flickr for your query.
* **forecast**: Responds with the seven-day forecast for a specific location.
* **gelbooru**: Responds with an image from Gelbooru, with optional query.
* **giphy**: Searches Giphy for your query.
* **github**: Responds with information on a GitHub repository.
* **google-autofill**: Responds with a list of the Google Autofill results for a particular query.
* **google-book**: Searches Google Books for a book.
* **google**: Searches Google for your query.
* **gravatar**: Responds with the Gravatar for an email.
* **http-cat**: Responds with a cat for an HTTP status code.
* **imgur**: Searches Imgur for your query.
* **itunes**: Searches iTunes for your query.
* **jisho**: Defines a word, but with Japanese.
* **kickstarter**: Searches Kickstarter for your query.
* **konachan**: Responds with an image from Konachan, with optional query.
* **league-of-legends-champion**: Responds with information on a League of Legends champion.
* **map**: Responds with a map of a specific location.
* **mdn**: Searches MDN for your query.
* **my-anime-list-anime**: Searches My Anime List for your query, getting anime results.
* **my-anime-list-manga**: Searches My Anime List for your query, getting manga results.
* **nasa**: Searches NASA's image archive for your query.
* **neopet**: Responds with the image of a specific Neopet.
* **neopets-item**: Responds with information on a specific Neopets item.
* **npm**: Responds with information on an NPM package.
* **osu**: Responds with information on an Osu! user.
* **periodic-table**: Finds an element on the periodic table.
* **pokedex**: Searches the Pokédex for a Pokémon.
* **recipe**: Searches for recipes based on your query.
* **rotten-tomatoes**: Searches Rotten Tomatoes for your query.
* **rule-of-the-internet**: Responds with a rule of the internet.
* **rule34**: Responds with an image from Rule34, with optional query.
* **safebooru**: Responds with an image from Safebooru, with optional query.
* **spoopy-link**: Determines if a link is spoopy or not.
* **stack-overflow**: Searches Stack Overflow for your query.
* **steam**: Searches Steam for your query.
* **stocks**: Responds with the current stocks for a specific symbol.
* **tmdb-movie**: Searches TMDB for your query, getting movie results.
* **tmdb-tv-show**: Searches TMDB for your query, getting TV show results.
* **tumblr**: Responds with information on a Tumblr blog.
* **twitter**: Responds with information on a Twitter user.
* **urban-dictionary**: Defines a word, but with Urban Dictionary.
* **vocaloid**: Searches VocaDB for your query.
* **wattpad**: Searches Wattpad for your query.
* **weather**: Responds with weather information for a specific location.
* **wikia**: Searches a specific Wikia wiki for your query.
* **wikihow**: Searches Wikihow for your query.
* **wikipedia**: Searches Wikipedia for your query.
* **xkcd**: Responds with an XKCD comic, either today's, a random one, or a specific one.
* **youtube**: Searches YouTube for your query.
* **yu-gi-oh**: Responds with info on a Yu-Gi-Oh! card.
* **zodiac-sign**: Responds with the Zodiac Sign for the given month/day.

### Analyzers:

* **coolness**: Determines a user's coolness.
* **face-analyze**: Determines the age, gender, and race of a face.
* **gender-analyze**: Determines the gender of a name.
* **severe-toxicity**: Determines the toxicity of text, but less sensitive to milder language.
* **toxicity**: Determines the toxicity of text.

### Games:

* **akinator**: Think about a real or fictional character, I will try to guess who it is.
* **apples-to-apples**: Compete to see who can come up with the best card to match an adjective.
* **balloon-pop**: Don't let yourself be the last one to pump the balloon before it pops!
* **battle**: Engage in a turn-based battle against another user or the AI.
* **captcha-quiz**: Try to guess what the captcha says.
* **cards-against-humanity**: Compete to see who can come up with the best card to fill in the blank.
* **chance**: Attempt to win with a 1 in 1000 (or your choice) chance of winning.
* **emoji-emoji-revolution**: Can you type arrow emoji faster than anyone else has ever typed them before?
* **fishy**: Go fishing.
* **google-feud**: Attempt to determine the top suggestions for a Google search.
* **gunfight**: Engage in a western gunfight against another user. High noon.
* **hangman**: Prevent a man from being hanged by guessing a word as fast as you can.
* **hunger-games**: Simulate a Hunger Games match with up to 24 tributes.
* **lottery**: Attempt to win the lottery with 6 numbers.
* **math-quiz**: See how fast you can answer a math problem in a given time limit.
* **quiz**: Answer a quiz question.
* **rock-paper-scissors**: Play Rock-Paper-Scissors.
* **roulette**: Play a game of roulette.
* **slots**: Play a game of slots.
* **sorting-hat-quiz**: Take a quiz to determine your Hogwarts house.
* **tic-tac-toe**: Play a game of tic-tac-toe with another user.
* **typing-test**: See how fast you can type a sentence in a given time limit.
* **whos-that-pokemon**: Guess who that Pokémon is.
* **wizard-convention**: Who is the Dragon? Who is the healer? Who is the mind reader? Will the Dragon eat them all?

### Voice Channel:

* **airhorn**: Plays an airhorn sound in your voice channel.
* **dec-talk**: The world's best Text-to-Speech.
* **soundboard**: Plays a sound in your voice channel.

### Image Manipulation:

* **achievement**: Sends a Minecraft achievement with the text of your choice.
* **be-like-bill**: Sends a "Be Like Bill" meme with the name of your choice.
* **color**: Sends an image of the color you choose.
* **contrast**: Draws an image or a user's avatar but with contrast.
* **demotivational-poster**: Draws an image or a user's avatar and the text you specify as a demotivational poster.
* **distort**: Draws an image or a user's avatar but distorted.
* **glitch**: Draws an image or a user's avatar but glitched.
* **greyscale**: Draws an image or a user's avatar in greyscale.
* **ifunny**: Draws an image with the iFunny logo.
* **illegal**: Makes President Trump make your text illegal.
* **invert**: Draws an image or a user's avatar but inverted.
* **meme**: Sends a meme with the text and background of your choice.
* **osu-signature**: Creates a card based on an osu! user's stats.
* **pokemon-fusion**: Fuses two Generation I Pokémon together.
* **robohash**: Creates a robot based on the text you provide.
* **sepia**: Draws an image or a user's avatar in sepia.
* **silhouette**: Draws a silhouette of an image or a user's avatar.
* **tint**: Draws an image or a user's avatar but tinted a specific color.

### Avatar Manipulation:

* **3000-years**: Draws a user's avatar over Pokémon's "It's been 3000 years" meme.
* **approved**: Draws an "approved" stamp over a user's avatar.
* **avatar-fusion**: Draws a a user's avatar over a user's avatar.
* **beautiful**: Draws a user's avatar over Gravity Falls' "Oh, this? This is beautiful." meme.
* **bob-ross**: Draws a user's avatar over Bob Ross' canvas.
* **card**: Draws a trading card of random rarity based on a user's profile.
* **challenger**: Draws a user's avatar over Super Smash Bros.'s "Challenger Approaching" screen.
* **dexter**: Draws a user's avatar over the screen of Dexter from Pokémon.
* **distracted-boyfriend**: Draws three user's avatars over the "Distracted Boyfriend" meme.
* **fire**: Draws a fiery border over a user's avatar.
* **food-broke**: Draws a user's avatar over the "Food Broke" meme.
* **hat**: Draws a hat over a user's avatar.
* **he-lives-in-you**: Draws a user's avatar over Simba from The Lion King's reflection.
* **i-have-the-power**: Draws a user's avatar over He-Man's face.
* **look-at-this-photograph**: Draws a user's avatar over Nickelback's photograph.
* **look-what-karen-have**: Draws a user's avatar over Karen's piece of paper.
* **pixelize**: Draws a user's avatar pixelized.
* **rainbow**: Draws a rainbow over a user's avatar.
* **rejected**: Draws a "rejected" stamp over a user's avatar.
* **rip**: Draws a user's avatar over a gravestone.
* **steam-card**: Draws a user's avatar on a Steam Trading Card.
* **steam-now-playing**: Draws a user's avatar and the game of your choice over a Steam "now playing" notification.
* **the-ultimate-tattoo**: Draws a user's avatar as "The Ultimate Tattoo".
* **thug-life**: Draws "Thug Life" over a user's avatar.
* **triggered**: Draws a user's avatar over the "Triggered" meme.
* **wanted**: Draws a user's avatar over a wanted poster.
* **yu-gi-oh-token**: Draws a user's avatar over a blank Yu-Gi-Oh! Token card.

### Text Manipulation:

* **alphabet-reverse**: Reverses the alphabet of text.
* **base64**: Converts text to Base64.
* **binary**: Converts text to binary.
* **braille**: Converts text to braille.
* **clap**: Sends 👏 text 👏 like 👏 this.
* **cow-say**: Makes a cow say your text.
* **cursive**: Converts text to cursive.
* **dvorak**: Converts text to Dvorak encoding.
* **embed**: Sends text in an embed.
* **emojify**: Converts text to emoji form.
* **fancy**: Converts text to fancy letters.
* **hex**: Converts text to hex.
* **latlmes**: Creates a Latlmes fake link that redirects to a rickroll.
* **lmgtfy**: Creates a LMGTFY link with the query you provide.
* **md5**: Creates a hash of text with the MD5 algorithm.
* **mocking**: SenDs TexT lIkE ThiS.
* **morse**: Converts text to morse code.
* **organization-xiii-name**: Converts a name into the Organization XIII style.
* **owo**: OwO.
* **pig-latin**: Converts text to pig latin.
* **pirate**: Converts text to pirate.
* **qr-code**: Converts text to a QR Code.
* **repeat**: Repeat text over and over and over and over (etc).
* **reverse**: Reverses text.
* **say**: Make XiaoBot say what you wish.
* **sha-256**: Creates a hash of text with the SHA-256 algorithm.
* **ship-name**: Creates a ship name from two names.
* **shorten-url**: Creates a goo.gl short URL from another URL.
* **shuffle**: Shuffles text.
* **snake-speak**: Convertsssss text to sssssnake ssssspeak.
* **superscript**: Converts text to tiny text.
* **temmie**: Converts text to Temmie speak.
* **translate**: Translates text to a specific language.
* **upside-down**: Flips text upside-down.
* **url-encode**: Encodes text to URL-friendly characters.
* **webhook**: Posts a message to the webhook defined in your `process.env`.
* **yoda**: Converts text to Yoda speak.
* **zalgo**: Converts text to zalgo.
* **🅱**: Replaces b with 🅱.

### Number Manipulation:

* **currency**: Converts money from one currency to another.
* **final-grade-calculator**: Determines the grade you need to make on your final to get your desired course grade.
* **math**: Evaluates a math expression.
* **percentage**: Determines the percentage one number is of another.
* **roman-numeral**: Converts a number to roman numerals.
* **units**: Converts units to/from other units.

### Role Management:

* **add-open-role**: Sets a role as open.
* **fix-open-roles**: Removes no longer existent roles from the open roles lists.
* **remove-open-role**: Remove a role from the open roles.
* **role-list**: Responds with all available roles to join.
* **subscribe**: Subscribes you to the specified role.
* **unsubscribe**: Unsubscribes you from the specified role.

### Portal Messages:

* **add-portal-channel**: Sets a channel to be a portal channel.
* **fix-portal-channels**: Removes no longer existent channels from the portal list.
* **portal-send**: Send a message to a portal channel.
* **portal-status**: Shows the number of currently opened portals.
* **remove-portal-channel**: Remove a channel from the portal channels.

### Other:

* **cleverbot**: Chat with Cleverbot.
* **prune**: Deletes up to 99 messages from the current channel.
* **strawpoll**: Generates a Strawpoll with the options you provide.

### Roleplay:

* **break-up**: Breaks up with a user.
* **cuddle**: Cuddles a user.
* **eat**: Eats a user.
* **evolve**: Evolves a user.
* **falcon-punch**: Falcon Punches a user.
* **fist-bump**: Fistbumps a user.
* **high-five**: High Fives a user.
* **hit-with-shovel**: Hits a user with a shovel.
* **hug**: Hugs a user.
* **inhale**: Inhales a user.
* **kill**: Kills a user.
* **kiss**: Kisses a user.
* **marry**: Marries a user.
* **pat**: Pats a user.
* **poke**: Pokes a user.
* **punch**: Punches a user.
* **slap**: Slaps a user.
* **tackle**: Tackles a user.

## Licensing
The bot is licensed under the GPL 3.0 license. See the file `LICENSE` for more
information. If you plan to use any part of this source code in your own bot, I
would be grateful if you would include some form of credit somewhere.
