You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

commands.md 38KB

5 years ago
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862
  1. ---
  2. title: Command Documentation
  3. description: Documentation for all of Roxbot's commands.
  4. authors:
  5. - Roxanne Gibson
  6. ---
  7. # Command Documentation
  8. If you intend to use any commands requiring permissions, it is highly recommend you read the [Configuring Roxbot](config.md) guide that will get you up to date with how Roxbot works and how to run her.
  9. ## How to use the docs
  10. ### What is an alias?
  11. An alias is just another way of executing the command. Usually to shorten the command to be easier to type. If `emoji` is an alias of `emote`, using either `emoji` or `emote` will execute `emote`.
  12. ### What do I do when a command wants a channel, user, role, etc.?
  13. When the command wants a CHANNEL, USER, MEMBER, or ROLE. This means the ID, name, or mention of that part of Discord. Role, User, and Member mentions start with a '@' and Channel mentions start with a '#'. A Member is the same as a User except a Member is explicitly a User in a Guild.
  14. ## Core Commands
  15. These are the base commands for Roxbot that are a part of the core bot. All of them deal with internal management and are, for the most part, unavailable to average users.
  16. ### ;about
  17. Outputs info about RoxBot, showing up time, how to report issues, contents of roxbot.conf and credits.
  18. Command Structure:
  19. `;about`
  20. ### ;backup
  21. !!! warning "Required Permissions"
  22. This command can only be executed by the owner of the Roxbot instance.
  23. Creates a backup of all server's settings manually. This will make a folder in `settings/backups/`. The name of the folder will be outputted when you use the command. Using only this and not the automatic backups is not recommend.
  24. Command Structure:
  25. `;backup`
  26. ### ;blacklist
  27. Manage the global blacklist for Roxbot.
  28. !!! warning "Required Permissions"
  29. This command can only be executed by the owner of the Roxbot instance.
  30. Command Structure:
  31. `;blacklist option *users`
  32. Options:
  33. - `option` - This is whether to add or subtract users from the blacklist. `+` or `add` for add and `-` or `remove` for remove.
  34. - `users` - A name, ID, or mention of a user. This allows multiple users to be mentioned.
  35. Examples:
  36. ```py
  37. # Add three users to the blacklist
  38. ;blacklist add @ProblemUser1 ProblemUser2#4742 1239274620373
  39. # Remove one user from the blacklist
  40. ;blacklist - @GoodUser
  41. ```
  42. ### ;changeactivity
  43. Changes the activity that Roxbot is doing. This will be added as a game. "none" can be passed to remove an activity from Roxbot.
  44. !!! warning "Required Permissions"
  45. This command can only be executed by the owner of the Roxbot instance.
  46. Command Structure:
  47. `;changeactivity text`
  48. Aliases:
  49. `activity`
  50. Options:
  51. - `text` - Either text to be added as the "game" or none to remove the activity.
  52. Examples:
  53. ```py
  54. # Change activity to "with the command line" so that it displays "Playing with the command line"
  55. ;activity "with the command line"
  56. # Stop displaying any activity
  57. ;activity none
  58. ```
  59. ### ;changeavatar
  60. Changes the avatar of the bot account. This cannot be a gif due to Discord limitations.
  61. !!! warning "Required Permissions"
  62. This command can only be executed by the owner of the Roxbot instance.
  63. Command Structure:
  64. `;changeavatar image`
  65. Aliases:
  66. `setavatar`
  67. Options:
  68. - `image` - This can either be uploaded as an attachment or linked after the command.
  69. Example:
  70. ```py
  71. # Change avatar to linked image
  72. ;changeavatar https://i.imgur.com/yhRVl9e.png
  73. ```
  74. ### ;changenickname
  75. Changes the nickname of Roxbot in the guild this command is executed in.
  76. !!! warning
  77. This command cannot be used in private messages.
  78. !!! warning "Required Permissions"
  79. This command can only be executed by the owner of the Roxbot instance.
  80. Command Structure:
  81. `;changenickname name`
  82. Aliases:
  83. `nickname`, `nick`
  84. Options:
  85. - `name` - OPTIONAL: If not given, Roxbot's nickname will be reset.
  86. Example:
  87. ```py
  88. # Make Roxbot's nickname "Best Bot 2k18"
  89. ;nick Best Bot 2k18
  90. # Reset Roxbot's nickname
  91. ;nick
  92. ```
  93. ### ;changestatus
  94. !!! warning "Required Permissions"
  95. This command can only be executed by the owner of the Roxbot instance.
  96. Changes the status of the bot account.
  97. Command Structure:
  98. `;changestatus status`
  99. Aliases:
  100. `status`
  101. Options:
  102. - `status` - There are four different options to choose. `online`, `away`, `dnd` (do not disturb), and `offline`
  103. Examples:
  104. ```py
  105. # Set Roxbot to offline
  106. ;changestatus offline
  107. # Set Roxbot to online
  108. ;changestatus online
  109. ```
  110. ### ;echo
  111. Echos the given string to a given channel.
  112. !!! warning "Required Permissions"
  113. This command can only be executed by the owner of the Roxbot instance.
  114. Command Structure:
  115. `;echo channel message`
  116. Example:
  117. ```py
  118. # Post the message "Hello World" to the channel #general
  119. ;echo #general Hello World
  120. ```
  121. ### ;help
  122. Displays all commands you can execute in that channel. If a command is specified, it will show the help for that command.
  123. Command Structure:
  124. `;help [command: optional]`
  125. Options:
  126. - `command` - OPTIONAL: If a command is specified, it will show the help for that command. If this is a command group, it will show the commands in that group and some help. If a subcommand in a group, then the help for that command.
  127. Examples:
  128. ```py
  129. # List all commands I can execute in this current channel
  130. ;help
  131. # Show help for the "subreddit" command
  132. ;help subreddit
  133. # Show help for the "custom" command group
  134. ;help custom
  135. # Show help for the "custom add" subcommand
  136. ;help custom add
  137. ```
  138. ### ;invite
  139. Posts [this](https://discordapp.com/oauth2/authorize?client_id=259869304369971200&scope=bot&permissions=871890001) invite. This allows you to invite Roxbot to your own server.
  140. Command Structure:
  141. `;invite`
  142. ### ;printsettings
  143. Prints settings for the cogs in this guild.
  144. !!! warning "Required Permissions"
  145. Command requires the user to have the `manage_guild` permission.
  146. !!! warning
  147. This command cannot be used in private messages.
  148. Command Structure:
  149. `;printsettings [cog: optional]`
  150. Aliases:
  151. `printsettingsraw` - Using this will print the raw version of these files.
  152. Options:
  153. - cog - OPTIONAL. If given, this will only show the setting of the cog given. This has to be the name the printsettings command gives.
  154. Examples:
  155. ```py
  156. # Print the settings for the guild
  157. ;printsettings
  158. # print settings just for the Admin cog.
  159. ;printsettings Admin
  160. ```
  161. ### ;shutdown
  162. !!! warning "Required Permissions"
  163. This command can only be executed by the owner of the Roxbot instance.
  164. Shutdowns the bot.
  165. Command Structure:
  166. `;shutdown`
  167. ## Cog Commands
  168. Cog commands are all of the commands that aren't in the Core Roxbot code. This is anything that sits in the `cogs/` folder;
  169. ## Admin
  170. The Admin cog adds admin commands to Roxbot which should make moderating a Discord server easier.
  171. !!! warning
  172. This whole cog cannot be used in private messages.
  173. ### ;ban
  174. Bans the mentioned user with the ability to give a reason.
  175. !!! warning "Required Permissions"
  176. Command requires the user **and** Roxbot to have the `ban_users` permission.
  177. Command Structure:
  178. `;ban USER [reason: optional]`
  179. Options:
  180. - `USER` - A name, ID, or mention of a user.
  181. - `reason` - OPTIONAL. A short reason for the banning.
  182. Examples:
  183. ```py
  184. # Ban user BadUser
  185. ;ban @BadUser
  186. # Ban user Roxbot for being a meanie
  187. ;ban Roxbot "for being a meanie"
  188. ```
  189. ### ;kick
  190. Kicks the mentioned user with the ability to give a reason.
  191. !!! warning "Required Permissions"
  192. Command requires the user **and** Roxbot to have the `kick_users` permission.
  193. Command Structure:
  194. `;kick USER [reason: optional]`
  195. Options:
  196. - `USER` - A name, ID, or mention of a user.
  197. - `reason` - OPTIONAL. A short reason for the kicking.
  198. Examples:
  199. ```py
  200. # Kick user BadUser
  201. ;kick @BadUser
  202. # Kick user Roxbot for being a meanie
  203. ;kick Roxbot "for being a meanie"
  204. ```
  205. ### ;purge
  206. Purges the text channel the command is executed in. You can specify a certain user to purge as well.
  207. !!! warning "Required Permissions"
  208. Command requires the user **and** Roxbot to have the `manage_messages` permission.
  209. Command Structure:
  210. `;purge limit [USER: optional]`
  211. Options:
  212. - `limit` - This the the amount of messages Roxbot will take from the chat and purge. Note: This **does not** mean the amount that will be purged. Limit is the amount of messages Roxbot will look at. If a user is given, it will only delete messages from that user in that list of messages.
  213. - `USER` - A name, ID, or mention of a user. If the user has left the guild, this **has** to be the ID.
  214. Examples:
  215. ```py
  216. # Delete 20 messages from the chat
  217. ;purge 20
  218. # Take 20 messages, and delete any message in it by user @Spammer
  219. ;purge 20 @Spammer
  220. ```
  221. ### ;slowmode
  222. Puts the channel in slowmode. Users with `manage_channel` or `manage_messages` permissions will not be effected.
  223. !!! warning "Required Permissions"
  224. Command requires the user **and** Roxbot to have the `manage_channels` permission.
  225. Command Structure:
  226. `;slowmode seconds`
  227. Options:
  228. - `seconds` - Has to be between 0 - 120. This will set the timeout a user receives once they send a message in this channel. If 0, Roxbot will disable slowmode.
  229. Examples:
  230. ```py
  231. # Set slowmode to 30 seconds
  232. ;slowmode 30
  233. # Turn slowmode off
  234. ;slowmode 0
  235. ```
  236. ### ;unban
  237. Unbans the mentioned user with the ability to give a reason.
  238. !!! warning "Required Permissions"
  239. Command requires the user **and** Roxbot to have the `ban_users` permission.
  240. Command Structure:
  241. `;unban user_id [reason: optional]`
  242. Options:
  243. - `user_id` - The ID of a banned user.
  244. - `reason` - OPTIONAL. A short reason for the unbanning.
  245. Examples:
  246. ```py
  247. # Unban user with ID 478294672394
  248. ;unban 478294672394
  249. ```
  250. ### ;warn
  251. !!! warning "Required Permissions"
  252. Group requires the user to have the `kick_users` permission. <small>The logic here is that if a mod can kick a user, they can warn a user too as they are similar in function.</small>
  253. The warn command group allows Discord moderators to warn users and log them within the bot. The command group also supports setting limits to warn mods if a user has been warned over a certain threshold.
  254. #### ;warn add
  255. Adds a warning to a user.
  256. Command Structure:
  257. `;warn add USER [warning: optional]`
  258. Options:
  259. - `USER` - A name, ID, or mention of a user.
  260. - `warning` - OPTIONAL. A reason for the warning. This supports markdown formatting.
  261. Example:
  262. ```py
  263. # Add warning to user @Roxbot for being a meanie
  264. ;warn add @Roxbot "for being a meanie"
  265. ```
  266. #### ;warn list
  267. Lists all warning in this guild or all the warnings for one user.
  268. Command Structure:
  269. `;warn list [USER: optional]`
  270. Options:
  271. - `USER` - OPTIONAL. A name, ID, or mention of a user.
  272. Examples:
  273. ```py
  274. # List all warnings in the guild
  275. ;warn list
  276. # List all warnings for @Roxbot
  277. ;warn list @Roxbot
  278. ```
  279. #### ;warn prune
  280. Prunes the warnings of any banned users. You can add a 1 at the end to dryrun the command. This will show you how many would be deleted without deleting them.
  281. Command Structure:
  282. `;warn prune [dryrun: optional]`
  283. Options:
  284. - `dryrun` - Add `1` to the end of the command to do a dryrun of the prune command.
  285. Examples:
  286. ```py
  287. # Prune the warnings of banned users in this guild
  288. ;warn prune
  289. # Dryrun the prune command to see how many warnings would be removed
  290. ;warn prune 1
  291. ```
  292. #### ;warn remove
  293. Removes one or all of the warnings for a user.
  294. Command Structure:
  295. `;warn remove USER [index: optional]`
  296. Options:
  297. - `USER` - A name, ID, or mention of a user.
  298. - `index` - OPTIONAL. The index of the single warning you want to remove.
  299. Examples:
  300. ```py
  301. # Remove all warnings for Roxbot
  302. ;warn remove Roxbot
  303. # Remove warning 2 for Roxbot
  304. ;warn remove Roxbot 2
  305. ```
  306. #### ;warn set_limit
  307. Sets the limit for how many warnings a user can get before mod's are notified. If 3 is set, on the third warning, mods will be DM'd. If this is set to 0, DM's will be disabled.
  308. Command Structure:
  309. `;warn set_limit number`
  310. Aliases:
  311. `sl`, `setlimit`
  312. Options:
  313. - `number` - A positive integer. Once this number is equal to the number of warnings a user has, the mod who did the latest warning will be dm'd about it. If it is set to 0, this is disabled.
  314. Examples:
  315. ```py
  316. # Set the warning limit to 3
  317. ;warn sl 3
  318. # Disable warnings
  319. ;warn set_limit 0
  320. ```
  321. ---
  322. ## Custom Commands
  323. The Custom Commands cog allows moderators to add custom commands for their Discord server to Roxbot. Allowing custom outputs predefined by the moderators.
  324. For example, we can set a command to require a prefix and call it "roxbot" and configure an output. Then if a user does `;roxbot` roxbot will output the configured output.
  325. ### ;custom
  326. This command group handle settings for the custom commands.
  327. !!! warning
  328. This command group cannot be used in private messages.
  329. #### ;custom add
  330. Add a custom command.
  331. !!! warning "Required Permissions"
  332. Command requires the user to have the `manage_messages` permission.
  333. Command Structure:
  334. `;custom add type name *output`
  335. Aliases:
  336. `cc`
  337. Options:
  338. - `type` - There are three types of custom commands.
  339. - `no_prefix`/`0` - These are custom commands that will trigger without a prefix. Example: a command named `test` will trigger when a user says `test` in chat.
  340. - `prefix`/`1` - These are custom commands that will trigger with a prefix. Example: a command named `test` will trigger when a user says `;test` in chat.
  341. - `embed`/`2` - These are prefix commands that will output a rich embed. [You can find out more about rich embeds from Discord's API documentation.](https://discordapp.com/developers/docs/resources/channel#embed-object) Embed types currently support these fields: `title, description, colour, color, url, footer, image, thumbnail`
  342. - `name` - The name of the command. No commands can have the same name.
  343. - `output` - The output of the command. The way you input this is determined by the type.
  344. `no_prefix` and `prefix` types support single outputs and also listing multiple outputs. When the latter is chosen, the output will be a random choice of the multiple outputs.
  345. Examples:
  346. ```py
  347. # Add a no_prefix command called "test" with a URL output.
  348. ;cc add no_prefix test "https://www.youtube.com/watch?v=vJZp6awlL58"
  349. # Add a prefix command called test2 with a randomised output between "the person above me is annoying" and "the person above me is cool :sunglasses:"
  350. ;cc add prefix test2 "the person above me is annoying" "the person above me is cool :sunglasses:
  351. # Add an embed command called test3 with a title of "Title" and a description that is a markdown hyperlink to a youtube video, and the colour #deadbf
  352. ;cc add embed test3 title "Title" description "[Click here for a rad video](https://www.youtube.com/watch?v=dQw4w9WgXcQ)" colour #deadbf
  353. ```
  354. !!! note
  355. With custom commands, it is important to remember that "" is used to pass any text with spaces as one argument. If the output you want requires the use of these characters, surround your output with """this""" instead.
  356. #### ;custom edit
  357. Edits an already existing custom command.
  358. !!! note
  359. You cannot change the type of a command. If you want to change the type, remove the command and re-add it.
  360. !!! warning "Required Permissions"
  361. Command requires the user to have the `manage_messages` permission.
  362. Command Structure:
  363. `;custom edit command_name new_output`
  364. Example:
  365. For more examples of how to setup a custom command, look at the help for the ;custom add command.
  366. ```py
  367. # edit a command called test to output "new output"
  368. ;cc edit test "new output"
  369. ```
  370. #### ;custom list
  371. Lists all custom commands for this guild.
  372. Command Structure:
  373. `;custom list`
  374. #### ;custom remove
  375. Removed the named custom command.
  376. !!! warning "Required Permissions"
  377. Command requires the user to have the `manage_messages` permission.
  378. Command Structure:
  379. `;custom remove command`
  380. Example:
  381. ```py
  382. # Remove custom command called "test"
  383. ;cc remove test
  384. ```
  385. ---
  386. ## Fun
  387. The Fun cog provides many commands just meant to be fun. Full of a lot of misc commands as well that might provide a few laughs or be entertaining.
  388. ### ;8ball
  389. Asks a magic 8 ball to tell the future via the means of yes and no questions.
  390. Command Structure:
  391. `;8ball question`
  392. Aliases:
  393. `magicball`, `8b`
  394. Arguments:
  395. - `question` - a yes or no question to ask and Roxbot will enquire with the Magic 8-Ball to look into the future!
  396. Examples:
  397. ;8ball Will this command take off as a good idea?
  398. ### ;aesthetics
  399. Converts text to be more aesthetic <small>fix-width text</small>
  400. Command Structure:
  401. `;aesthetics text`
  402. Aliases:
  403. `ae`, `aesthetic`
  404. Example:
  405. ```py
  406. # Convert "Hello World" to fixed-width text.
  407. ;ae Hello World
  408. ```
  409. ### ;coinflip
  410. Flips a magical digital coin!
  411. Command Structure:
  412. `;coinfilp`
  413. Aliases:
  414. `cf`
  415. ### ;frogtips
  416. RETURNS FROG TIPS FOR HOW TO OPERATE YOUR FROG
  417. Command Structure:
  418. `;frogtips`
  419. Aliases:
  420. `ft`, `frog`
  421. ### ;hug
  422. Gives headpats to the mentioned user :3
  423. Command Structure:
  424. `;hug USER`
  425. Options:
  426. - `USER` - A name, ID, or mention of a user.
  427. Examples:
  428. ```py
  429. # Two ways to give Roxbot hugs.
  430. ;hug @Roxbot#4170
  431. ;hug Roxbot
  432. ```
  433. ### ;numberfact
  434. Returns a fact for the positive integer given. A random number is chosen if none is given.
  435. Command Structure:
  436. `;numberfact postive_integer`
  437. Aliases:
  438. `nf`
  439. Example:
  440. ```py
  441. # Random fact for the number 35
  442. ;nf 35
  443. ```
  444. ### ;onthisday
  445. Returns a random fact of something that happened today!
  446. Command Structure:
  447. `;onthisday`
  448. Aliases:
  449. `otd`
  450. ### ;pet
  451. Gives headpats to the mentioned user :3
  452. Command Structure:
  453. `;pet USER`
  454. Aliases:
  455. `headpat`, `pat`
  456. Options:
  457. - `USER` - A name, ID, or mention of a user.
  458. Examples:
  459. ```py
  460. # Two ways to give Roxbot headpats.
  461. ;pet @Roxbot#4170
  462. ;pet Roxbot
  463. ```
  464. ### ;roll
  465. Rolls a die using dice expression format. Spaces in the expression are ignored.
  466. Command structure:
  467. `;roll expression`
  468. Aliases:
  469. `die`, `dice`
  470. !!! example "Examples"
  471. Roll one d10 two times
  472. ![Output](assets/images/outputs/roll1.png)
  473. Roll two d20s and takes the highest value, then adds 7
  474. ![Output](assets/images/outputs/roll2.png)
  475. An expression can consist of many sub expressions added together and then a multiplier at the end to indicate how many times the expression should be rolled.
  476. Sub expressions can be of many types:
  477. - `[number]` - add this number to the total
  478. - `d[sides]` - roll a dice with that many sides and add it to the total
  479. - `[n]d[sides]` - roll n dice. each of those dice have [sides] number of sides, sum all the dice and add to the total
  480. - `add r[number]` - reroll any rolls below [number]
  481. - `add h[number]` - only sum the [number] highest rolls rather than all of them
  482. - `add l[number]` - only sum the [number] lowest rolls rather than all of them
  483. - `x[number]` - only use at the end. roll the rest of the expression [number] times(max 10)
  484. Credit: TBTerra#5677
  485. ### ;roxbotfact
  486. Returns a random fact about Roxbot! Roxbot has her own lore that you can discover through out these facts. Written especially for Roxbot.
  487. Command Structure:
  488. `;roxbotfact`
  489. Aliases:
  490. `rf`, `roxfact`
  491. ### ;spank
  492. Spanks the mentioned user :wink:
  493. !!! warning
  494. This command will only work in channels marked NSFW or DMs.
  495. Command Structure:
  496. `;spank USER`
  497. Options:
  498. - `USER` - A name, ID, or mention of a user.
  499. Examples:
  500. ```py
  501. # Two ways to give Roxbot spanks.
  502. ;spank @Roxbot#4170
  503. ;spank Roxbot
  504. ```
  505. ### ;suck
  506. Sucks the mentioned user :wink:
  507. !!! warning
  508. This command will only work in channels marked NSFW or DMs.
  509. Command Structure:
  510. `;suck USER`
  511. Aliases:
  512. `succ`
  513. Options:
  514. - `USER` - A name, ID, or mention of a user.
  515. Examples:
  516. ```py
  517. # Two ways to give Roxbot the succ.
  518. ;suck @Roxbot#4170
  519. ;suck Roxbot
  520. ```
  521. ### ;waifurate
  522. Rates the mentioned waifu(s). By using the aliases husbandorate or spousurate, it will change how Roxbot addresses those who she has rated. <small>This may allow multiple people to be rated at once :eyes:</small>
  523. Command Structure:
  524. `;waifurate`
  525. Aliases:
  526. Waifu Aliases:
  527. `wf`, `wr`
  528. Husbando Aliases:
  529. `husbandorate`, `hr`
  530. Spousu Aliases:
  531. `spousurate`, `sr`
  532. Options:
  533. - `USER` - A name, ID, or mention of a user.
  534. Example:
  535. ```py
  536. # Rate user#9999
  537. ;waifurate @user#9999
  538. ```
  539. !!! quote ""
  540. This command is dedicated to Hannah, who came up with the command. I hope she's out there getting her waifus rated in peace.
  541. ### ;xkcd
  542. Grabs the image & metadata of the given xkcd comic. The query can be a comic number, comic title, or latest to get the latest. If not given, Roxbot will return a random comic.
  543. Command Structure:
  544. `;xkcd [query: optional]`
  545. Examples:
  546. ```py
  547. # Get random comic
  548. ;xkcd
  549. # Get comic number 666
  550. ;xkcd 666
  551. # Get comic with the title "Silent Hammer"
  552. ;xkcd "Silent Hammer"
  553. # Get latest comic
  554. ;xkcd latest
  555. ```
  556. ### ;zalgo
  557. Sends text to the nether and returns it back to you ̭҉̭̭ͭi̭͎̭ṋ̭̀҈̭̭̋ ̭͉̭z̭̩̭a̭̭̽ḽ̦̭g̭̞̭o̭̤̭ ̭̭͑f̭̻̭o̭̭͢r̭̭̀m̭̭ͮ
  558. Command Structure:
  559. `;zalgo text`
  560. Aliases:
  561. `za`
  562. Example:
  563. ```py
  564. # Convert "Hello World" to zalgo.
  565. ;zalgo Hello World
  566. ```
  567. ---
  568. ## ImageEditor
  569. The ImageEditor cog is a cog with multiple commands to manipulate images provided by the user.
  570. ### ;deepfry
  571. Deepfrys the given image
  572. Command structure:
  573. `;deepfry image`
  574. Aliases:
  575. `df`
  576. Args:
  577. - image: Optional
  578. 1. If no image is provided, image will be your avatar
  579. 2. Mention a user, their avatar will be the image
  580. 3. Provide a URL, that will be the image
  581. 4. Provide an image via upload, that image will be deepfried
  582. ### ;pride
  583. `;pride` is a command group for multiple pride flag filters. Available pride filters are: LGBT, Bisexual, Asexual, Pansexual, Transgender, Non Binary, Agender, Gender Queer, Gender Fluid.
  584. Command structure:
  585. `;pride subcommand image`
  586. Args:
  587. - subcommand: One of the following: `lgbt, bisexual, asexual, pansexual, transgender, nonbinary, agender, genderqueer, genderfuild.`
  588. - image: Optional
  589. 1. If no image is provided, image will be your avatar
  590. 2. Mention a user, their avatar will be the image
  591. 3. Provide a URL, that will be the image
  592. 4. Provide an image via upload, that image will be deepfried
  593. !!! note
  594. If you want there to be more pride flag filters or feel there are some missing, don't be afraid to [submit an issue to the Github repo!](https://github.com/Roxxers/roxbot/issues/new)
  595. #### ;pride agender
  596. Command structure:
  597. `;pride agender image`
  598. #### ;pride asexual
  599. Command structure:
  600. `;pride asexual image`
  601. Aliases:
  602. `ace`
  603. #### ;pride bisexual
  604. Command structure:
  605. `;pride bisexual image`
  606. Aliases:
  607. `bi`
  608. #### ;pride genderfluid
  609. Command structure:
  610. `;pride genderfluid image`
  611. Aliases:
  612. `gf`
  613. #### ;pride genderqueer
  614. Command structure:
  615. `;pride genderqueer image`
  616. Aliases:
  617. `gq`
  618. #### ;pride lgbt
  619. Command structure:
  620. `;pride lgbt image`
  621. #### ;pride nonbinary
  622. Command structure:
  623. `;pride nonbinary image`
  624. Aliases:
  625. `nb`, `enby`
  626. #### ;pride transgender
  627. Command structure:
  628. `;pride transgender image`
  629. Aliases:
  630. `trans`
  631. ---
  632. ## JoinLeave
  633. JoinLeave is a cog that allows you to create custom welcome and goodbye messages for your Discord server.
  634. !!! warning
  635. This whole cog cannot be used in private messages.
  636. ### ;goodbyes
  637. Edits settings for the goodbye messages.
  638. !!! warning "Required Permissions"
  639. Command requires the user to have the `manage_messages` permission.
  640. Command Structure
  641. `;goodbyes option [changes: optional]`
  642. Options
  643. - `enable/disable` - Enable/disables goodbye messages.
  644. - `channel` - Sets the channel for the message to be posted in. If no channel is provided, it will default to the channel the command is executed in.
  645. Example:
  646. ```
  647. # Enable goodbye messages, set the channel one called `#logs` using a channel mention.
  648. ;goodbyes enable
  649. ;goodbyes channel #logs
  650. ```
  651. ### ;greets
  652. Edits settings for the welcome messages
  653. !!! warning "Required Permissions"
  654. Command requires the user to have the `manage_messages` permission.
  655. Command Structure:
  656. `;greets option [changes: optional]`
  657. Options:
  658. - `enable/disable` - Enable/disables greet messages.
  659. - `channel` - Sets the channel for the message to be posted in. If no channel is provided, it will default to the channel the command is executed in.
  660. - `message` - Specifies a custom message for the greet messages.
  661. Example:
  662. ```py
  663. # Enable greet messages, set the channel to the current one, and set a custom message to be appended.
  664. ;greets enable
  665. ;greets message "Be sure to read the rules and say hi! :wave:"
  666. ;greets channel # if no channel is provided, it will default to the channel the command is executed in.
  667. ```
  668. ---
  669. ## NSFW
  670. The NSFW cog is a collection of commands that post images from popular NSFW sites.
  671. ### ;e621
  672. Posts a random image from [e621](https://e621.net) using the tags you provide. Tags can be anything you would use to search the site normally like author and ratings.
  673. !!! warning
  674. This command will only work in channels marked NSFW or DMs.
  675. !!! warning
  676. [e621](https://e621.net) limits searches to 6 tags via the API. Blacklisting a lot of tags may break this command.
  677. Command Structure:
  678. `;e621 [*tags: optional]`
  679. Examples:
  680. ```py
  681. # Post a random image
  682. ;e621
  683. # Post a random image with the tag "test"
  684. ;e621 test
  685. ```
  686. ### ;gelbooru
  687. Posts a random image from [gelbooru](https://gelbooru.com) using the tags you provide. Tags can be anything you would use to search the site normally like author and ratings.
  688. !!! warning
  689. This command will only work in channels marked NSFW or DMs.
  690. Command Structure:
  691. `;gelbooru [*tags: optional]`
  692. Examples:
  693. ```py
  694. # Post a random image
  695. ;gelbooru
  696. # Post a random image with the tag "test"
  697. ;gelbooru test
  698. ```
  699. ### ;rule34
  700. Posts a random image from [rule34.xxx](https://rule34.xxx/) using the tags you provide. Tags can be anything you would use to search the site normally like author and ratings.
  701. !!! warning
  702. This command will only work in channels marked NSFW or DMs.
  703. Command Structure:
  704. `;rule34 [*tags: optional]`
  705. Examples:
  706. ```py
  707. # Post a random image
  708. ;rule34
  709. # Post a random image with the tag "test"
  710. ;rule34 test
  711. ```
  712. ---
  713. ### ;nsfw
  714. Edits settings for the nsfw cog and other nsfw commands.
  715. !!! warning "Required Permissions"
  716. Command requires the user to have the `manage_channels` permission.
  717. !!! warning
  718. This command cannot be used in private messages.
  719. Options:
  720. `enable/disable`: Enable/disables nsfw commands.
  721. `addbadtag/removebadtag`: Add/Removes blacklisted tags so that you can avoid em with the commands.
  722. Example:
  723. ```py
  724. # Enabled NSFW commands
  725. ;nsfw enable
  726. # Add "test" as a blacklisted tag
  727. ;nsfw addbadtag test
  728. # Remove "Roxbot" as a blacklisted tag
  729. ;nsfw removebadtag Roxbot
  730. ```
  731. ---
  732. ## Reddit
  733. The Reddit cog is a cog that allows users to get images and videos from their favourite subreddits.
  734. ### ;subreddit
  735. Grabs an image or video (jpg, png, gif, gifv, webm, mp4) from the subreddit inputted.
  736. Command Structure:
  737. `;subreddit name_of_subreddit`
  738. Example:
  739. ```py
  740. # Get images from /r/pics
  741. ;subreddit pics
  742. ```
  743. ---
  744. !!! info
  745. The following commands are alias-like commands that function like `;subreddit`, randomly selecting a subreddit in a collection of themed subreddits to get a post from.
  746. ### ;aww
  747. Gives you cute pics from reddit
  748. Subreddits:
  749. `"aww", "redpandas", "lazycats", "rarepuppers", "awwgifs", "adorableart"`
  750. Command Structure:
  751. `;aww`
  752. ### ;feedme
  753. Feeds you with food porn.
  754. Subreddits:
  755. `"foodporn", "food", "DessertPorn", "tonightsdinner", "eatsandwiches", "steak", "burgers", "pizza", "grilledcheese", "PutAnEggOnIt", "sushi"`
  756. Command Structure:
  757. `;feedme`
  758. ### ;feedmevegan
  759. Feeds you with vegan food porn.
  760. Subreddits:
  761. `"veganrecipes", "vegangifrecipes", "veganfoodporn"`
  762. Command Structure:
  763. `;feedmevegan`
  764. ### ;me_irl
  765. The full (mostly) me_irl network of subs.
  766. Subreddits:
  767. `"me_irl", "woof_irl", "meow_irl", "metal_me_irl"`
  768. Command Structure:
  769. `;me_irl`
  770. Aliases:
  771. `meirl`
  772. ### ;traa
  773. Gives you the best trans memes for daysssss
  774. Subreddits:
  775. `"gaysoundsshitposts", "traaaaaaannnnnnnnnns"`
  776. Command Structure:
  777. `;traa`
  778. Aliases:
  779. `gssp`, `gss`, `trans_irl`
  780. ---
  781. ## SelfAssign
  782. The SelfAssign cog allows guild's to mark roles as 'self assignable'. This allows users to give themselves these roles and to see all the roles marked as 'self assignable'.
  783. !!! warning
  784. This whole cog cannot be used in private messages.
  785. ### ;iam
  786. Self-assign yourself a role. Can only be done one role at a time.
  787. Command Structure:
  788. `;iam role`
  789. Example:
  790. `;iam OverwatchPing`
  791. ### ;iamn
  792. Remove a self-assigned role. Can only be done one role at a time.
  793. Command Structure:
  794. `;iamn role`
  795. Example:
  796. `;iamn OverwatchPing`
  797. ### ;listroles
  798. List's all roles that can be self-assigned on this server.
  799. Command Structure:
  800. `;listroles`
  801. ---
  802. ### ;selfassign
  803. Edits settings for self assign cog.
  804. !!! warning "Required Permissions"
  805. Command requires the user to have the `manage_roles` permission.
  806. Command Structure:
  807. `;sa option [role: optional]`
  808. Aliases:
  809. `sa`
  810. Options:
  811. enable/disable: Enable/disables the cog.
  812. add/remove: adds or removes a role that can be self assigned in the server.
  813. Example:
  814. ```py
  815. # Turn on self assigned roles and add a role called "ROLE"
  816. ;sa enable
  817. ;sa add ROLE
  818. ```
  819. ---
  820. ## Trivia
  821. ![roxbottrivialogo](assets/images/roxbottriviabanner.png)
  822. Roxbot Trivia is a trivia game in *your* discord server. It's heavily inspired by Tower Unite's Trivia mini-game. Learn how to play Roxbot Trivia [here](trivia.md). More detailed documentation can be found below.
  823. This cog works better if the bot account is in the Roxbot Emoji Server. If it cannot find the emotes it needs, it will default to unicode emoji.
  824. !!! warning
  825. This whole cog cannot be used in private messages.
  826. !!! info "Disclaimer"
  827. Roxbot Trivia uses the Open Trivia Database, made and maintained by Pixeltail Games LLC. The OpenTDB is licensed under the [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/). Find out more at [https://opentdb.com/](https://opentdb.com/).
  828. ### ;trivia
  829. Command group for the Roxbot Trivia game. All interactions with the game are done through this command.
  830. Command Structure:
  831. `;trivia subcommand`
  832. Aliases:
  833. `tr`
  834. #### ;trivia about
  835. Displays help in playing Roxbot Trivia. If nothing/an incorrect subcommand is passed to the trivia command, this command is invoked instead. This outputs something similar to the [About Roxbot Trivia page](trivia.md).
  836. Command Structure:
  837. `;trivia about`
  838. #### ;trivia join
  839. Joins a Trivia game in this channel. The game must be waiting for players to join after a user has executed the `;trivia start` command. You cannot join a game in progress.
  840. Command Structure:
  841. `;trivia join`
  842. #### ;trivia leave
  843. Command to leave the game. When invoked, the user leaves the game and their score is removed from the leaderboard. This can be done at any point of the game.
  844. Command Structure:
  845. `;trivia leave`
  846. #### ;trivia start
  847. Starts a trivia game in the channel the command was invoked in.
  848. Command Structure:
  849. `;trivia start [*args: optional]`
  850. Args:
  851. - `--mobile`/`-m` - Launches the game in a mobile compatible mode. In case rich embeds are not readable, especially for Android users.
  852. - `--solo`/`-s` - Skips waiting for users to join and launches the game immediately. Useful for users just wanting to play solo.
  853. - `--length`/`-l` - Takes option for the length of the game. Acceptable options are `short` (5 Questions), `medium` (10), and `long` (15).
  854. Examples:
  855. ```py
  856. # Start a standard trivia game
  857. ;trivia start
  858. # Start a mobile compatible solo game of Roxbot Trivia
  859. ;tr start -ms
  860. # Start a solo short game
  861. ;tr start --solo --length short
  862. ```
  863. #### ;trivia kick
  864. Mod command to kick users out of the game. Useful if a user is AFK because of the timer on answering questions.
  865. !!! warning "Required Permissions"
  866. Command requires the user to have the `manage_channels` permission.
  867. Command Structure:
  868. `;trivia kick user`
  869. Options:
  870. - `user` - A name, ID, or mention of a user.
  871. Example:
  872. ```py
  873. # Kick user called BadTriviaPlayer
  874. ;tr kick @BadTriviaPlayer
  875. ```
  876. ---
  877. ## Util
  878. The Util cog is a cog filled with a number of utility commands to help more advanced users of Discord.
  879. ### ;avatar
  880. Uploads a downloadable picture of an avatar.
  881. Command Structure:
  882. `;avatar [user: optional]`
  883. Options:
  884. - `user` - OPTIONAL: A name, ID, or mention of a user. If provided, the command will return the user's avatar, if not, it will provide your own.
  885. Example:
  886. ```py
  887. # Get my avatar
  888. ;avatar
  889. # Get USER's avatar
  890. ;avatar USER#0001
  891. ```
  892. ### ;emote
  893. Displays information (creation date, guild, ID) and an easily downloadable version of the given custom emote.
  894. Command Structure:
  895. `;emote EMOTE`
  896. Aliases:
  897. `emoji`
  898. Options:
  899. - `emote` - Needs to be a valid custom emoji
  900. Example:
  901. ```py
  902. # Get infomation of the emoji ":Kappa:"
  903. ;emote :Kappa:
  904. ```
  905. ### ;guild
  906. Gives information (creation date, owner, ID) on the guild this command is executed in.
  907. !!! warning
  908. This command cannot be used in private messages.
  909. Command Structure:
  910. `;guild`
  911. Aliases:
  912. `server`
  913. ### ;info
  914. Provides information (account creation date, ID, roles [if in a guild]) on your or another persons account.
  915. Command Structure:
  916. `;info [USER: optional]`
  917. Aliases:
  918. `user`
  919. Options:
  920. - `USER` - OPTIONAL: A name, ID, or mention of a user.
  921. Examples:
  922. ```py
  923. # Get account information for yourself
  924. ;info
  925. # Get account information for a user called USER
  926. ;info @USER
  927. ```
  928. ### ;role
  929. Gives information (creation date, colour, ID) on the role given. Can only work if the role is in the guild you execute this command in.
  930. !!! warning
  931. This command cannot be used in private messages.
  932. Command Structure:
  933. `;role ROLE`
  934. Options:
  935. - `ROLE` - Name, ID, or mention of the role you want the info for.
  936. Example:
  937. ```py
  938. # Get information on the role called Admin
  939. ;role Admin
  940. ```
  941. ---
  942. ## Voice
  943. The Voice cog is a cog that adds and manages a fully-functional music bot for Roxbot.
  944. !!! warning
  945. This whole cog cannot be used in private messages.
  946. ### ;join
  947. Summon Roxbot to a voice channel, usually the one you are currently in.
  948. !!! note
  949. This is done automatically when you execute the `;play` or `;stream` commands.
  950. !!! warning "Required Permissions"
  951. Command requires the user to have the `manage_channels` permission
  952. Command Structure:
  953. `;join [Voice Channel: optional]`
  954. Options:
  955. - `Voice Channel` - OPTIONAL. The name of a Voice Channel
  956. Example:
  957. ```py
  958. # Join a voice channle called General
  959. ;join General
  960. ```
  961. ### ;nowplaying
  962. Displays what is currently playing.
  963. Command Structure:
  964. `;nowplaying`
  965. Aliases:
  966. `;np`
  967. ### ;pause
  968. Pauses the current video, if playing.
  969. !!! warning "Required Permissions"
  970. Command requires the user to have the `manage_channels` permission if this is enabled by server admins using the needperms setting in `;voice`
  971. Command Structure:
  972. `;pause`
  973. ### ;play
  974. Plays a video over voice chat using the given URL. This URL has to be one that YoutubeDL can download from. [A list can be found here.](https://rg3.github.io/youtube-dl/supportedsites.html)
  975. If the bot is already playing something, this will be queued up to be played later. If you want to play a livestream, use the `;stream` command.
  976. !!! info
  977. The user needs to be in a voice channel for this command to work. This is ignored if the user has the `manage_channels` permission. There is also a duration limit that can be placed on videos. This is also ignored if the user has the `manage_channels` permission.
  978. Command Structure:
  979. `;play url`
  980. Options:
  981. - `url` - A url to a video or playlist or a search term. If a playlist, it will play the first video and queue up all other videos in the playlist. If just text, Roxbot will play the first Youtube search result.
  982. Examples:
  983. ```py
  984. # Play the quality youtube video
  985. ;play https://www.youtube.com/watch?v=3uOPGkEJ56Q
  986. ```
  987. ### ;queue
  988. Displays what videos are queued up and waiting to be played.
  989. Command Structure:
  990. `;queue`
  991. ### ;remove
  992. Removes a video from the queue.
  993. !!! warning "Required Permissions"
  994. Command requires the user to have the `manage_channels` permission
  995. Command Structure:
  996. `;remove index/"all"`
  997. Options:
  998. - `index/all` - A number representing an index in the queue to remove one video, or "all" to clear all videos.
  999. Examples:
  1000. ```py
  1001. # Remove 2nd video
  1002. ;remove 2
  1003. # Clear the queue
  1004. ;remove all
  1005. ```
  1006. ### ;resume
  1007. Resumes the bot, if paused.
  1008. !!! warning "Required Permissions"
  1009. Command requires the user to have the `manage_channels` permission if this is enabled by server admins using the needperms setting in `;voice`
  1010. Command Structure:
  1011. `;resume`
  1012. ### ;skip
  1013. Skips the current playing video.
  1014. If skipvoting is enabled, multiple people will have to use this command to go over the ratio that is also set by server moderators.
  1015. Command Structure:
  1016. `;skip [--force: optional]`
  1017. Options:
  1018. - `--force` - if skip voting is enabled, users with the `manage_channel` permission can skip this process and for the video to be skipped.
  1019. Examples:
  1020. ```py
  1021. # Vote to skip a video
  1022. ;skip
  1023. # Force skip a video
  1024. ;skip --force
  1025. ```
  1026. ### ;stop
  1027. Stops Roxbot from playing music and has her leave voice chat.
  1028. !!! warning "Required Permissions"
  1029. Command requires the user to have the `manage_channels` permission.
  1030. Command Structure:
  1031. `;stop`
  1032. Aliases:
  1033. `disconnect`
  1034. ### ;stream
  1035. A version of `;play` that should be used to stream livestreams or internet radio sources.
  1036. For more details on how this command words, please look at the documentation for the `;play` command.
  1037. Command Structure:
  1038. `;stream url`
  1039. ### ;volume
  1040. Sets the volume percentage for Roxbot's audio.
  1041. The current volume of Roxbot is displayed by her nowplaying rich embeds that are displayed when she begins to play a video or when the `;nowplaying` command is used.
  1042. !!! warning "Required Permissions"
  1043. Command requires the user to have the `manage_channels` permission if this is enabled by server admins using the needperms setting in `;voice`
  1044. Command Structure:
  1045. `;volume percent`
  1046. Options:
  1047. - `percent` - A positive integer between 0-100 representing a percentage.
  1048. Example:
  1049. ```py
  1050. # Set volume to 20%
  1051. ;volume 20
  1052. ```
  1053. ### ;voice
  1054. Edits settings for the voice cog.
  1055. !!! warning "Required Permissions"
  1056. Command requires the user to have the `manage_channels` permission
  1057. Command Structure:
  1058. `;voice option [change: optional]`
  1059. Options:
  1060. - `enable/disable`: Enable/disables specified change.
  1061. - `skipratio`: Specify what the ratio should be for skip voting if enabled. Example: 0.6 for 60%
  1062. - `maxlength/duration`: Specify (in seconds) the max duration of a video that can be played.
  1063. Possible settings to enable/disable:
  1064. - `needperms`: specifies whether `volume`, `pause`, or `resume` require permissions or not.
  1065. - `skipvoting`: enables voting to skip instead of one user skipping.
  1066. Example:
  1067. ```py
  1068. # Enable skipvoting
  1069. ;voice enable skip_voting
  1070. # Disbale needing perms for volume, pause, etc.
  1071. ;voice disable need_perms
  1072. # Edit max_length to 5 minutes
  1073. ;voice max_length 300
  1074. ```