diff --git a/commands.json b/commands.json index d6ab8280b..eaec74009 100644 --- a/commands.json +++ b/commands.json @@ -1 +1 @@ -[{"id":"builds.add","call":"add build","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^(?:add build|ab)\\s?(.+)?"},"path":"Builds/AddBuild.js","usages":[{"description":"Display instructions for creating a new build with Genesis","parameters":[]}],"blacklistable":true},{"id":"builds.delete","call":"delete build","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^(?:delete build|db)\\s?(.+)?"},"path":"Builds/DeleteBuild.js","usages":[{"description":"Display information on an existing build from Genesis","parameters":[]}],"blacklistable":true},{"id":"builds.get","call":"get build","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^(?:get build|gb)\\s?(.+)?"},"path":"Builds/GetBuild.js","usages":[{"description":"Display information on an existing build from Genesis","parameters":[]}],"blacklistable":true},{"id":"builds.list","call":"list builds","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^(?:list builds|lb)\\s?(.+)?"},"path":"Builds/ListBuilds.js","usages":[{"description":"Display information on an existing build from Genesis. `|` separates title, body, and image. `;` separates sections in the body.","parameters":["title | body | image"]}],"blacklistable":true},{"id":"builds.set","call":"set build","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^set build(?:\\s?(all|title|body|image)\\s?(.+))?"},"path":"Builds/SetField.js","usages":[{"description":"Display instructions for creating a new build with Genesis","parameters":[]}],"blacklistable":true},{"id":"core.bug","call":"bug","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^bug\\s*(.*)?"},"path":"Core/Bug.js","usages":[{"description":"Send a bug report to bot owner","parameters":["bug report"]},{"description":"Send a bug report to bot owner with subject, message, and optional screenshot. The `|` are important.","parameters":["subject","body","* screenshot"],"separator":" | "},{"description":"Send a bug report to bot owner with subject, message, and optional screenshot. The `|` are important.","parameters":["subject","body","attached image"],"separator":" | "}],"blacklistable":true},{"id":"core.help","call":"help","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^help(?:\\s(.*)?)?$"},"path":"Core/Help.js","usages":[{"description":"Receive the full welcome data by visiting the provided link.","parameters":[]},{"description":"Query for info about a specific command","parameters":["command search"]}],"blacklistable":true},{"id":"core.info","call":"info","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^infos?$"},"path":"Core/Info.js","usages":[{"description":"Information about the bot","parameters":[]}],"blacklistable":true},{"id":"core.invitation","call":"invitation","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"gi","body":"^invitation$"},"path":"Core/Invite.js","usages":[{"description":"Send Invitation Link to Authorize Bot to Join a Server","parameters":[]}],"blacklistable":true},{"id":"core.ping","call":"ping","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^pings?$"},"path":"Core/Ping.js","usages":[{"description":"Ping Genesis to test connectivity","parameters":[]}],"blacklistable":true},{"id":"core.reset","call":"reset","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^resets?$"},"path":"Core/Reset.js","usages":[{"description":"Reset the settings for this guild","parameters":[]}],"blacklistable":true},{"id":"core.support","call":"support","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^supports?$"},"path":"Core/Support.js","usages":[{"description":"Support info about the bot","parameters":[]}],"blacklistable":true},{"id":"customcommands.add","call":"add cc","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^add cc\\s+(\\w+)?\\s?([\\s\\S]*)"},"path":"CustomCommands/AddCustomCommand.js","usages":[{"description":"Add a custom command","parameters":["command call","comamnd response"]}],"blacklistable":true},{"id":"customcommands.delete","call":"delete cc","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^delete cc\\s+(\\w+)?$"},"path":"CustomCommands/DeleteCustomCommand.js","usages":[{"description":"Delete a custom command","parameters":["command call"]}],"blacklistable":true},{"id":"settings.cc.list","call":"list cc","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^list ccs?$"},"path":"CustomCommands/ListCustomCommand.js","usages":[{"description":"List custom commands for this guild","parameters":[]}],"blacklistable":true},{"id":"settings.cc.ping","call":"ping cc","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^ping cc\\s?(on|off)?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?$"},"path":"CustomCommands/PingCustomCommand.js","usages":[{"description":"Change if this channel's use custom commands will ping","parameters":["custom commands enabled"]}],"blacklistable":true},{"id":"settings.addDefaultRole","call":"add default role","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^add default role\\s?(?:(?:<@&)(\\d+)(?:>))?$"},"path":"DefaultRoles/AddDefaultRole.js","usages":[{"description":"Add a new default role for persons joining the server.","parameters":["role id"]}],"blacklistable":true},{"id":"settings.clearDefaultRoles","call":"clear default roles","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^clear default roless?$"},"path":"DefaultRoles/ClearDefaultRoles.js","usages":[{"description":"Clears all default roles for the server.","parameters":[]}],"blacklistable":true},{"id":"settings.deleteDefaultRole","call":"delete default role","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^delete default role\\s?(\\d+)?$"},"path":"DefaultRoles/DeleteDefaultRole.js","usages":[{"description":"Add a new default role for persons joining the server.","parameters":["message"]}],"blacklistable":true},{"id":"dynamicchannels.add","call":"templates add","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^templates add\\s?(?:(?:<#)?(\\d+)(?:>)?)?(?:\\s+(--relay))?$"},"path":"DynamicChannels/AddTemplateChannel.js","usages":[{"description":"Add a template channel. If `--relay` is specified, it will use relay naming.","parameters":["channel mention","--relay"]}],"blacklistable":true},{"id":"dynamicchannels.delete","call":"templates delete","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^templates delete\\s?(?:(?:<#)?(\\d+)(?:>)?)?$"},"path":"DynamicChannels/DeleteTemplateChannel.js","usages":[{"description":"Remove a template channel","parameters":["channel mention"]}],"blacklistable":true},{"id":"dynamicchannels.list","call":"templates list","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^templates lists?$"},"path":"DynamicChannels/ListTemplateChannels.js","usages":[{"description":"List Template Channels","parameters":[]}],"blacklistable":true},{"id":"inline.warframe.info","call":"[Query]","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":true,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"gi","body":"\\[(.*?)\\]"},"path":"Info/ItemEmbeddedInline.js","usages":[{"description":"Get stats for a Warframe","parameters":["[warframe name]"]}],"blacklistable":true},{"id":"lfg.add","call":"lfg","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^lfg\\s?(.+)?"},"path":"LFG/LFG.js","usages":[{"description":"Submit an LFG request to this guild's LFG channel","parameters":["place","time","for","platform *"],"separator":" | "}],"blacklistable":true},{"id":"settings.lfgChannel","call":"set lfg channel","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set lfg channel\\s?(?:(?:<#)(\\d+)(?:>))?$"},"path":"LFG/SetLFGChannel.js","usages":[{"description":"Set the LFG channel","parameters":["channel id"]}],"blacklistable":true},{"id":"settings.banLog","call":"set ban log","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set ban log\\s?(?:(?:<#)(\\d+)(?:>))?$"},"path":"Logging/BanLog.js","usages":[{"description":"Set the ban log channel","parameters":["channel id"]}],"blacklistable":true},{"id":"settings.memberRemoveLog","call":"set member remove log","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set member remove log\\s?(?:(?:<#)(\\d+)(?:>))?$"},"path":"Logging/MemberRemoveLog.js","usages":[{"description":"Set the member removal log channel","parameters":["channel id"]}],"blacklistable":true},{"id":"settings.msgDeleteLog","call":"set message delete log","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set message delete log\\s?(?:(?:<#)(\\d+)(?:>))?$"},"path":"Logging/SetMessageDeleteLog.js","usages":[{"description":"Set the message dlete log channel","parameters":["channel id"]}],"blacklistable":true},{"id":"settings.setModRole","call":"set mod","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set mod\\s?(?:(?:<@&)(\\d+)(?:>))?$"},"path":"Logging/SetModRole.js","usages":[{"description":"Change the configured mod role","parameters":["mod role id"]}],"blacklistable":true},{"id":"settings.vulgarLog","call":"set vulgar log","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set vulgar log\\s?(?:(?:<#)(\\d+)(?:>))?$"},"path":"Logging/SetVulgarLog.js","usages":[{"description":"Set the vulgarity log channel","parameters":["channel id"]}],"blacklistable":true},{"id":"settings.unbanLog","call":"set unban log","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set unban log\\s?(?:(?:<#)(\\d+)(?:>))?$"},"path":"Logging/UnbanLog.js","usages":[{"description":"Set the unban log channel","parameters":["channel id"]}],"blacklistable":true},{"id":"warframe.misc.arcane","call":"arcane","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^arcane(.+)?"},"path":"Ondemand/Arcane.js","usages":[{"description":"Get information about an Arcane Enhancement","parameters":["enhancement name"]}],"blacklistable":true},{"id":"warframe.misc.armor","call":"armor","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^armor(?:\\s+([\\d+\\.?\\d*\\s]+))?"},"path":"Ondemand/Armor.js","usages":[{"description":"Display instructions for calculating armor","parameters":[]},{"description":"Display current damage resistance and amount of corrosive procs required to strip it.","parameters":["current armor"]},{"description":"Display the current armor, damage resistance, and necessary corrosive procs to strip armor.","parameters":["base armor","base level","current level"]}],"blacklistable":true},{"id":"warframe.misc.buildchart","call":"buildchart","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^buildcharts?$"},"path":"Ondemand/BuildChart.js","usages":[{"description":"Display Weapon Build Flowchart chart","parameters":[]}],"blacklistable":true},{"id":"warframe.misc.damage","call":"damage","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^damages?$"},"path":"Ondemand/Damage.js","usages":[{"description":"Display Damage 2.0 chart","parameters":[]}],"blacklistable":true},{"id":"warframe.misc.efficiency","call":"efficiency","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^efficiencys?$"},"path":"Ondemand/Efficiency.js","usages":[{"description":"Display Warframe Efficiency Chart","parameters":[]}],"blacklistable":true},{"id":"warframe.misc.stats","call":"frame","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^frame\\s?(.+)?"},"path":"Ondemand/FrameStats.js","usages":[{"description":"Get stats for a Warframe","parameters":["warframe name"]}],"blacklistable":true},{"id":"warframe.misc.mod","call":"mod","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^mod(.+)"},"path":"Ondemand/Mod.js","usages":[{"description":"Search the Warframe Wiki for a mod's image","parameters":[]}],"blacklistable":true},{"id":"warframe.misc.pricecheck","call":"pricecheck","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^p(?:rice)?\\s?c(?:heck)?(?:\\s+([\\w+\\s]+))?"},"path":"Ondemand/Pricecheck.js","usages":[{"description":"Display an items worth from nexus-stats.com","parameters":["item"]}],"blacklistable":true},{"id":"warframe.misc.profile","call":"profile","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^profile(?:\\s+(.+))?"},"path":"Ondemand/Profile.js","usages":[{"description":"Search for a player's profile","parameters":["in-game name (PC only)"]}],"blacklistable":true},{"id":"warframe.misc.progress","call":"progress","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^progresss?$"},"path":"Ondemand/Progression.js","usages":[{"description":"Display Warframe Progression Chart","parameters":[]}],"blacklistable":true},{"id":"warframe.stats.raid","call":"raid","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^(?:raids?|trials?)\\s*(.+)?"},"path":"Ondemand/Raid.js","usages":[{"description":"Search for a users's raid stats","parameters":["username"]}],"blacklistable":true},{"id":"warframe.calculations.shields","call":"shields","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^shield(?: +([\\d+\\.?\\d* ]+))?"},"path":"Ondemand/Shields.js","usages":[{"description":"Display an enemy's current shields.","parameters":["base shields","base level","current level"]}],"blacklistable":true},{"id":"warframe.misc.tutorial","call":"tutorial","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^tutorials?\\s?(.+)?"},"path":"Ondemand/Tutorial.js","usages":[{"description":"Get a Warframe Tutorial Video","parameters":["subject"]}],"blacklistable":true},{"id":"warframe.misc.weaponstats","call":"weapon","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^weapon\\s?(.+)?"},"path":"Ondemand/Weapon.js","usages":[{"description":"Get stats for a Warframe","parameters":["weapon name"]}],"blacklistable":true},{"id":"warframe.misc.whatsin","call":"whatsin","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^whatsin(?:\\s+(axi|neo|meso|lith)\\s?(\\w\\d+))?"},"path":"Ondemand/Whatsin.js","usages":[{"description":"Display what drops from a relic","parameters":["relic"]}],"blacklistable":true},{"id":"warframe.misc.whereis","call":"whereis","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^where\\s?(?:is\\s?)?(.+)?"},"path":"Ondemand/WhereIs.js","usages":[{"description":"Display where something drops from","parameters":["item"]}],"blacklistable":true},{"id":"warframe.misc.wiki","call":"wiki","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^wiki\\s*([\\w\\s-]+)?"},"path":"Ondemand/Wiki.js","usages":[{"description":"Search the Warframe wiki for a specific topic","parameters":["topic"]}],"blacklistable":true},{"id":"core.avatar","call":"avatar","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^avatar\\s*(.*)?"},"path":"Owner/Avatar.js","usages":[{"description":"Set the bot's avatar url","parameters":["avatar url"]}],"blacklistable":true},{"id":"core.webhooks.delete","call":"delete webhook in","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^delete webhook in\\s*(.*)?"},"path":"Owner/DeleteWebhook.js","usages":[{"description":"Delete the webhook for a given channel id","parameters":["channel id"]}],"blacklistable":true},{"id":"core.kill","call":"kill","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^kills?$"},"path":"Owner/Kill.js","usages":[{"description":"Kill current shard","parameters":[]}],"blacklistable":true},{"id":"core.leaveserver","call":"leaveserver","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^leaveserver\\s*(.*)?"},"path":"Owner/LeaveServer.js","usages":[{"description":"Tell the bot to leave a server, if it's cached","parameters":["server id"]}],"blacklistable":true},{"id":"core.reload","call":"reload","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^reloads?$"},"path":"Owner/Reload.js","usages":[{"description":"Reload bot modules","parameters":[]}],"blacklistable":true},{"id":"core.restart","call":"restart","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^restarts?$"},"path":"Owner/Restart.js","usages":[{"description":"Restart bot","parameters":[]}],"blacklistable":true},{"id":"core.servers","call":"servers","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^serverss?$"},"path":"Owner/Servers.js","usages":[{"description":"Get list of bot servers in file","parameters":[]}],"blacklistable":true},{"id":"core.username","call":"username","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^username\\s*(.*)?"},"path":"Owner/Username.js","usages":[{"description":"Set the bot's username","parameters":["username"]}],"blacklistable":true},{"id":"promocode.managers.add","call":"glyphs add manager","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs add manager\\s?(?:--pool\\s?(.*))?([0-9]{0,20})?"},"path":"Promocodes/AddManager.js","usages":[{"description":"Add a manager to a glyph pool","parameters":["--pool *",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"glyphs.addCode","call":"glyphs import","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs import\\s*(?:--pool\\s(.*))?\\s?(pc|ps4|xb1)?(.*)?"},"path":"Promocodes/AddPromocode.js","usages":[{"description":"Add a single code","parameters":["--pool *","",""],"delimBefore":" ","delimAfter":" "},{"description":"Bulk add codes. Export a single code to see the format.","parameters":["--pool *","",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.code.claim","call":"glyphs claim","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs claim\\s?(?:--pool\\s(.*))?\\s?(pc|ps4|xb1)?\\s?(?:--password\\s(.*))?"},"path":"Promocodes/ClaimPromocode.js","usages":[{"description":"Claim a code","parameters":["--pool *","--password (required if pool is secured)",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.pool.clearpassword","call":"glyphs clear password","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs clear password\\s?(?:--pool\\s(.*))?"},"path":"Promocodes/ClearPoolPassword.js","usages":[{"description":"Clear a pool's password","parameters":["--pool *"],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.pools.add","call":"glyphs create pool","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs create pool\\s?(.+)?"},"path":"Promocodes/CreatePool.js","usages":[{"description":"Create a pool from a name","parameters":["new pool name"]}],"blacklistable":true},{"id":"promocode.pools.remove","call":"glyphs del pool","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs del pool\\s?(.*)?"},"path":"Promocodes/DeletePool.js","usages":[{"description":"Remove a glyph pool that you manage","parameters":["--pool *"],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.export","call":"glyphs export","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"","body":"^glyphs export\\s?(.*)"},"path":"Promocodes/Export.js","usages":[{"description":"Export codes from a pool to a `.csv` file","parameters":["--pool *"],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.code.grant","call":"glyphs grant","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs grant\\s?(?:--pool\\s(.*))?\\s?(pc|ps4|xb1)?\\s?(?:<@([0-9]{0,20})>)?"},"path":"Promocodes/GrantPromocode.js","usages":[{"description":"Grant a code to a user from a specific pool","parameters":["--pool *","",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.code.claimed","call":"glyphs list claimed","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^glyphs list claimed"},"path":"Promocodes/ListClaimed.js","usages":[{"description":"List claimed codes.","parameters":[]}],"blacklistable":true},{"id":"promocode.pools.managed","call":"glyphs list managed","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^glyphs list managed"},"path":"Promocodes/ListPools.js","usages":[{"description":"List claimed codes.","parameters":[]}],"blacklistable":true},{"id":"promocode.managers.remove","call":"glyphs del manager","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs del manager\\s?(?:--pool\\s?(.*))?\\s?(?:<@([0-9]{15,20})>)?"},"path":"Promocodes/RemoveManager.js","usages":[{"description":"Remove a manager from a code pool","parameters":["--pool *",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.pool.restrict","call":"glyphs restrict","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs restrict\\s?(on|off)?\\s*(?:--pool\\s?(.*))?"},"path":"Promocodes/RestrictPool.js","usages":[{"description":"Restrict or unrestrict a pool","parameters":["","--pool *"],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.code.revoke","call":"glyphs revoke","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs revoke\\s?(.*)?"},"path":"Promocodes/RevokePromocode.js","usages":[{"description":"Revoke a claimed promocode from a user","parameters":["code to revoke"]}],"blacklistable":true},{"id":"promocode.pool.guild","call":"glyphs set guild","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs set guild\\s?(?:--pool\\s?(.*))?([0-9]{0,20})?"},"path":"Promocodes/SetPoolGuild.js","usages":[{"description":"Set the default guild (server) for a pool","parameters":["--pool *",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.pool.name","call":"glyphs set name","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs set name\\s?(?:--pool\\s?(?:.*))?(.*)?"},"path":"Promocodes/SetPoolName.js","usages":[{"description":"Set a pool's name. This doesn't alter the pool Id.","parameters":["--pool *",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.pool.password","call":"glyphs set password","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs set password\\s?(?:--pool\\s?(?:.*))?\\s?(.*)?"},"path":"Promocodes/SetPoolPassword.js","usages":[{"description":"Set a pool's password.","parameters":["--pool *",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.pool.public","call":"glyphs public","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs public\\s?(on|off)?\\s*(?:--pool\\s?(.*))?"},"path":"Promocodes/SetPoolPublic.js","usages":[{"description":"Make a pool public or private","parameters":["","--pool *"],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"settings.addRole","call":"add role","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^add role\\s?(.*)?\\s?(--create)?\\s?(--mentionable)?"},"path":"Roles/AddRole.js","usages":[{"description":"Show instructions for adding joinable roles","parameters":[]},{"description":"Add a role","parameters":["Role/Role id to add","--create","--mentionable","--leavable (on | off)","--requires @Role Mention"]}],"blacklistable":true},{"id":"settings.joinRole","call":"join","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^join\\s?(.*)?"},"path":"Roles/JoinRole.js","usages":[{"description":"Show instructions for joining roles","parameters":[]},{"description":"Joining a role","parameters":["Role/Role id to join."]}],"blacklistable":true},{"id":"settings.leaveRole","call":"leave","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^leave\\s?(.*)?"},"path":"Roles/LeaveRole.js","usages":[{"description":"Show instructions for leaving roles","parameters":[]},{"description":"Leave a role","parameters":["Role/Role id to leave"]}],"blacklistable":true},{"id":"settings.removeRole","call":"remove role","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^remove role\\s?(.*)?"},"path":"Roles/RemoveRole.js","usages":[{"description":"Show instructions for removing joinable roles","parameters":[]},{"description":"Remove a role","parameters":["Role/Role id to add","--delete"]}],"blacklistable":true},{"id":"settings.roleids","call":"roleids","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^roleidss?$"},"path":"Roles/RoleIds.js","usages":[{"description":"Get list of role ids","parameters":[]}],"blacklistable":true},{"id":"settings.ranks","call":"roles","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^roless?$"},"path":"Roles/Roles.js","usages":[{"description":"Get list of joinable roles","parameters":[]}],"blacklistable":true},{"id":"rooms.create","call":"create","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^create\\s?(room|raid|team|chat)?(\\w|-)?(?:-n(.+))?(--no-text)?(--public)?(--text)?(--hidden)?(--shown)?"},"path":"Rooms/Create.js","usages":[{"description":"Display instructions for creating temporary rooms","parameters":[]},{"description":"Create temporary text and voice channels for the calling user.","parameters":["room | raid | team"]},{"description":"Create temporary text and voice channels for the calling user and any mentioned users/roles.","parameters":["room | raid | team","users and/or role"]},{"description":"Create temporary text and voice channels for the calling user and any mentioned users/roles, with a custom name","parameters":["room | raid | team","users and/or role","-n name","--no-text","--public","--text","--locked"]}],"blacklistable":true},{"id":"rooms.destry","call":"destroy room","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^destroy room$"},"path":"Rooms/Destroy.js","usages":[],"blacklistable":true},{"id":"rooms.hide","call":"hide","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^hide$"},"path":"Rooms/Hide.js","usages":[],"blacklistable":true},{"id":"rooms.invite","call":"invite","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^invite"},"path":"Rooms/Invite.js","usages":[],"blacklistable":true},{"id":"rooms.lock","call":"lock","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^lock$"},"path":"Rooms/Lock.js","usages":[],"blacklistable":true},{"id":"rooms.rename","call":"rename room ","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^rename room \\s?(.+)?"},"path":"Rooms/Rename.js","usages":[],"blacklistable":true},{"id":"rooms.resize","call":"resize room","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^resize room\\s?(\\d+)"},"path":"Rooms/ResizeRoom.js","usages":[],"blacklistable":true},{"id":"settings.allowprivateroom","call":"allow private room","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^allow private room\\s?(on|off)?$"},"path":"Rooms/RoomCreation.js","usages":[{"description":"Change if the bot is allowed to create private channels","parameters":["private rooms enabled"]}],"blacklistable":true},{"id":"settings.defaultNoText","call":"set rooms notext","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set rooms notext\\s?(on|off)?$"},"path":"Rooms/RoomDefaultNoText.js","usages":[{"description":"Change if the bot should create unlocked channels by default (defaults to off)","parameters":["private notext defaulted"]}],"blacklistable":true},{"id":"settings.defaultroomsunlocked","call":"set rooms unlocked","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set rooms unlocked\\s?(on|off)?$"},"path":"Rooms/RoomPublicDefault.js","usages":[{"description":"Change if the bot should create unlocked channels by default (defaults to off)","parameters":["private rooms defaulted"]}],"blacklistable":true},{"id":"settings.defaultroomsshown","call":"set rooms shown","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set rooms shown\\s?(on|off)?$"},"path":"Rooms/RoomShownDefault.js","usages":[{"description":"Change if the bot should create shown channels by default (defaults to off)","parameters":["shown rooms defaulted"]}],"blacklistable":true},{"id":"settings.defaultcategory","call":"set rooms category","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set rooms category\\s?(\\d+)?$"},"path":"Rooms/SetDefaultCategory.js","usages":[{"description":"Change the bot's default category for temp rooms. Defaults to none.","parameters":["temp room default"]}],"blacklistable":true},{"id":"rooms.show","call":"show","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^show$"},"path":"Rooms/Show.js","usages":[],"blacklistable":true},{"id":"rooms.unlock","call":"unlock","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^unlock$"},"path":"Rooms/Unlock.js","usages":[],"blacklistable":true},{"id":"settings.allowCustom","call":"allow custom commands","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^allow\\s?custom(?:\\s?commands)?\\s?(on|off)?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?$"},"path":"Settings/AllowCustomCommands.js","usages":[{"description":"Change if this channel can use custom commands","parameters":["custom commands enabled"]}],"blacklistable":true},{"id":"settings.allowinline","call":"allow inline commands","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^allow\\s?inline(?:\\s?commands)?\\s?(on|off)?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?$"},"path":"Settings/AllowInlineCommands.js","usages":[{"description":"Change if this channel can use inline commands","parameters":["inline commands enabled"]}],"blacklistable":true},{"id":"settings.clearChannelPerms","call":"clear permissions","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^clear permissions(?:\\s*((?:(?:<#)?\\d+(?:>)?)|current|all|guild))?$"},"path":"Settings/ClearChannelPermissions.js","usages":[{"description":"Clear channel permisions for this or specified room, or guild","parameters":[]}],"blacklistable":true},{"id":"settings.clearpings","call":"clear pings","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^clear pingss?$"},"path":"Settings/ClearPings.js","usages":[{"description":"Clears all pings for the server","parameters":[]}],"blacklistable":true},{"id":"settings.deleteafterrespond","call":"delete after respond","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^delete\\s?after\\s?respond\\s?(all|command|respond|none)?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?$"},"path":"Settings/DeleteAfterRespond.js","usages":[{"description":"Change if the bot to delete commands and/or responses after responding in this channel","parameters":["deleting enabled"]}],"blacklistable":true},{"id":"settings.deleteexpired","call":"delete expired","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^delete\\s?expired\\s?(on|off)?$"},"path":"Settings/DeleteExpired.js","usages":[{"description":"Change if the bot to deletes expired notifications","parameters":["deleting enabled"]}],"blacklistable":true},{"id":"settings.disable","call":"disable","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^disable"},"path":"Settings/Disable.js","usages":[{"description":"Disable a command for a role in a channel or channels","parameters":["command id> in for "},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^enable(?:\\s+(\\w*\\.*\\w*\\.*\\w*\\*?)(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here|\\*))?(?:\\s+for\\s((?:\\<\\@\\&?)?\\d+(?:\\>)?|\\*))?)?"},"path":"Settings/Enable.js","usages":[{"description":"Enable a command for a role in a channel or channels","parameters":["command id> in for "},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^language\\s?(en-us)?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?$"},"path":"Settings/Language.js","usages":[{"description":"Change this channel's language","parameters":["language"]}],"blacklistable":true},{"id":"settings.platform","call":"platform","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"platform(?:\\s+([pcsxb14]{2,3}))?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?$"},"path":"Settings/Platform.js","usages":[{"description":"Change this channel's platform","parameters":["platform"]}],"blacklistable":true},{"id":"settings.prefix","call":"prefix","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^prefix(?:\\s+(.+))?"},"path":"Settings/Prefix.js","usages":[{"description":"Change this channel's platform","parameters":["prefix (up to 3 characters)"]}],"blacklistable":true},{"id":"settings.respondSettings","call":"respond to settings","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^respond(?:\\sto)?\\s?settings\\s?(on|off)?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?$"},"path":"Settings/RespondToSettings.js","usages":[{"description":"Change if this channel has settings changes responded in it","parameters":["response enabled"]}],"blacklistable":true},{"id":"settings.settings","call":"settings","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^settings(?:\\s*--expand)?(?:\\s+in\\s+((?:(?:<#)?\\d+(?:>)?)|current|all))?$"},"path":"Settings/Settings.js","usages":[{"description":"Get settings","parameters":[]}],"blacklistable":true},{"id":"silly.corgi","call":"corgi","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^corgis?$"},"path":"Silly/Corgi.js","usages":[{"description":"Genesis gets you a corgi","parameters":[]}],"blacklistable":true},{"id":"silly.echo","call":"echo","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^echo\\s?(.+)?"},"path":"Silly/Echo.js","usages":[{"description":"Genesis echos your message","parameters":[]}],"blacklistable":true},{"id":"silly.hug","call":"hug","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^hugs?$"},"path":"Silly/Hug.js","usages":[{"description":"Hug Genesis","parameters":[]}],"blacklistable":true},{"id":"silly.joke","call":"joke","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^jokes?$"},"path":"Silly/Joke.js","usages":[{"description":"Genesis tells a joke","parameters":[]}],"blacklistable":true},{"id":"silly.promocode","call":"promocodes","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^promocodess?$"},"path":"Silly/PromoCodes.js","usages":[{"description":"Get promocodes","parameters":[]}],"blacklistable":true},{"id":"settings.setping","call":"set ping","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set ping\\s*((alerts|invasions|news|sorties|baro|darvo|deals.featured|deals.popular|enemies|enemies.departed|conclave.weeklies|conclave.dailies|syndicate.arbiters|syndicate.suda|syndicate.loka|syndicate.perrin|syndicate.veil|syndicate.meridian|twitter.warframe.tweet|twitter.warframe.retweet|twitter.warframe.quote|twitter.warframe.reply|twitter.digitalextremes.tweet|twitter.digitalextremes.quote|twitter.digitalextremes.reply|twitter.pablo.tweet|twitter.pablo.retweet|twitter.pablo.quote|twitter.pablo.reply|twitter.cameron.tweet|twitter.cameron.retweet|twitter.cameron.quote|twitter.cameron.reply|twitter.rebecca.tweet|twitter.rebecca.retweet|twitter.rebecca.quote|twitter.rebecca.reply|twitter.steve.tweet|twitter.steve.retweet|twitter.steve.quote|twitter.steve.reply|twitter.danielle.tweet|twitter.danielle.retweet|twitter.danielle.quote|twitter.danielle.reply|twitter.megan.tweet|twitter.megan.retweet|twitter.megan.quote|twitter.megan.reply|twitter.george.tweet|twitter.george.retweet|twitter.george.quote|twitter.george.reply|twitter.maciej.tweet|twitter.maciej.retweet|twitter.maciej.quote|twitter.maciej.reply|twitter.sheldon.tweet|twitter.sheldon.retweet|twitter.sheldon.quote|twitter.sheldon.reply|twitter.narc.tweet|twitter.narc.retweet|twitter.narc.quote|twitter.narc.reply|twitter.helen.tweet|twitter.helen.retweet|twitter.helen.quote|twitter.helen.reply|twitter.tobiah.tweet|twitter.tobiah.retweet|twitter.tobiah.quote|twitter.tobiah.reply|twitter.wfdiscord.tweet|twitter.wfdiscord.retweet|twitter.wfdiscord.quote|twitter.wfdiscord.reply|updates|primeaccess|streams|cetus.day|cetus.night|earth.day|earth.night|syndicate.ostrons|syndicate.assassins|operations|fissures.t1.excavation|fissures.t1.sabotage|fissures.t1.mobiledefense|fissures.t1.assassination|fissures.t1.exterminate|fissures.t1.hive|fissures.t1.defense|fissures.t1.interception|fissures.t1.rathuum|fissures.t1.conclave|fissures.t1.rescue|fissures.t1.spy|fissures.t1.survival|fissures.t1.capture|fissures.t1.darksector|fissures.t1.hijack|fissures.t1.assault|fissures.t1.evacuation|fissures.t2.excavation|fissures.t2.sabotage|fissures.t2.mobiledefense|fissures.t2.assassination|fissures.t2.exterminate|fissures.t2.hive|fissures.t2.defense|fissures.t2.interception|fissures.t2.rathuum|fissures.t2.conclave|fissures.t2.rescue|fissures.t2.spy|fissures.t2.survival|fissures.t2.capture|fissures.t2.darksector|fissures.t2.hijack|fissures.t2.assault|fissures.t2.evacuation|fissures.t3.excavation|fissures.t3.sabotage|fissures.t3.mobiledefense|fissures.t3.assassination|fissures.t3.exterminate|fissures.t3.hive|fissures.t3.defense|fissures.t3.interception|fissures.t3.rathuum|fissures.t3.conclave|fissures.t3.rescue|fissures.t3.spy|fissures.t3.survival|fissures.t3.capture|fissures.t3.darksector|fissures.t3.hijack|fissures.t3.assault|fissures.t3.evacuation|fissures.t4.excavation|fissures.t4.sabotage|fissures.t4.mobiledefense|fissures.t4.assassination|fissures.t4.exterminate|fissures.t4.hive|fissures.t4.defense|fissures.t4.interception|fissures.t4.rathuum|fissures.t4.conclave|fissures.t4.rescue|fissures.t4.spy|fissures.t4.survival|fissures.t4.capture|fissures.t4.darksector|fissures.t4.hijack|fissures.t4.assault|fissures.t4.evacuation|vauban|vandal|wraith|skin|helmet|nitain|mutalist|weapon|fieldron|detonite|mutagen|aura|neuralSensors|orokinCell|alloyPlate|circuits|controlModule|ferrite|gallium|morphics|nanoSpores|oxium|rubedo|salvage|plastids|polymerBundle|argonCrystal|cryotic|tellurium|neurodes|nightmare|endo|reactor|catalyst|forma|synthula|exilus|riven|kavatGene|kubrowEgg|traces|other|credits|all|events|items|syndicates|conclave|clantech|deals|resources|fissures.t1|fissures.t2|fissures.t3|fissures.t4|fissures.excavation|fissures.sabotage|fissures.mobiledefense|fissures.assassination|fissures.exterminate|fissures.hive|fissures.defense|fissures.interception|fissures.rathuum|fissures.conclave|fissures.rescue|fissures.spy|fissures.survival|fissures.capture|fissures.darksector|fissures.hijack|fissures.assault|fissures.evacuation|fissures|cetus|earth|twitter)(.+)?)?"},"path":"Tracking/SetPing.js","usages":[{"description":"Set ping for an event or item","parameters":["event or reward","@role or user mention"]}],"blacklistable":true},{"id":"settings.start","call":"start","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^starts?$"},"path":"Tracking/Start.js","usages":[{"description":"Lols","parameters":[]}],"blacklistable":true},{"id":"settings.stop","call":"stop","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^stop\\s*(?:\\s+in\\s+)?((?:\\<\\#)?\\d+(?:\\>)?|here)?"},"path":"Tracking/Stop.js","usages":[{"description":"Untracks everything in a channel, effectively stopping tracking for the channel","parameters":[]}],"blacklistable":true},{"id":"settings.track","call":"track","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^track(?:\\s+(cetus\\.day\\.[0-1]?[0-9]?[0-9]|cetus\\.night\\.[0-1]?[0-9]?[0-9]|alerts|invasions|news|sorties|baro|darvo|deals.featured|deals.popular|enemies|enemies.departed|conclave.weeklies|conclave.dailies|syndicate.arbiters|syndicate.suda|syndicate.loka|syndicate.perrin|syndicate.veil|syndicate.meridian|twitter.warframe.tweet|twitter.warframe.retweet|twitter.warframe.quote|twitter.warframe.reply|twitter.digitalextremes.tweet|twitter.digitalextremes.quote|twitter.digitalextremes.reply|twitter.pablo.tweet|twitter.pablo.retweet|twitter.pablo.quote|twitter.pablo.reply|twitter.cameron.tweet|twitter.cameron.retweet|twitter.cameron.quote|twitter.cameron.reply|twitter.rebecca.tweet|twitter.rebecca.retweet|twitter.rebecca.quote|twitter.rebecca.reply|twitter.steve.tweet|twitter.steve.retweet|twitter.steve.quote|twitter.steve.reply|twitter.danielle.tweet|twitter.danielle.retweet|twitter.danielle.quote|twitter.danielle.reply|twitter.megan.tweet|twitter.megan.retweet|twitter.megan.quote|twitter.megan.reply|twitter.george.tweet|twitter.george.retweet|twitter.george.quote|twitter.george.reply|twitter.maciej.tweet|twitter.maciej.retweet|twitter.maciej.quote|twitter.maciej.reply|twitter.sheldon.tweet|twitter.sheldon.retweet|twitter.sheldon.quote|twitter.sheldon.reply|twitter.narc.tweet|twitter.narc.retweet|twitter.narc.quote|twitter.narc.reply|twitter.helen.tweet|twitter.helen.retweet|twitter.helen.quote|twitter.helen.reply|twitter.tobiah.tweet|twitter.tobiah.retweet|twitter.tobiah.quote|twitter.tobiah.reply|twitter.wfdiscord.tweet|twitter.wfdiscord.retweet|twitter.wfdiscord.quote|twitter.wfdiscord.reply|updates|primeaccess|streams|cetus.day|cetus.night|earth.day|earth.night|syndicate.ostrons|syndicate.assassins|operations|fissures.t1.excavation|fissures.t1.sabotage|fissures.t1.mobiledefense|fissures.t1.assassination|fissures.t1.exterminate|fissures.t1.hive|fissures.t1.defense|fissures.t1.interception|fissures.t1.rathuum|fissures.t1.conclave|fissures.t1.rescue|fissures.t1.spy|fissures.t1.survival|fissures.t1.capture|fissures.t1.darksector|fissures.t1.hijack|fissures.t1.assault|fissures.t1.evacuation|fissures.t2.excavation|fissures.t2.sabotage|fissures.t2.mobiledefense|fissures.t2.assassination|fissures.t2.exterminate|fissures.t2.hive|fissures.t2.defense|fissures.t2.interception|fissures.t2.rathuum|fissures.t2.conclave|fissures.t2.rescue|fissures.t2.spy|fissures.t2.survival|fissures.t2.capture|fissures.t2.darksector|fissures.t2.hijack|fissures.t2.assault|fissures.t2.evacuation|fissures.t3.excavation|fissures.t3.sabotage|fissures.t3.mobiledefense|fissures.t3.assassination|fissures.t3.exterminate|fissures.t3.hive|fissures.t3.defense|fissures.t3.interception|fissures.t3.rathuum|fissures.t3.conclave|fissures.t3.rescue|fissures.t3.spy|fissures.t3.survival|fissures.t3.capture|fissures.t3.darksector|fissures.t3.hijack|fissures.t3.assault|fissures.t3.evacuation|fissures.t4.excavation|fissures.t4.sabotage|fissures.t4.mobiledefense|fissures.t4.assassination|fissures.t4.exterminate|fissures.t4.hive|fissures.t4.defense|fissures.t4.interception|fissures.t4.rathuum|fissures.t4.conclave|fissures.t4.rescue|fissures.t4.spy|fissures.t4.survival|fissures.t4.capture|fissures.t4.darksector|fissures.t4.hijack|fissures.t4.assault|fissures.t4.evacuation|vauban|vandal|wraith|skin|helmet|nitain|mutalist|weapon|fieldron|detonite|mutagen|aura|neuralSensors|orokinCell|alloyPlate|circuits|controlModule|ferrite|gallium|morphics|nanoSpores|oxium|rubedo|salvage|plastids|polymerBundle|argonCrystal|cryotic|tellurium|neurodes|nightmare|endo|reactor|catalyst|forma|synthula|exilus|riven|kavatGene|kubrowEgg|traces|other|credits|all|events|items|syndicates|conclave|clantech|deals|resources|fissures.t1|fissures.t2|fissures.t3|fissures.t4|fissures.excavation|fissures.sabotage|fissures.mobiledefense|fissures.assassination|fissures.exterminate|fissures.hive|fissures.defense|fissures.interception|fissures.rathuum|fissures.conclave|fissures.rescue|fissures.spy|fissures.survival|fissures.capture|fissures.darksector|fissures.hijack|fissures.assault|fissures.evacuation|fissures|cetus|earth|twitter)*)?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?"},"path":"Tracking/Track.js","usages":[{"description":"Show tracking command for tracking events","parameters":[]},{"description":"Track an event or events","parameters":["event(s) to track"]}],"blacklistable":true},{"id":"settings.untrack","call":"untrack","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^untrack\\s*(cetus\\.day\\.[0-1]?[0-9]?[0-9]?|cetus\\.night\\.[0-1]?[0-9]?[0-9]?|alerts|invasions|news|sorties|baro|darvo|deals.featured|deals.popular|enemies|enemies.departed|conclave.weeklies|conclave.dailies|syndicate.arbiters|syndicate.suda|syndicate.loka|syndicate.perrin|syndicate.veil|syndicate.meridian|twitter.warframe.tweet|twitter.warframe.retweet|twitter.warframe.quote|twitter.warframe.reply|twitter.digitalextremes.tweet|twitter.digitalextremes.quote|twitter.digitalextremes.reply|twitter.pablo.tweet|twitter.pablo.retweet|twitter.pablo.quote|twitter.pablo.reply|twitter.cameron.tweet|twitter.cameron.retweet|twitter.cameron.quote|twitter.cameron.reply|twitter.rebecca.tweet|twitter.rebecca.retweet|twitter.rebecca.quote|twitter.rebecca.reply|twitter.steve.tweet|twitter.steve.retweet|twitter.steve.quote|twitter.steve.reply|twitter.danielle.tweet|twitter.danielle.retweet|twitter.danielle.quote|twitter.danielle.reply|twitter.megan.tweet|twitter.megan.retweet|twitter.megan.quote|twitter.megan.reply|twitter.george.tweet|twitter.george.retweet|twitter.george.quote|twitter.george.reply|twitter.maciej.tweet|twitter.maciej.retweet|twitter.maciej.quote|twitter.maciej.reply|twitter.sheldon.tweet|twitter.sheldon.retweet|twitter.sheldon.quote|twitter.sheldon.reply|twitter.narc.tweet|twitter.narc.retweet|twitter.narc.quote|twitter.narc.reply|twitter.helen.tweet|twitter.helen.retweet|twitter.helen.quote|twitter.helen.reply|twitter.tobiah.tweet|twitter.tobiah.retweet|twitter.tobiah.quote|twitter.tobiah.reply|twitter.wfdiscord.tweet|twitter.wfdiscord.retweet|twitter.wfdiscord.quote|twitter.wfdiscord.reply|updates|primeaccess|streams|cetus.day|cetus.night|earth.day|earth.night|syndicate.ostrons|syndicate.assassins|operations|fissures.t1.excavation|fissures.t1.sabotage|fissures.t1.mobiledefense|fissures.t1.assassination|fissures.t1.exterminate|fissures.t1.hive|fissures.t1.defense|fissures.t1.interception|fissures.t1.rathuum|fissures.t1.conclave|fissures.t1.rescue|fissures.t1.spy|fissures.t1.survival|fissures.t1.capture|fissures.t1.darksector|fissures.t1.hijack|fissures.t1.assault|fissures.t1.evacuation|fissures.t2.excavation|fissures.t2.sabotage|fissures.t2.mobiledefense|fissures.t2.assassination|fissures.t2.exterminate|fissures.t2.hive|fissures.t2.defense|fissures.t2.interception|fissures.t2.rathuum|fissures.t2.conclave|fissures.t2.rescue|fissures.t2.spy|fissures.t2.survival|fissures.t2.capture|fissures.t2.darksector|fissures.t2.hijack|fissures.t2.assault|fissures.t2.evacuation|fissures.t3.excavation|fissures.t3.sabotage|fissures.t3.mobiledefense|fissures.t3.assassination|fissures.t3.exterminate|fissures.t3.hive|fissures.t3.defense|fissures.t3.interception|fissures.t3.rathuum|fissures.t3.conclave|fissures.t3.rescue|fissures.t3.spy|fissures.t3.survival|fissures.t3.capture|fissures.t3.darksector|fissures.t3.hijack|fissures.t3.assault|fissures.t3.evacuation|fissures.t4.excavation|fissures.t4.sabotage|fissures.t4.mobiledefense|fissures.t4.assassination|fissures.t4.exterminate|fissures.t4.hive|fissures.t4.defense|fissures.t4.interception|fissures.t4.rathuum|fissures.t4.conclave|fissures.t4.rescue|fissures.t4.spy|fissures.t4.survival|fissures.t4.capture|fissures.t4.darksector|fissures.t4.hijack|fissures.t4.assault|fissures.t4.evacuation|vauban|vandal|wraith|skin|helmet|nitain|mutalist|weapon|fieldron|detonite|mutagen|aura|neuralSensors|orokinCell|alloyPlate|circuits|controlModule|ferrite|gallium|morphics|nanoSpores|oxium|rubedo|salvage|plastids|polymerBundle|argonCrystal|cryotic|tellurium|neurodes|nightmare|endo|reactor|catalyst|forma|synthula|exilus|riven|kavatGene|kubrowEgg|traces|other|credits|all|events|items|syndicates|conclave|clantech|deals|resources|fissures.t1|fissures.t2|fissures.t3|fissures.t4|fissures.excavation|fissures.sabotage|fissures.mobiledefense|fissures.assassination|fissures.exterminate|fissures.hive|fissures.defense|fissures.interception|fissures.rathuum|fissures.conclave|fissures.rescue|fissures.spy|fissures.survival|fissures.capture|fissures.darksector|fissures.hijack|fissures.assault|fissures.evacuation|fissures|cetus|earth|twitter)*(?:\\s+in\\s+)?((?:\\<\\#)?\\d+(?:\\>)?|here)?"},"path":"Tracking/Untrack.js","usages":[{"description":"Show tracking command for untracking events","parameters":[]},{"description":"Untrack an event or events","parameters":["event(s) to untrack"]}],"blacklistable":true},{"id":"utilities.dump","call":"dump","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^dumps?$"},"path":"Utilities/Dump.js","usages":[{"description":"Dump a channel config to a channel","parameters":["JSON configuration file"]}],"blacklistable":true},{"id":"settings.getcommandids","call":"getcommandids","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^getcommandidss?$"},"path":"Utilities/GetCommandIds.js","usages":[{"description":"Get list of bot command ids available for you to view","parameters":[]}],"blacklistable":true},{"id":"inline.poll","call":"poll:","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":true,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"gi","body":"poll:.+"},"path":"Utilities/PollInline.js","usages":[{"description":"Create a simple poll","parameters":["poll statement"]}],"blacklistable":true},{"id":"inline.roll","call":"roll?","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":true,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"gi","body":"left or right[:\\?]"},"path":"Utilities/RollInline.js","usages":[{"description":"roll between rivens","parameters":["riven link to vote about rolling"]}],"blacklistable":true},{"id":"util.serverInfo","call":"serverinfo","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^serverinfos?$"},"path":"Utilities/ServerInfo.js","usages":[{"description":"Get info about current server","parameters":[]}],"blacklistable":true},{"id":"util.userinfo","call":"userinfo","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"","body":"^userinfo\\s*(?:(?:<@)(\\d+)(?:>))?"},"path":"Utilities/UserInfo.js","usages":[{"description":"Get info about a user","parameters":[]}],"blacklistable":true},{"id":"settings.clearwelcomemessage","call":"clear welcome message","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^clear welcome messages?$"},"path":"Welcoming/ClearWelcome.js","usages":[{"description":"Clears all messages (non-DM) for this guild.","parameters":[]}],"blacklistable":true},{"id":"settings.clearwelcomedm","call":"clear welcome dm","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^clear welcome dms?$"},"path":"Welcoming/ClearWelcomeDM.js","usages":[{"description":"Clears all welcome direct messages for the server.","parameters":[]}],"blacklistable":true},{"id":"settings.setwelcome","call":"set welcome message","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set welcome message\\s?((.+|\\n)+)?$"},"path":"Welcoming/SetWelcome.js","usages":[{"description":"Set welcome message for this server in this channel","parameters":["message"]}],"blacklistable":true},{"id":"settings.setwelcomedm","call":"set welcome dm","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set welcome dm\\s?((.+|\\n)+)?$"},"path":"Welcoming/SetWelcomeDM.js","usages":[{"description":"Set welcome message for this server in this channel to send to a user in DM","parameters":["message"]}],"blacklistable":true},{"id":"warframe.worldstate.alerts","call":"alert","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^alerts?\\s?(?:(compact))?\\s?(?:on\\s+([pcsxb14]{2,3}))?"},"path":"Worldstate/Alerts.js","usages":[{"description":"Display the currently active alerts","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.baro","call":"baro","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^baro(?:\\s+on\\s+([pcsxb14]{2,3}))?"},"path":"Worldstate/Baro.js","usages":[{"description":"Display the current status of the Void Trader","parameters":[]}],"blacklistable":true},{"id":"inline.borko","call":"when borko","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":true,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"gi","body":"(?:where|when|whe|why|which).*(?:borko|baro|bimjo|bonko|bilbo|bermo|barmo|bruno|borso|borneo|bosnia|beerr?ow)"},"path":"Worldstate/BaroInline.js","usages":[{"description":"Display the current status of the Void Trader","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.conclaveChallenges","call":"conclave","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^conclave(?:\\s+(all|day|week))?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/ConclaveChallenges.js","usages":[{"description":"Display conclave challenges for a challenge type.","parameters":["conclave category"]}],"blacklistable":true},{"id":"warframe.worldstate.construction","call":"construction","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^construction(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Construction.js","usages":[{"description":"Display current construction progress.","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.darvo","call":"darvo","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^darvo(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Darvo.js","usages":[{"description":"Displays today's Darvo deal","parameters":[]}],"blacklistable":true},{"id":"warframe.misc.cycle","call":"cycle","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^cycle\\s?(earth)?"},"path":"Worldstate/EarthCycle.js","usages":[{"description":"Display Cetus's current cycle progress","parameters":[]},{"description":"Display Earth's current cycle progress","parameters":["earth"]}],"blacklistable":true},{"id":"warframe.worldstate.acolytes","call":"acolyte","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^acolytes?(?:\\s+on\\s+([pcsxb14]{2,3}))?"},"path":"Worldstate/Enemies.js","usages":[{"description":"Display any currently active acolyte-style enemies.","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.events","call":"events","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^events(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Event.js","usages":[{"description":"Display current events.","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.featureddeal","call":"featureddeal","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^featured\\s?deals?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/FeaturedDeal.js","usages":[{"description":"Displays current featured deals","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.fissures","call":"fissure","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^fissures?(?:\\s?(compact))?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Fissures.js","usages":[{"description":"Get the current list of Void Fissure Missions","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.invasions","call":"invasion","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^invasions?(?:\\s?(compact))?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Invasions.js","usages":[{"description":"Display the currently active Invasions","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.news","call":"news","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^news(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/News.js","usages":[{"description":"Display the currently active news","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.populardeals","call":"populardeal","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^popular\\sdeals?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/PopularSale.js","usages":[{"description":"Displays current featured deals","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.primeaccess","call":"primeaccess","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^prime\\s?access(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/PrimeAccess.js","usages":[{"description":"Display the currently active prime access news","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.simaris","call":"simaris","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"(^simaris(?:\\s+on\\s+([pcsxb14]{2,3}))?$)|(^simaris(?:\\s+target\\s+([\\sa-zA-Z0-9]+))?$)"},"path":"Worldstate/Simaris.js","usages":[{"description":"Display current Sanctuary status.","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.sorties","call":"sortie","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^sorties?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Sorties.js","usages":[{"description":"Display the currently active sorties","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.syndicate","call":"syndicate","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^syndicate\\s?(?:(all|arbiters of hexis|perrin sequence|cephalon suda|steel meridian|new loka|red veil|ostrons|assassins))?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Syndicates.js","usages":[{"description":"Display syndicate nodes for a syndicate.","parameters":["syndicate"]}],"blacklistable":true},{"id":"warframe.worldstate.updates","call":"update","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^updates?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Updates.js","usages":[{"description":"Display the currently active update news","parameters":[]}],"blacklistable":true}] \ No newline at end of file +[{"id":"builds.add","call":"add build","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^(?:add build|ab)\\s?(.+)?"},"path":"Builds/AddBuild.js","usages":[{"description":"Display instructions for creating a new build with Genesis","parameters":[]}],"blacklistable":true},{"id":"builds.delete","call":"delete build","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^(?:delete build|db)\\s?(.+)?"},"path":"Builds/DeleteBuild.js","usages":[{"description":"Display information on an existing build from Genesis","parameters":[]}],"blacklistable":true},{"id":"builds.get","call":"get build","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^(?:get build|gb)\\s?(.+)?"},"path":"Builds/GetBuild.js","usages":[{"description":"Display information on an existing build from Genesis","parameters":[]}],"blacklistable":true},{"id":"builds.list","call":"list builds","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^(?:list builds|lb)\\s?(.+)?"},"path":"Builds/ListBuilds.js","usages":[{"description":"Display information on an existing build from Genesis. `|` separates title, body, and image. `;` separates sections in the body.","parameters":["title | body | image"]}],"blacklistable":true},{"id":"builds.set","call":"set build","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^set build(?:\\s?(all|title|body|image)\\s?(.+))?"},"path":"Builds/SetField.js","usages":[{"description":"Display instructions for creating a new build with Genesis","parameters":[]}],"blacklistable":true},{"id":"core.bug","call":"bug","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^bug\\s*(.*)?"},"path":"Core/Bug.js","usages":[{"description":"Send a bug report to bot owner","parameters":["bug report"]},{"description":"Send a bug report to bot owner with subject, message, and optional screenshot. The `|` are important.","parameters":["subject","body","* screenshot"],"separator":" | "},{"description":"Send a bug report to bot owner with subject, message, and optional screenshot. The `|` are important.","parameters":["subject","body","attached image"],"separator":" | "}],"blacklistable":true},{"id":"core.help","call":"help","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^help(?:\\s(.*)?)?$"},"path":"Core/Help.js","usages":[{"description":"Receive the full welcome data by visiting the provided link.","parameters":[]},{"description":"Query for info about a specific command","parameters":["command search"]}],"blacklistable":true},{"id":"core.info","call":"info","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^infos?$"},"path":"Core/Info.js","usages":[{"description":"Information about the bot","parameters":[]}],"blacklistable":true},{"id":"core.invitation","call":"invitation","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"gi","body":"^invitation$"},"path":"Core/Invite.js","usages":[{"description":"Send Invitation Link to Authorize Bot to Join a Server","parameters":[]}],"blacklistable":true},{"id":"core.ping","call":"ping","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^pings?$"},"path":"Core/Ping.js","usages":[{"description":"Ping Genesis to test connectivity","parameters":[]}],"blacklistable":true},{"id":"core.reset","call":"reset","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^resets?$"},"path":"Core/Reset.js","usages":[{"description":"Reset the settings for this guild","parameters":[]}],"blacklistable":true},{"id":"core.support","call":"support","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^supports?$"},"path":"Core/Support.js","usages":[{"description":"Support info about the bot","parameters":[]}],"blacklistable":true},{"id":"customcommands.add","call":"add cc","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^add cc\\s+(\\w+)?\\s?([\\s\\S]*)"},"path":"CustomCommands/AddCustomCommand.js","usages":[{"description":"Add a custom command","parameters":["command call","comamnd response"]}],"blacklistable":true},{"id":"customcommands.delete","call":"delete cc","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^delete cc\\s+(\\w+)?$"},"path":"CustomCommands/DeleteCustomCommand.js","usages":[{"description":"Delete a custom command","parameters":["command call"]}],"blacklistable":true},{"id":"settings.cc.list","call":"list cc","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^list ccs?$"},"path":"CustomCommands/ListCustomCommand.js","usages":[{"description":"List custom commands for this guild","parameters":[]}],"blacklistable":true},{"id":"settings.cc.ping","call":"ping cc","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^ping cc\\s?(on|off)?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?$"},"path":"CustomCommands/PingCustomCommand.js","usages":[{"description":"Change if this channel's use custom commands will ping","parameters":["custom commands enabled"]}],"blacklistable":true},{"id":"settings.addDefaultRole","call":"add default role","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^add default role\\s?(?:(?:<@&)(\\d+)(?:>))?$"},"path":"DefaultRoles/AddDefaultRole.js","usages":[{"description":"Add a new default role for persons joining the server.","parameters":["role id"]}],"blacklistable":true},{"id":"settings.clearDefaultRoles","call":"clear default roles","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^clear default roless?$"},"path":"DefaultRoles/ClearDefaultRoles.js","usages":[{"description":"Clears all default roles for the server.","parameters":[]}],"blacklistable":true},{"id":"settings.deleteDefaultRole","call":"delete default role","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^delete default role\\s?(\\d+)?$"},"path":"DefaultRoles/DeleteDefaultRole.js","usages":[{"description":"Add a new default role for persons joining the server.","parameters":["message"]}],"blacklistable":true},{"id":"dynamicchannels.add","call":"templates add","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^templates add\\s?(?:(?:<#)?(\\d+)(?:>)?)?(?:\\s+(--relay))?$"},"path":"DynamicChannels/AddTemplateChannel.js","usages":[{"description":"Add a template channel. If `--relay` is specified, it will use relay naming.","parameters":["channel mention","--relay"]}],"blacklistable":true},{"id":"dynamicchannels.delete","call":"templates delete","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^templates delete\\s?(?:(?:<#)?(\\d+)(?:>)?)?$"},"path":"DynamicChannels/DeleteTemplateChannel.js","usages":[{"description":"Remove a template channel","parameters":["channel mention"]}],"blacklistable":true},{"id":"dynamicchannels.list","call":"templates list","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^templates lists?$"},"path":"DynamicChannels/ListTemplateChannels.js","usages":[{"description":"List Template Channels","parameters":[]}],"blacklistable":true},{"id":"inline.warframe.info","call":"[Query]","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":true,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"gi","body":"\\[(.*?)\\]"},"path":"Info/ItemEmbeddedInline.js","usages":[{"description":"Get stats for a Warframe","parameters":["[warframe name]"]}],"blacklistable":true},{"id":"lfg.add","call":"lfg","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^lfg\\s?(.+)?"},"path":"LFG/LFG.js","usages":[{"description":"Submit an LFG request to this guild's LFG channel","parameters":["place","time","for","platform *"],"separator":" | "}],"blacklistable":true},{"id":"settings.lfgChannel","call":"set lfg channel","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set lfg channel\\s?(?:(?:<#)(\\d+)(?:>))?$"},"path":"LFG/SetLFGChannel.js","usages":[{"description":"Set the LFG channel","parameters":["channel id"]}],"blacklistable":true},{"id":"settings.banLog","call":"set ban log","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set ban log\\s?(?:(?:<#)(\\d+)(?:>))?$"},"path":"Logging/BanLog.js","usages":[{"description":"Set the ban log channel","parameters":["channel id"]}],"blacklistable":true},{"id":"settings.memberRemoveLog","call":"set member remove log","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set member remove log\\s?(?:(?:<#)(\\d+)(?:>))?$"},"path":"Logging/MemberRemoveLog.js","usages":[{"description":"Set the member removal log channel","parameters":["channel id"]}],"blacklistable":true},{"id":"settings.msgDeleteLog","call":"set message delete log","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set message delete log\\s?(?:(?:<#)(\\d+)(?:>))?$"},"path":"Logging/SetMessageDeleteLog.js","usages":[{"description":"Set the message dlete log channel","parameters":["channel id"]}],"blacklistable":true},{"id":"settings.setModRole","call":"set mod","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set mod\\s?(?:(?:<@&)(\\d+)(?:>))?$"},"path":"Logging/SetModRole.js","usages":[{"description":"Change the configured mod role","parameters":["mod role id"]}],"blacklistable":true},{"id":"settings.vulgarLog","call":"set vulgar log","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set vulgar log\\s?(?:(?:<#)(\\d+)(?:>))?$"},"path":"Logging/SetVulgarLog.js","usages":[{"description":"Set the vulgarity log channel","parameters":["channel id"]}],"blacklistable":true},{"id":"settings.unbanLog","call":"set unban log","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set unban log\\s?(?:(?:<#)(\\d+)(?:>))?$"},"path":"Logging/UnbanLog.js","usages":[{"description":"Set the unban log channel","parameters":["channel id"]}],"blacklistable":true},{"id":"warframe.misc.arcane","call":"arcane","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^arcane(.+)?"},"path":"Ondemand/Arcane.js","usages":[{"description":"Get information about an Arcane Enhancement","parameters":["enhancement name"]}],"blacklistable":true},{"id":"warframe.misc.armor","call":"armor","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^armor(?:\\s+([\\d+\\.?\\d*\\s]+))?"},"path":"Ondemand/Armor.js","usages":[{"description":"Display instructions for calculating armor","parameters":[]},{"description":"Display current damage resistance and amount of corrosive procs required to strip it.","parameters":["current armor"]},{"description":"Display the current armor, damage resistance, and necessary corrosive procs to strip armor.","parameters":["base armor","base level","current level"]}],"blacklistable":true},{"id":"warframe.misc.buildchart","call":"buildchart","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^buildcharts?$"},"path":"Ondemand/BuildChart.js","usages":[{"description":"Display Weapon Build Flowchart chart","parameters":[]}],"blacklistable":true},{"id":"warframe.misc.damage","call":"damage","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^damages?$"},"path":"Ondemand/Damage.js","usages":[{"description":"Display Damage 2.0 chart","parameters":[]}],"blacklistable":true},{"id":"warframe.misc.efficiency","call":"efficiency","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^efficiencys?$"},"path":"Ondemand/Efficiency.js","usages":[{"description":"Display Warframe Efficiency Chart","parameters":[]}],"blacklistable":true},{"id":"warframe.misc.stats","call":"frame","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^frame\\s?(.+)?"},"path":"Ondemand/FrameStats.js","usages":[{"description":"Get stats for a Warframe","parameters":["warframe name"]}],"blacklistable":true},{"id":"warframe.misc.mod","call":"mod","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^mod(.+)"},"path":"Ondemand/Mod.js","usages":[{"description":"Search the Warframe Wiki for a mod's image","parameters":[]}],"blacklistable":true},{"id":"warframe.misc.pricecheck","call":"pricecheck","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^p(?:rice)?\\s?c(?:heck)?(?:\\s+([\\w+\\s]+))?"},"path":"Ondemand/Pricecheck.js","usages":[{"description":"Display an items worth from nexus-stats.com","parameters":["item"]}],"blacklistable":true},{"id":"warframe.misc.profile","call":"profile","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^profile(?:\\s+(.+))?"},"path":"Ondemand/Profile.js","usages":[{"description":"Search for a player's profile","parameters":["in-game name (PC only)"]}],"blacklistable":true},{"id":"warframe.misc.progress","call":"progress","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^progresss?$"},"path":"Ondemand/Progression.js","usages":[{"description":"Display Warframe Progression Chart","parameters":[]}],"blacklistable":true},{"id":"warframe.stats.raid","call":"raid","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^(?:raids?|trials?)\\s*(.+)?"},"path":"Ondemand/Raid.js","usages":[{"description":"Search for a users's raid stats","parameters":["username"]}],"blacklistable":true},{"id":"warframe.calculations.shields","call":"shields","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^shield(?: +([\\d+\\.?\\d* ]+))?"},"path":"Ondemand/Shields.js","usages":[{"description":"Display an enemy's current shields.","parameters":["base shields","base level","current level"]}],"blacklistable":true},{"id":"warframe.misc.tutorial","call":"tutorial","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^tutorials?\\s?(.+)?"},"path":"Ondemand/Tutorial.js","usages":[{"description":"Get a Warframe Tutorial Video","parameters":["subject"]}],"blacklistable":true},{"id":"warframe.misc.weaponstats","call":"weapon","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^weapon\\s?(.+)?"},"path":"Ondemand/Weapon.js","usages":[{"description":"Get stats for a Warframe","parameters":["weapon name"]}],"blacklistable":true},{"id":"warframe.misc.whatsin","call":"whatsin","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^whatsin(?:\\s+(axi|neo|meso|lith)\\s?(\\w\\d+))?"},"path":"Ondemand/Whatsin.js","usages":[{"description":"Display what drops from a relic","parameters":["relic"]}],"blacklistable":true},{"id":"warframe.misc.whereis","call":"whereis","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^where\\s?(?:is\\s?)?(.+)?"},"path":"Ondemand/WhereIs.js","usages":[{"description":"Display where something drops from","parameters":["item"]}],"blacklistable":true},{"id":"warframe.misc.wiki","call":"wiki","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^wiki\\s*([\\w\\s-]+)?"},"path":"Ondemand/Wiki.js","usages":[{"description":"Search the Warframe wiki for a specific topic","parameters":["topic"]}],"blacklistable":true},{"id":"core.avatar","call":"avatar","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^avatar\\s*(.*)?"},"path":"Owner/Avatar.js","usages":[{"description":"Set the bot's avatar url","parameters":["avatar url"]}],"blacklistable":true},{"id":"core.webhooks.delete","call":"delete webhook in","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^delete webhook in\\s*(.*)?"},"path":"Owner/DeleteWebhook.js","usages":[{"description":"Delete the webhook for a given channel id","parameters":["channel id"]}],"blacklistable":true},{"id":"core.kill","call":"kill","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^kills?$"},"path":"Owner/Kill.js","usages":[{"description":"Kill current shard","parameters":[]}],"blacklistable":true},{"id":"core.leaveserver","call":"leaveserver","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^leaveserver\\s*(.*)?"},"path":"Owner/LeaveServer.js","usages":[{"description":"Tell the bot to leave a server, if it's cached","parameters":["server id"]}],"blacklistable":true},{"id":"core.reload","call":"reload","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^reloads?$"},"path":"Owner/Reload.js","usages":[{"description":"Reload bot modules","parameters":[]}],"blacklistable":true},{"id":"core.restart","call":"restart","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^restarts?$"},"path":"Owner/Restart.js","usages":[{"description":"Restart bot","parameters":[]}],"blacklistable":true},{"id":"core.servers","call":"servers","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^serverss?$"},"path":"Owner/Servers.js","usages":[{"description":"Get list of bot servers in file","parameters":[]}],"blacklistable":true},{"id":"core.username","call":"username","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":true,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^username\\s*(.*)?"},"path":"Owner/Username.js","usages":[{"description":"Set the bot's username","parameters":["username"]}],"blacklistable":true},{"id":"promocode.managers.add","call":"glyphs add manager","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs add manager\\s?(?:--pool\\s?(.*))?([0-9]{0,20})?"},"path":"Promocodes/AddManager.js","usages":[{"description":"Add a manager to a glyph pool","parameters":["--pool *",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"glyphs.addCode","call":"glyphs import","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs import\\s*(?:--pool\\s(.*))?\\s?(pc|ps4|xb1)?(.*)?"},"path":"Promocodes/AddPromocode.js","usages":[{"description":"Add a single code","parameters":["--pool *","",""],"delimBefore":" ","delimAfter":" "},{"description":"Bulk add codes. Export a single code to see the format.","parameters":["--pool *","",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.code.claim","call":"glyphs claim","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs claim\\s?(?:--pool\\s(.*))?\\s?(pc|ps4|xb1)?\\s?(?:--password\\s(.*))?"},"path":"Promocodes/ClaimPromocode.js","usages":[{"description":"Claim a code","parameters":["--pool *","--password (required if pool is secured)",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.pool.clearpassword","call":"glyphs clear password","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs clear password\\s?(?:--pool\\s(.*))?"},"path":"Promocodes/ClearPoolPassword.js","usages":[{"description":"Clear a pool's password","parameters":["--pool *"],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.pools.add","call":"glyphs create pool","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs create pool\\s?(.+)?"},"path":"Promocodes/CreatePool.js","usages":[{"description":"Create a pool from a name","parameters":["new pool name"]}],"blacklistable":true},{"id":"promocode.pools.remove","call":"glyphs del pool","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs del pool\\s?(.*)?"},"path":"Promocodes/DeletePool.js","usages":[{"description":"Remove a glyph pool that you manage","parameters":["--pool *"],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.export","call":"glyphs export","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"","body":"^glyphs export\\s?(.*)"},"path":"Promocodes/Export.js","usages":[{"description":"Export codes from a pool to a `.csv` file","parameters":["--pool *"],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.code.grant","call":"glyphs grant","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs grant\\s?(?:--pool\\s(.*))?\\s?(pc|ps4|xb1)?\\s?(?:<@([0-9]{0,20})>)?"},"path":"Promocodes/GrantPromocode.js","usages":[{"description":"Grant a code to a user from a specific pool","parameters":["--pool *","",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.code.claimed","call":"glyphs list claimed","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^glyphs list claimed"},"path":"Promocodes/ListClaimed.js","usages":[{"description":"List claimed codes.","parameters":[]}],"blacklistable":true},{"id":"promocode.pools.managed","call":"glyphs list managed","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^glyphs list managed"},"path":"Promocodes/ListPools.js","usages":[{"description":"List claimed codes.","parameters":[]}],"blacklistable":true},{"id":"promocode.managers.remove","call":"glyphs del manager","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs del manager\\s?(?:--pool\\s?(.*))?\\s?(?:<@([0-9]{15,20})>)?"},"path":"Promocodes/RemoveManager.js","usages":[{"description":"Remove a manager from a code pool","parameters":["--pool *",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.pool.restrict","call":"glyphs restrict","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs restrict\\s?(on|off)?\\s*(?:--pool\\s?(.*))?"},"path":"Promocodes/RestrictPool.js","usages":[{"description":"Restrict or unrestrict a pool","parameters":["","--pool *"],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.code.revoke","call":"glyphs revoke","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs revoke\\s?(.*)?"},"path":"Promocodes/RevokePromocode.js","usages":[{"description":"Revoke a claimed promocode from a user","parameters":["code to revoke"]}],"blacklistable":true},{"id":"promocode.pool.guild","call":"glyphs set guild","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs set guild\\s?(?:--pool\\s?(.*))?([0-9]{0,20})?"},"path":"Promocodes/SetPoolGuild.js","usages":[{"description":"Set the default guild (server) for a pool","parameters":["--pool *",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.pool.name","call":"glyphs set name","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs set name\\s?(?:--pool\\s?(?:.*))?(.*)?"},"path":"Promocodes/SetPoolName.js","usages":[{"description":"Set a pool's name. This doesn't alter the pool Id.","parameters":["--pool *",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.pool.password","call":"glyphs set password","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs set password\\s?(?:--pool\\s?(?:.*))?\\s?(.*)?"},"path":"Promocodes/SetPoolPassword.js","usages":[{"description":"Set a pool's password.","parameters":["--pool *",""],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"promocode.pool.public","call":"glyphs public","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^glyphs public\\s?(on|off)?\\s*(?:--pool\\s?(.*))?"},"path":"Promocodes/SetPoolPublic.js","usages":[{"description":"Make a pool public or private","parameters":["","--pool *"],"delimBefore":" ","delimAfter":" "}],"blacklistable":true},{"id":"settings.addRole","call":"add role","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^add role\\s?(.*)?\\s?(--create)?\\s?(--mentionable)?"},"path":"Roles/AddRole.js","usages":[{"description":"Show instructions for adding joinable roles","parameters":[]},{"description":"Add a role","parameters":["Role/Role id to add","--create","--mentionable","--leavable (on | off)","--requires @Role Mention"]}],"blacklistable":true},{"id":"settings.joinRole","call":"join","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^join\\s?(.*)?"},"path":"Roles/JoinRole.js","usages":[{"description":"Show instructions for joining roles","parameters":[]},{"description":"Joining a role","parameters":["Role/Role id to join."]}],"blacklistable":true},{"id":"settings.leaveRole","call":"leave","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^leave\\s?(.*)?"},"path":"Roles/LeaveRole.js","usages":[{"description":"Show instructions for leaving roles","parameters":[]},{"description":"Leave a role","parameters":["Role/Role id to leave"]}],"blacklistable":true},{"id":"settings.removeRole","call":"remove role","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^remove role\\s?(.*)?"},"path":"Roles/RemoveRole.js","usages":[{"description":"Show instructions for removing joinable roles","parameters":[]},{"description":"Remove a role","parameters":["Role/Role id to add","--delete"]}],"blacklistable":true},{"id":"settings.roleids","call":"roleids","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^roleidss?$"},"path":"Roles/RoleIds.js","usages":[{"description":"Get list of role ids","parameters":[]}],"blacklistable":true},{"id":"settings.ranks","call":"roles","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^roless?$"},"path":"Roles/Roles.js","usages":[{"description":"Get list of joinable roles","parameters":[]}],"blacklistable":true},{"id":"rooms.create","call":"create","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^create\\s?(room|raid|team|chat)?(\\w|-)?(?:-n(.+))?(--no-text)?(--public)?(--text)?(--hidden)?(--shown)?"},"path":"Rooms/Create.js","usages":[{"description":"Display instructions for creating temporary rooms","parameters":[]},{"description":"Create temporary text and voice channels for the calling user.","parameters":["room | raid | team"]},{"description":"Create temporary text and voice channels for the calling user and any mentioned users/roles.","parameters":["room | raid | team","users and/or role"]},{"description":"Create temporary text and voice channels for the calling user and any mentioned users/roles, with a custom name","parameters":["room | raid | team","users and/or role","-n name","--no-text","--public","--text","--locked"]}],"blacklistable":true},{"id":"rooms.destry","call":"destroy room","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^destroy room$"},"path":"Rooms/Destroy.js","usages":[],"blacklistable":true},{"id":"rooms.hide","call":"hide","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^hide$"},"path":"Rooms/Hide.js","usages":[],"blacklistable":true},{"id":"rooms.invite","call":"invite","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^invite"},"path":"Rooms/Invite.js","usages":[],"blacklistable":true},{"id":"rooms.lock","call":"lock","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^lock$"},"path":"Rooms/Lock.js","usages":[],"blacklistable":true},{"id":"rooms.rename","call":"rename room ","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^rename room \\s?(.+)?"},"path":"Rooms/Rename.js","usages":[],"blacklistable":true},{"id":"rooms.resize","call":"resize room","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^resize room\\s?(\\d+)"},"path":"Rooms/ResizeRoom.js","usages":[],"blacklistable":true},{"id":"settings.allowprivateroom","call":"allow private room","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^allow private room\\s?(on|off)?$"},"path":"Rooms/RoomCreation.js","usages":[{"description":"Change if the bot is allowed to create private channels","parameters":["private rooms enabled"]}],"blacklistable":true},{"id":"settings.defaultNoText","call":"set rooms notext","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set rooms notext\\s?(on|off)?$"},"path":"Rooms/RoomDefaultNoText.js","usages":[{"description":"Change if the bot should create unlocked channels by default (defaults to off)","parameters":["private notext defaulted"]}],"blacklistable":true},{"id":"settings.defaultroomsunlocked","call":"set rooms unlocked","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set rooms unlocked\\s?(on|off)?$"},"path":"Rooms/RoomPublicDefault.js","usages":[{"description":"Change if the bot should create unlocked channels by default (defaults to off)","parameters":["private rooms defaulted"]}],"blacklistable":true},{"id":"settings.defaultroomsshown","call":"set rooms shown","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set rooms shown\\s?(on|off)?$"},"path":"Rooms/RoomShownDefault.js","usages":[{"description":"Change if the bot should create shown channels by default (defaults to off)","parameters":["shown rooms defaulted"]}],"blacklistable":true},{"id":"settings.defaultcategory","call":"set rooms category","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set rooms category\\s?(\\d+)?$"},"path":"Rooms/SetDefaultCategory.js","usages":[{"description":"Change the bot's default category for temp rooms. Defaults to none.","parameters":["temp room default"]}],"blacklistable":true},{"id":"rooms.show","call":"show","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^show$"},"path":"Rooms/Show.js","usages":[],"blacklistable":true},{"id":"rooms.unlock","call":"unlock","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":false,"regex":{"flags":"i","body":"^unlock$"},"path":"Rooms/Unlock.js","usages":[],"blacklistable":true},{"id":"settings.allowCustom","call":"allow custom commands","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^allow\\s?custom(?:\\s?commands)?\\s?(on|off)?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?$"},"path":"Settings/AllowCustomCommands.js","usages":[{"description":"Change if this channel can use custom commands","parameters":["custom commands enabled"]}],"blacklistable":true},{"id":"settings.allowinline","call":"allow inline commands","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^allow\\s?inline(?:\\s?commands)?\\s?(on|off)?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?$"},"path":"Settings/AllowInlineCommands.js","usages":[{"description":"Change if this channel can use inline commands","parameters":["inline commands enabled"]}],"blacklistable":true},{"id":"settings.clearChannelPerms","call":"clear permissions","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^clear permissions(?:\\s*((?:(?:<#)?\\d+(?:>)?)|current|all|guild))?$"},"path":"Settings/ClearChannelPermissions.js","usages":[{"description":"Clear channel permisions for this or specified room, or guild","parameters":[]}],"blacklistable":true},{"id":"settings.clearpings","call":"clear pings","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^clear pingss?$"},"path":"Settings/ClearPings.js","usages":[{"description":"Clears all pings for the server","parameters":[]}],"blacklistable":true},{"id":"settings.deleteafterrespond","call":"delete after respond","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^delete\\s?after\\s?respond\\s?(all|command|respond|none)?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?$"},"path":"Settings/DeleteAfterRespond.js","usages":[{"description":"Change if the bot to delete commands and/or responses after responding in this channel","parameters":["deleting enabled"]}],"blacklistable":true},{"id":"settings.deleteexpired","call":"delete expired","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^delete\\s?expired\\s?(on|off)?$"},"path":"Settings/DeleteExpired.js","usages":[{"description":"Change if the bot to deletes expired notifications","parameters":["deleting enabled"]}],"blacklistable":true},{"id":"settings.disable","call":"disable","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^disable"},"path":"Settings/Disable.js","usages":[{"description":"Disable a command for a role in a channel or channels","parameters":["command id> in for "},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^enable(?:\\s+(\\w*\\.*\\w*\\.*\\w*\\*?)(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here|\\*))?(?:\\s+for\\s((?:\\<\\@\\&?)?\\d+(?:\\>)?|\\*))?)?"},"path":"Settings/Enable.js","usages":[{"description":"Enable a command for a role in a channel or channels","parameters":["command id> in for "},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^language\\s?(en-us)?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?$"},"path":"Settings/Language.js","usages":[{"description":"Change this channel's language","parameters":["language"]}],"blacklistable":true},{"id":"settings.platform","call":"platform","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"platform(?:\\s+([pcsxb14]{2,3}))?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?$"},"path":"Settings/Platform.js","usages":[{"description":"Change this channel's platform","parameters":["platform"]}],"blacklistable":true},{"id":"settings.prefix","call":"prefix","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^prefix(?:\\s+(.+))?"},"path":"Settings/Prefix.js","usages":[{"description":"Change this channel's platform","parameters":["prefix (up to 3 characters)"]}],"blacklistable":true},{"id":"settings.respondSettings","call":"respond to settings","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^respond(?:\\sto)?\\s?settings\\s?(on|off)?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?$"},"path":"Settings/RespondToSettings.js","usages":[{"description":"Change if this channel has settings changes responded in it","parameters":["response enabled"]}],"blacklistable":true},{"id":"settings.settings","call":"settings","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^settings(?:\\s*--expand)?(?:\\s+in\\s+((?:(?:<#)?\\d+(?:>)?)|current|all))?$"},"path":"Settings/Settings.js","usages":[{"description":"Get settings","parameters":[]}],"blacklistable":true},{"id":"silly.corgi","call":"corgi","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^corgis?$"},"path":"Silly/Corgi.js","usages":[{"description":"Genesis gets you a corgi","parameters":[]}],"blacklistable":true},{"id":"silly.echo","call":"echo","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^echo\\s?(.+)?"},"path":"Silly/Echo.js","usages":[{"description":"Genesis echos your message","parameters":[]}],"blacklistable":true},{"id":"silly.hug","call":"hug","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^hugs?$"},"path":"Silly/Hug.js","usages":[{"description":"Hug Genesis","parameters":[]}],"blacklistable":true},{"id":"silly.joke","call":"joke","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^jokes?$"},"path":"Silly/Joke.js","usages":[{"description":"Genesis tells a joke","parameters":[]}],"blacklistable":true},{"id":"silly.promocode","call":"promocodes","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^promocodess?$"},"path":"Silly/PromoCodes.js","usages":[{"description":"Get promocodes","parameters":[]}],"blacklistable":true},{"id":"settings.setping","call":"set ping","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set ping\\s*((alerts|invasions|news|sorties|baro|darvo|deals.featured|deals.popular|enemies|enemies.departed|conclave.weeklies|conclave.dailies|syndicate.arbiters|syndicate.suda|syndicate.loka|syndicate.perrin|syndicate.veil|syndicate.meridian|twitter.warframe.tweet|twitter.warframe.retweet|twitter.warframe.quote|twitter.warframe.reply|twitter.digitalextremes.tweet|twitter.digitalextremes.quote|twitter.digitalextremes.reply|twitter.pablo.tweet|twitter.pablo.retweet|twitter.pablo.quote|twitter.pablo.reply|twitter.cameron.tweet|twitter.cameron.retweet|twitter.cameron.quote|twitter.cameron.reply|twitter.rebecca.tweet|twitter.rebecca.retweet|twitter.rebecca.quote|twitter.rebecca.reply|twitter.steve.tweet|twitter.steve.retweet|twitter.steve.quote|twitter.steve.reply|twitter.danielle.tweet|twitter.danielle.retweet|twitter.danielle.quote|twitter.danielle.reply|twitter.megan.tweet|twitter.megan.retweet|twitter.megan.quote|twitter.megan.reply|twitter.george.tweet|twitter.george.retweet|twitter.george.quote|twitter.george.reply|twitter.maciej.tweet|twitter.maciej.retweet|twitter.maciej.quote|twitter.maciej.reply|twitter.sheldon.tweet|twitter.sheldon.retweet|twitter.sheldon.quote|twitter.sheldon.reply|twitter.narc.tweet|twitter.narc.retweet|twitter.narc.quote|twitter.narc.reply|twitter.helen.tweet|twitter.helen.retweet|twitter.helen.quote|twitter.helen.reply|twitter.tobiah.tweet|twitter.tobiah.retweet|twitter.tobiah.quote|twitter.tobiah.reply|twitter.wfdiscord.tweet|twitter.wfdiscord.retweet|twitter.wfdiscord.quote|twitter.wfdiscord.reply|updates|primeaccess|streams|cetus.day|cetus.night|earth.day|earth.night|syndicate.ostrons|syndicate.assassins|operations|fissures.t1.excavation|fissures.t1.sabotage|fissures.t1.mobiledefense|fissures.t1.assassination|fissures.t1.exterminate|fissures.t1.hive|fissures.t1.defense|fissures.t1.interception|fissures.t1.rathuum|fissures.t1.conclave|fissures.t1.rescue|fissures.t1.spy|fissures.t1.survival|fissures.t1.capture|fissures.t1.darksector|fissures.t1.hijack|fissures.t1.assault|fissures.t1.evacuation|fissures.t2.excavation|fissures.t2.sabotage|fissures.t2.mobiledefense|fissures.t2.assassination|fissures.t2.exterminate|fissures.t2.hive|fissures.t2.defense|fissures.t2.interception|fissures.t2.rathuum|fissures.t2.conclave|fissures.t2.rescue|fissures.t2.spy|fissures.t2.survival|fissures.t2.capture|fissures.t2.darksector|fissures.t2.hijack|fissures.t2.assault|fissures.t2.evacuation|fissures.t3.excavation|fissures.t3.sabotage|fissures.t3.mobiledefense|fissures.t3.assassination|fissures.t3.exterminate|fissures.t3.hive|fissures.t3.defense|fissures.t3.interception|fissures.t3.rathuum|fissures.t3.conclave|fissures.t3.rescue|fissures.t3.spy|fissures.t3.survival|fissures.t3.capture|fissures.t3.darksector|fissures.t3.hijack|fissures.t3.assault|fissures.t3.evacuation|fissures.t4.excavation|fissures.t4.sabotage|fissures.t4.mobiledefense|fissures.t4.assassination|fissures.t4.exterminate|fissures.t4.hive|fissures.t4.defense|fissures.t4.interception|fissures.t4.rathuum|fissures.t4.conclave|fissures.t4.rescue|fissures.t4.spy|fissures.t4.survival|fissures.t4.capture|fissures.t4.darksector|fissures.t4.hijack|fissures.t4.assault|fissures.t4.evacuation|vauban|vandal|wraith|skin|helmet|nitain|mutalist|weapon|fieldron|detonite|mutagen|aura|neuralSensors|orokinCell|alloyPlate|circuits|controlModule|ferrite|gallium|morphics|nanoSpores|oxium|rubedo|salvage|plastids|polymerBundle|argonCrystal|cryotic|tellurium|neurodes|nightmare|endo|reactor|catalyst|forma|synthula|exilus|riven|kavatGene|kubrowEgg|traces|other|credits|all|events|items|syndicates|conclave|clantech|deals|resources|fissures.t1|fissures.t2|fissures.t3|fissures.t4|fissures.excavation|fissures.sabotage|fissures.mobiledefense|fissures.assassination|fissures.exterminate|fissures.hive|fissures.defense|fissures.interception|fissures.rathuum|fissures.conclave|fissures.rescue|fissures.spy|fissures.survival|fissures.capture|fissures.darksector|fissures.hijack|fissures.assault|fissures.evacuation|fissures|cetus|earth|twitter.tweet|twitter.retweet|twitter.quote|twitter.reply|twitter)(.+)?)?"},"path":"Tracking/SetPing.js","usages":[{"description":"Set ping for an event or item","parameters":["event or reward","@role or user mention"]}],"blacklistable":true},{"id":"settings.start","call":"start","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^starts?$"},"path":"Tracking/Start.js","usages":[{"description":"Lols","parameters":[]}],"blacklistable":true},{"id":"settings.stop","call":"stop","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^stop\\s*(?:\\s+in\\s+)?((?:\\<\\#)?\\d+(?:\\>)?|here)?"},"path":"Tracking/Stop.js","usages":[{"description":"Untracks everything in a channel, effectively stopping tracking for the channel","parameters":[]}],"blacklistable":true},{"id":"settings.track","call":"track","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^track(?:\\s+(cetus\\.day\\.[0-1]?[0-9]?[0-9]|cetus\\.night\\.[0-1]?[0-9]?[0-9]|alerts|invasions|news|sorties|baro|darvo|deals.featured|deals.popular|enemies|enemies.departed|conclave.weeklies|conclave.dailies|syndicate.arbiters|syndicate.suda|syndicate.loka|syndicate.perrin|syndicate.veil|syndicate.meridian|twitter.warframe.tweet|twitter.warframe.retweet|twitter.warframe.quote|twitter.warframe.reply|twitter.digitalextremes.tweet|twitter.digitalextremes.quote|twitter.digitalextremes.reply|twitter.pablo.tweet|twitter.pablo.retweet|twitter.pablo.quote|twitter.pablo.reply|twitter.cameron.tweet|twitter.cameron.retweet|twitter.cameron.quote|twitter.cameron.reply|twitter.rebecca.tweet|twitter.rebecca.retweet|twitter.rebecca.quote|twitter.rebecca.reply|twitter.steve.tweet|twitter.steve.retweet|twitter.steve.quote|twitter.steve.reply|twitter.danielle.tweet|twitter.danielle.retweet|twitter.danielle.quote|twitter.danielle.reply|twitter.megan.tweet|twitter.megan.retweet|twitter.megan.quote|twitter.megan.reply|twitter.george.tweet|twitter.george.retweet|twitter.george.quote|twitter.george.reply|twitter.maciej.tweet|twitter.maciej.retweet|twitter.maciej.quote|twitter.maciej.reply|twitter.sheldon.tweet|twitter.sheldon.retweet|twitter.sheldon.quote|twitter.sheldon.reply|twitter.narc.tweet|twitter.narc.retweet|twitter.narc.quote|twitter.narc.reply|twitter.helen.tweet|twitter.helen.retweet|twitter.helen.quote|twitter.helen.reply|twitter.tobiah.tweet|twitter.tobiah.retweet|twitter.tobiah.quote|twitter.tobiah.reply|twitter.wfdiscord.tweet|twitter.wfdiscord.retweet|twitter.wfdiscord.quote|twitter.wfdiscord.reply|updates|primeaccess|streams|cetus.day|cetus.night|earth.day|earth.night|syndicate.ostrons|syndicate.assassins|operations|fissures.t1.excavation|fissures.t1.sabotage|fissures.t1.mobiledefense|fissures.t1.assassination|fissures.t1.exterminate|fissures.t1.hive|fissures.t1.defense|fissures.t1.interception|fissures.t1.rathuum|fissures.t1.conclave|fissures.t1.rescue|fissures.t1.spy|fissures.t1.survival|fissures.t1.capture|fissures.t1.darksector|fissures.t1.hijack|fissures.t1.assault|fissures.t1.evacuation|fissures.t2.excavation|fissures.t2.sabotage|fissures.t2.mobiledefense|fissures.t2.assassination|fissures.t2.exterminate|fissures.t2.hive|fissures.t2.defense|fissures.t2.interception|fissures.t2.rathuum|fissures.t2.conclave|fissures.t2.rescue|fissures.t2.spy|fissures.t2.survival|fissures.t2.capture|fissures.t2.darksector|fissures.t2.hijack|fissures.t2.assault|fissures.t2.evacuation|fissures.t3.excavation|fissures.t3.sabotage|fissures.t3.mobiledefense|fissures.t3.assassination|fissures.t3.exterminate|fissures.t3.hive|fissures.t3.defense|fissures.t3.interception|fissures.t3.rathuum|fissures.t3.conclave|fissures.t3.rescue|fissures.t3.spy|fissures.t3.survival|fissures.t3.capture|fissures.t3.darksector|fissures.t3.hijack|fissures.t3.assault|fissures.t3.evacuation|fissures.t4.excavation|fissures.t4.sabotage|fissures.t4.mobiledefense|fissures.t4.assassination|fissures.t4.exterminate|fissures.t4.hive|fissures.t4.defense|fissures.t4.interception|fissures.t4.rathuum|fissures.t4.conclave|fissures.t4.rescue|fissures.t4.spy|fissures.t4.survival|fissures.t4.capture|fissures.t4.darksector|fissures.t4.hijack|fissures.t4.assault|fissures.t4.evacuation|vauban|vandal|wraith|skin|helmet|nitain|mutalist|weapon|fieldron|detonite|mutagen|aura|neuralSensors|orokinCell|alloyPlate|circuits|controlModule|ferrite|gallium|morphics|nanoSpores|oxium|rubedo|salvage|plastids|polymerBundle|argonCrystal|cryotic|tellurium|neurodes|nightmare|endo|reactor|catalyst|forma|synthula|exilus|riven|kavatGene|kubrowEgg|traces|other|credits|all|events|items|syndicates|conclave|clantech|deals|resources|fissures.t1|fissures.t2|fissures.t3|fissures.t4|fissures.excavation|fissures.sabotage|fissures.mobiledefense|fissures.assassination|fissures.exterminate|fissures.hive|fissures.defense|fissures.interception|fissures.rathuum|fissures.conclave|fissures.rescue|fissures.spy|fissures.survival|fissures.capture|fissures.darksector|fissures.hijack|fissures.assault|fissures.evacuation|fissures|cetus|earth|twitter.tweet|twitter.retweet|twitter.quote|twitter.reply|twitter)*)?(?:\\s+in\\s+((?:\\<\\#)?\\d+(?:\\>)?|here))?"},"path":"Tracking/Track.js","usages":[{"description":"Show tracking command for tracking events","parameters":[]},{"description":"Track an event or events","parameters":["event(s) to track"]}],"blacklistable":true},{"id":"settings.untrack","call":"untrack","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^untrack\\s*(cetus\\.day\\.[0-1]?[0-9]?[0-9]?|cetus\\.night\\.[0-1]?[0-9]?[0-9]?|alerts|invasions|news|sorties|baro|darvo|deals.featured|deals.popular|enemies|enemies.departed|conclave.weeklies|conclave.dailies|syndicate.arbiters|syndicate.suda|syndicate.loka|syndicate.perrin|syndicate.veil|syndicate.meridian|twitter.warframe.tweet|twitter.warframe.retweet|twitter.warframe.quote|twitter.warframe.reply|twitter.digitalextremes.tweet|twitter.digitalextremes.quote|twitter.digitalextremes.reply|twitter.pablo.tweet|twitter.pablo.retweet|twitter.pablo.quote|twitter.pablo.reply|twitter.cameron.tweet|twitter.cameron.retweet|twitter.cameron.quote|twitter.cameron.reply|twitter.rebecca.tweet|twitter.rebecca.retweet|twitter.rebecca.quote|twitter.rebecca.reply|twitter.steve.tweet|twitter.steve.retweet|twitter.steve.quote|twitter.steve.reply|twitter.danielle.tweet|twitter.danielle.retweet|twitter.danielle.quote|twitter.danielle.reply|twitter.megan.tweet|twitter.megan.retweet|twitter.megan.quote|twitter.megan.reply|twitter.george.tweet|twitter.george.retweet|twitter.george.quote|twitter.george.reply|twitter.maciej.tweet|twitter.maciej.retweet|twitter.maciej.quote|twitter.maciej.reply|twitter.sheldon.tweet|twitter.sheldon.retweet|twitter.sheldon.quote|twitter.sheldon.reply|twitter.narc.tweet|twitter.narc.retweet|twitter.narc.quote|twitter.narc.reply|twitter.helen.tweet|twitter.helen.retweet|twitter.helen.quote|twitter.helen.reply|twitter.tobiah.tweet|twitter.tobiah.retweet|twitter.tobiah.quote|twitter.tobiah.reply|twitter.wfdiscord.tweet|twitter.wfdiscord.retweet|twitter.wfdiscord.quote|twitter.wfdiscord.reply|updates|primeaccess|streams|cetus.day|cetus.night|earth.day|earth.night|syndicate.ostrons|syndicate.assassins|operations|fissures.t1.excavation|fissures.t1.sabotage|fissures.t1.mobiledefense|fissures.t1.assassination|fissures.t1.exterminate|fissures.t1.hive|fissures.t1.defense|fissures.t1.interception|fissures.t1.rathuum|fissures.t1.conclave|fissures.t1.rescue|fissures.t1.spy|fissures.t1.survival|fissures.t1.capture|fissures.t1.darksector|fissures.t1.hijack|fissures.t1.assault|fissures.t1.evacuation|fissures.t2.excavation|fissures.t2.sabotage|fissures.t2.mobiledefense|fissures.t2.assassination|fissures.t2.exterminate|fissures.t2.hive|fissures.t2.defense|fissures.t2.interception|fissures.t2.rathuum|fissures.t2.conclave|fissures.t2.rescue|fissures.t2.spy|fissures.t2.survival|fissures.t2.capture|fissures.t2.darksector|fissures.t2.hijack|fissures.t2.assault|fissures.t2.evacuation|fissures.t3.excavation|fissures.t3.sabotage|fissures.t3.mobiledefense|fissures.t3.assassination|fissures.t3.exterminate|fissures.t3.hive|fissures.t3.defense|fissures.t3.interception|fissures.t3.rathuum|fissures.t3.conclave|fissures.t3.rescue|fissures.t3.spy|fissures.t3.survival|fissures.t3.capture|fissures.t3.darksector|fissures.t3.hijack|fissures.t3.assault|fissures.t3.evacuation|fissures.t4.excavation|fissures.t4.sabotage|fissures.t4.mobiledefense|fissures.t4.assassination|fissures.t4.exterminate|fissures.t4.hive|fissures.t4.defense|fissures.t4.interception|fissures.t4.rathuum|fissures.t4.conclave|fissures.t4.rescue|fissures.t4.spy|fissures.t4.survival|fissures.t4.capture|fissures.t4.darksector|fissures.t4.hijack|fissures.t4.assault|fissures.t4.evacuation|vauban|vandal|wraith|skin|helmet|nitain|mutalist|weapon|fieldron|detonite|mutagen|aura|neuralSensors|orokinCell|alloyPlate|circuits|controlModule|ferrite|gallium|morphics|nanoSpores|oxium|rubedo|salvage|plastids|polymerBundle|argonCrystal|cryotic|tellurium|neurodes|nightmare|endo|reactor|catalyst|forma|synthula|exilus|riven|kavatGene|kubrowEgg|traces|other|credits|all|events|items|syndicates|conclave|clantech|deals|resources|fissures.t1|fissures.t2|fissures.t3|fissures.t4|fissures.excavation|fissures.sabotage|fissures.mobiledefense|fissures.assassination|fissures.exterminate|fissures.hive|fissures.defense|fissures.interception|fissures.rathuum|fissures.conclave|fissures.rescue|fissures.spy|fissures.survival|fissures.capture|fissures.darksector|fissures.hijack|fissures.assault|fissures.evacuation|fissures|cetus|earth|twitter.tweet|twitter.retweet|twitter.quote|twitter.reply|twitter)*(?:\\s+in\\s+)?((?:\\<\\#)?\\d+(?:\\>)?|here)?"},"path":"Tracking/Untrack.js","usages":[{"description":"Show tracking command for untracking events","parameters":[]},{"description":"Untrack an event or events","parameters":["event(s) to untrack"]}],"blacklistable":true},{"id":"utilities.dump","call":"dump","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^dumps?$"},"path":"Utilities/Dump.js","usages":[{"description":"Dump a channel config to a channel","parameters":["JSON configuration file"]}],"blacklistable":true},{"id":"settings.getcommandids","call":"getcommandids","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":true,"regex":{"flags":"i","body":"^getcommandidss?$"},"path":"Utilities/GetCommandIds.js","usages":[{"description":"Get list of bot command ids available for you to view","parameters":[]}],"blacklistable":true},{"id":"inline.poll","call":"poll:","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":true,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"gi","body":"poll:.+"},"path":"Utilities/PollInline.js","usages":[{"description":"Create a simple poll","parameters":["poll statement"]}],"blacklistable":true},{"id":"inline.roll","call":"roll?","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":true,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"gi","body":"left or right[:\\?]"},"path":"Utilities/RollInline.js","usages":[{"description":"roll between rivens","parameters":["riven link to vote about rolling"]}],"blacklistable":true},{"id":"util.serverInfo","call":"serverinfo","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^serverinfos?$"},"path":"Utilities/ServerInfo.js","usages":[{"description":"Get info about current server","parameters":[]}],"blacklistable":true},{"id":"util.userinfo","call":"userinfo","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"","body":"^userinfo\\s*(?:(?:<@)(\\d+)(?:>))?"},"path":"Utilities/UserInfo.js","usages":[{"description":"Get info about a user","parameters":[]}],"blacklistable":true},{"id":"settings.clearwelcomemessage","call":"clear welcome message","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^clear welcome messages?$"},"path":"Welcoming/ClearWelcome.js","usages":[{"description":"Clears all messages (non-DM) for this guild.","parameters":[]}],"blacklistable":true},{"id":"settings.clearwelcomedm","call":"clear welcome dm","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^clear welcome dms?$"},"path":"Welcoming/ClearWelcomeDM.js","usages":[{"description":"Clears all welcome direct messages for the server.","parameters":[]}],"blacklistable":true},{"id":"settings.setwelcome","call":"set welcome message","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set welcome message\\s?((.+|\\n)+)?$"},"path":"Welcoming/SetWelcome.js","usages":[{"description":"Set welcome message for this server in this channel","parameters":["message"]}],"blacklistable":true},{"id":"settings.setwelcomedm","call":"set welcome dm","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":false,"requiresAuth":true,"regex":{"flags":"i","body":"^set welcome dm\\s?((.+|\\n)+)?$"},"path":"Welcoming/SetWelcomeDM.js","usages":[{"description":"Set welcome message for this server in this channel to send to a user in DM","parameters":["message"]}],"blacklistable":true},{"id":"warframe.worldstate.alerts","call":"alert","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^alerts?\\s?(?:(compact))?\\s?(?:on\\s+([pcsxb14]{2,3}))?"},"path":"Worldstate/Alerts.js","usages":[{"description":"Display the currently active alerts","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.baro","call":"baro","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^baro(?:\\s+on\\s+([pcsxb14]{2,3}))?"},"path":"Worldstate/Baro.js","usages":[{"description":"Display the current status of the Void Trader","parameters":[]}],"blacklistable":true},{"id":"inline.borko","call":"when borko","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":true,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"gi","body":"(?:where|when|whe|why|which).*(?:borko|baro|bimjo|bonko|bilbo|bermo|barmo|bruno|borso|borneo|bosnia|beerr?ow)"},"path":"Worldstate/BaroInline.js","usages":[{"description":"Display the current status of the Void Trader","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.conclaveChallenges","call":"conclave","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^conclave(?:\\s+(all|day|week))?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/ConclaveChallenges.js","usages":[{"description":"Display conclave challenges for a challenge type.","parameters":["conclave category"]}],"blacklistable":true},{"id":"warframe.worldstate.construction","call":"construction","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^construction(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Construction.js","usages":[{"description":"Display current construction progress.","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.darvo","call":"darvo","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^darvo(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Darvo.js","usages":[{"description":"Displays today's Darvo deal","parameters":[]}],"blacklistable":true},{"id":"warframe.misc.cycle","call":"cycle","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^cycle\\s?(earth)?"},"path":"Worldstate/EarthCycle.js","usages":[{"description":"Display Cetus's current cycle progress","parameters":[]},{"description":"Display Earth's current cycle progress","parameters":["earth"]}],"blacklistable":true},{"id":"warframe.worldstate.acolytes","call":"acolyte","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^acolytes?(?:\\s+on\\s+([pcsxb14]{2,3}))?"},"path":"Worldstate/Enemies.js","usages":[{"description":"Display any currently active acolyte-style enemies.","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.events","call":"events","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^events(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Event.js","usages":[{"description":"Display current events.","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.featureddeal","call":"featureddeal","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^featured\\s?deals?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/FeaturedDeal.js","usages":[{"description":"Displays current featured deals","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.fissures","call":"fissure","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^fissures?(?:\\s?(compact))?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Fissures.js","usages":[{"description":"Get the current list of Void Fissure Missions","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.invasions","call":"invasion","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^invasions?(?:\\s?(compact))?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Invasions.js","usages":[{"description":"Display the currently active Invasions","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.news","call":"news","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^news(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/News.js","usages":[{"description":"Display the currently active news","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.populardeals","call":"populardeal","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^popular\\sdeals?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/PopularSale.js","usages":[{"description":"Displays current featured deals","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.primeaccess","call":"primeaccess","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^prime\\s?access(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/PrimeAccess.js","usages":[{"description":"Display the currently active prime access news","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.simaris","call":"simaris","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"(^simaris(?:\\s+on\\s+([pcsxb14]{2,3}))?$)|(^simaris(?:\\s+target\\s+([\\sa-zA-Z0-9]+))?$)"},"path":"Worldstate/Simaris.js","usages":[{"description":"Display current Sanctuary status.","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.sorties","call":"sortie","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^sorties?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Sorties.js","usages":[{"description":"Display the currently active sorties","parameters":[]}],"blacklistable":true},{"id":"warframe.worldstate.syndicate","call":"syndicate","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^syndicate\\s?(?:(all|arbiters of hexis|perrin sequence|cephalon suda|steel meridian|new loka|red veil|ostrons|assassins))?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Syndicates.js","usages":[{"description":"Display syndicate nodes for a syndicate.","parameters":["syndicate"]}],"blacklistable":true},{"id":"warframe.worldstate.updates","call":"update","delimiters":{"begin":"<","end":">"},"isCustomCommand":false,"isInline":false,"ownerOnly":false,"allowDM":true,"requiresAuth":false,"regex":{"flags":"i","body":"^updates?(?:\\s+on\\s+([pcsxb14]{2,3}))?$"},"path":"Worldstate/Updates.js","usages":[{"description":"Display the currently active update news","parameters":[]}],"blacklistable":true}] \ No newline at end of file diff --git a/src/CommonFunctions.js b/src/CommonFunctions.js index 7de803e36..ae17cb1e1 100644 --- a/src/CommonFunctions.js +++ b/src/CommonFunctions.js @@ -53,6 +53,10 @@ const trackableEvents = { deals, cetus: ['cetus.day', 'cetus.night'], earth: ['earth.day', 'earth.night'], + 'twitter.reply': eventTypes.filter(event => /twitter\.\w*\.reply/.test(event)), + 'twitter.tweet': eventTypes.filter(event => /twitter\.\w*\.tweet/.test(event)), + 'twitter.retweet': eventTypes.filter(event => /twitter\.\w*\.retweet/.test(event)), + 'twitter.quote': eventTypes.filter(event => /twitter\.\w*\.quote/.test(event)), twitter, }; diff --git a/src/notifications/Notifier.js b/src/notifications/Notifier.js index b4a28bab6..4a0b0be6d 100644 --- a/src/notifications/Notifier.js +++ b/src/notifications/Notifier.js @@ -267,7 +267,7 @@ class Notifier { } async sendTweets(newTweets, platform) { - await Promise.all(newTweets.map(t => this.broadcaster.broadcast(new TweetEmbed(this.bot, t.tweets[0]), platform, `${t.id}`, null, 3600))); + await Promise.all(newTweets.map(t => this.broadcaster.broadcast(new TweetEmbed(this.bot, t.tweets[0]), platform, t.id, null, 3600))); } async sendInvasion(invasion, platform) { diff --git a/src/resources/trackables.json b/src/resources/trackables.json index 4a2dd564e..41c2b64da 100644 --- a/src/resources/trackables.json +++ b/src/resources/trackables.json @@ -69,7 +69,7 @@ "twitter.warframe.reply", "twitter.digitalextremes.tweet", "twitter.digitalextremes.quote", - "twitter.digitalextremes.reply", + "twitter.digitalextremes.reply", "twitter.pablo.tweet", "twitter.pablo.retweet", "twitter.pablo.quote", @@ -239,6 +239,10 @@ "fissures", "cetus", "earth", + "twitter.tweet", + "twitter.retweet", + "twitter.quote", + "twitter.reply", "twitter" ], "fissures":[ @@ -331,7 +335,7 @@ "twitter.warframe.quote", "twitter.digitalextremes.tweet", "twitter.digitalextremes.retweet", - "twitter.digitalextremes.quote", + "twitter.digitalextremes.quote", "twitter.pablo.tweet", "twitter.pablo.retweet", "twitter.pablo.quote",