No edit summary |
No edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 8: | Line 8: | ||
==== Role Syncing ==== | ==== Role Syncing ==== | ||
Wazebot can sync your roles across the regional Discord servers. A limited number of roles are set by the bot for security reasons; others must be set manually and are not synced automatically. The table below gives the available roles and the permission required to set them. For example, the L6 role can only be given by champs, and only when the command is used in the national server. | Wazebot can sync your roles across the regional Discord servers. A limited number of roles are set by the bot for security reasons; others must be set manually and are not synced automatically. The table below gives the available roles and the permission required to set them. For example, the L6 role can only be given by champs, and only when the command is used in the national server. | ||
:''NOTE: Any command which includes @username | :''NOTE: Any command which includes @username in the table below cannot be used on yourself--it must be assigned by someone else with the appropriate permissions.'' | ||
{| class="wikitable" | {| class="wikitable" | ||
!Role | !Role | ||
Line 48: | Line 48: | ||
|Level 4 (L4) | |Level 4 (L4) | ||
|!l4 @username | |!l4 @username | ||
|SM or above | |||
|- | |||
|Level 3 (L3) | |||
|!l3 @username | |||
|SM or above | |SM or above | ||
|- | |- | ||
Line 53: | Line 57: | ||
|!l3 | |!l3 | ||
|Anyone (role is assigned to command user) | |Anyone (role is assigned to command user) | ||
|- | |||
|Level 2 (L2) | |||
|!l2 @username | |||
|SM or above | |||
|- | |- | ||
|Level 2 (L2) | |Level 2 (L2) | ||
|!l2 | |!l2 | ||
|Anyone (role is assigned to command user) | |Anyone (role is assigned to command user) | ||
|- | |||
|Level 1 (L1) | |||
|!l1 @username | |||
|SM or above | |||
|- | |- | ||
|Level 1 (L1) | |Level 1 (L1) | ||
Line 87: | Line 99: | ||
<code>!autoreplies add server testing This is a test.</code> | <code>!autoreplies add server testing This is a test.</code> | ||
<code>!autoreplies remove global anothertest | <code>!autoreplies remove global anothertest</code> | ||
====Available autoreplies==== | ====Available autoreplies==== | ||
Line 117: | Line 129: | ||
==== Regular Expressions ==== | ==== Regular Expressions ==== | ||
Regular expression keywords are supported. To use them, create a keyword as normal but wrap your regex in <code>/</code>. For example, <code>!keyword add /.*/</code>. | Regular expression keywords are supported. To use them, create a keyword as normal but wrap your regex in <code>/</code>. For example, <code>!keyword add /.*/</code>. Note that regex keywords are case-sensitive by default. To make them case-insensitive, you can add a keyword with the normal regex format but append <code>i</code> to the end: <code>!keyword add /.*/i</code>. Special identifiers like <code>\W</code> will still be preserved. | ||
==== List keywords ==== | ==== List keywords ==== |
Latest revision as of 22:49, 30 September 2017
Wazebot is an automated chat bot for use in the Waze Discord servers and Google Hangouts chats. This is not to be confused with "WazeBot" which is part of the "Feed the Waze" project.
This page discusses the details for the Discord version of the bot. For more details on the Google Hangouts bot, see the Wazebot external page.
Features
Role Syncing
Wazebot can sync your roles across the regional Discord servers. A limited number of roles are set by the bot for security reasons; others must be set manually and are not synced automatically. The table below gives the available roles and the permission required to set them. For example, the L6 role can only be given by champs, and only when the command is used in the national server.
- NOTE: Any command which includes @username in the table below cannot be used on yourself--it must be assigned by someone else with the appropriate permissions.
Role | Bot Command | Role Required |
---|---|---|
Country Manager (CM) | !cm @username | CM or above |
State Manager (SM) | !sm @username | SM or above |
Large Area Manager (LAM) | !lam @username | SM or above |
Area Manager (AM) | !am @username | SM or above |
Mentor | !mentor @username | SM or above |
Region-specific | !region @username | SM or above |
Level 6 (L6) | !l6 @username | Champ in national server |
Level 5 (L5) | !l5 @username | SM or above |
Level 4 (L4) | !l4 @username | SM or above |
Level 3 (L3) | !l3 @username | SM or above |
Level 3 (L3) | !l3 | Anyone (role is assigned to command user) |
Level 2 (L2) | !l2 @username | SM or above |
Level 2 (L2) | !l2 | Anyone (role is assigned to command user) |
Level 1 (L1) | !l1 @username | SM or above |
Level 1 (L1) | !l1 | Anyone (role is assigned to command user) |
Commands
Glossary
You can search for glossary terms with the command !glossary
, using the format !glossary search term
.
Lookup
Some channels may have a linked Google Spreadsheet. If your channel does, you can search it using !lookup
. An example command is !lookup search term
.
Autoreplies
An autoreply is a message that the bot will reply with automatically when a certain phrase is said in chat. Autoreplies can be created at the channel, server, or global levels. The syntax is by nature somewhat convoluted due to the features provided. To trigger an autoreply, the keyword is sent preceded by an exclamation mark !
.
Channel and server autoreplies can be set by SM+, and global autoreplies can be set only in the national server by champs.
The base command is !autoreplies
, by itself this will bring up a list of available autoreplies for the area it is used in. To add or remove autoreplies, send the command from the server, and/or channel you want it to apply to. The command is made of four parts; base + action + area + trigger term + autoreply text.
base = !autoreplies
action = add
or remove
area = global
, server
, or channel
trigger term = the keyword that when typed will trigger this response. Do not include the preceding exclamation mark.
autoreply text = the full formatted text that should be return when the trigger term sent.
Here's an example command:
!autoreplies add server testing This is a test.
!autoreplies remove global anothertest
Available autoreplies
Below is a list of some of the global autoreplies which have been set.
Trigger | Response Text |
---|---|
!help | Link to this page |
!copyright !sources !externalsources |
Information about using external sources and © content |
!nickname | Instructions to set up a proper nickname on Discord |
!ping !status |
Check if bot is working |
!source | Link to source code for the bot |
!soon | 🔜 parody |
Keyword Subscriptions
You can subscribe to keywords and the bot will message you whenever one is used in a channel that you're in. The commands are somewhat complicated because of the functionality available.
Notes
Keywords must be at least 2 characters long. Keywords are not case-sensitive, but regex special characters such as \W
are respected.
Base command
The base command to use is !keyword
or !subscription
, or variants of these.
Regular Expressions
Regular expression keywords are supported. To use them, create a keyword as normal but wrap your regex in /
. For example, !keyword add /.*/
. Note that regex keywords are case-sensitive by default. To make them case-insensitive, you can add a keyword with the normal regex format but append i
to the end: !keyword add /.*/i
. Special identifiers like \W
will still be preserved.
List keywords
Your existing keywords can be listed using !keyword list
.
Add a keyword
To add a keyword, use !keyword add keywordhere
. You can use multiple words, but note that you will only be messaged if the entire phrase you use is a match. To add multiple separate keywords, you need to use the command multiple times in individual messages.
Remove a keyword
Remove keywords using !keyword remove keywordhere
. The keyword must exactly match one of your existing keywords or the command will fail.
Ignoring keywords in servers or channels
By default, the bot will message you if a keyword matches in any channel that you're in. You can ignore specific keywords in certain servers or channels with these commands. To find the server or channel ID, see the Getting IDs section below.
Ignore a keyword in a server
To ignore a server: !keyword ignore server serverid keywordhere
. For example, you could ignore the keyword "testing" in the national server by using !keyword ignore server 300471946494214146 testing
.
Ignore a keyword in a channel
Ignoring a channel uses the same syntax as ignoring a server, except the word "channel" is used instead of "server": !keyword ignore channel channelid keywordhere
. For example, to ignore the keyword "testing" in the GLR channel on the national server, you would use !keyword ignore channel 300568375900504074 testing
.
Unignore a server or channel
Unignoring a server or channel uses the same syntax as ignoring, but with the word "unignore" instead of "ignore". For example: !keyword unignore server 300471946494214146 testing
.
Mute servers or channels
You can mute all keywords from a given server or channel using these commands.
Mute a server
Mute a server using !keywords mute server serverid
. For example, !keyword mute server 300471946494214146
.
Mute a channel
Mute a channel using !keyword mute channel channelid
. For example, !keyword mute channel 300568375900504074
.
Unmute a server or channel
Unmute a server or channel using the same commands as above, except using unmute
instead of mute
.
Getting IDs
Several bot commands use either channel or server IDs to identify those channels or servers. Getting these IDs is relatively straightforward. Navigate to the channel or server that you want the ID for, and look at the URL of the page. For example, the #michigan channel in the GLR server has this URL:
https://discordapp.com/channels/299563059695976451/299567520652853248
In all URLs, the first large number is the server ID and the second number is the channel ID. In this example, the server ID is 299563059695976451
, and the channel ID is 299567520652853248
.
Alternatively, you can use the command !whereami
and the bot will give you these IDs.
Note that the server and channel IDs may be the same!
Technical
The bot's identifier is WazeBot#1984, and its internal ID is 299667737368592385. It is written in C# and runs on .NET Core. Source code is available on GitHub. Core functionality is provided by Discord.Net. Contact vaindil (vaindil#2314 on Discord) with any questions or issues.