Kit Kasune
902631d772
|
4 years ago | |
---|---|---|
.idea | 4 years ago | |
commands | 4 years ago | |
events | 4 years ago | |
handle | 4 years ago | |
models | 4 years ago | |
responses | 4 years ago | |
util | 4 years ago | |
.gitignore | 4 years ago | |
LICENSE | 4 years ago | |
README.md | 4 years ago | |
bot.js | 4 years ago | |
package-lock.json | 4 years ago | |
package.json | 4 years ago | |
pull.bat | 4 years ago | |
run.bat | 4 years ago | |
sync.bat | 4 years ago | |
template.js | 4 years ago | |
test.js | 4 years ago |
README.md
Natsuki
The official repository of Natsuki the Discord Bot. Currently in the Early Development phase, and is expected to release to a few servers and eventually bot lists relatively soon.
Utils
Some useful stuff we have in our bot that you can make use of!
Just about anything in the utils folder could be useful for a number of reasons, but here's a few big ones:
Tags
util/tagfilter.js and util/tag.js
Pass in a list of Tags. Each Tag has a list of triggers, its name, then its mode.
toggle
= takes no options. If the tag is present, it will view astrue
inoptions
.append
= forms a string from the text after the tag.-title Something Cool
will return the stringSomething Cool
. Will append from all tags that trigger the alias, so if multipletitle
tags are present, all of them will be present in the same string.listAppend
= Behaves likeappend
, with the exception that it will return a list where each member is a string for every time the tag is used; see example below
let options = new TagFilter([
new Tag(['t', '-title'], 'title', 'append'),
new Tag(['a', 'aliases', 'alts'], 'aliases', 'listAppend'),
new Tag(['f', 'force'], 'force', 'toggle')
]).test(args.join(" "));
// -title Example -a AnotherName -a Some other name -f
// options will look like this
{
title: "Example",
aliases: ["AnotherName", "Some other name"],
force: true
}
Quick awaitMessages
util/ask.js
Ask a question and wait for an answer. Returns the string of the user's response, or nothing if there was no response. Function is asynchronous!
Please make sure you account for the chance of timeout.
Pass in your message
object, the question to ask, the time - in ms - the user has to respond, and an optional boolean of whether or not to disable the filter, which would make it so that any user can answer the question.
let name = await ask(message, "What is your name?", 30000);
if (!name) {return;} // Function already sends a timeout message, just return here to stop the command from continuing.
return message.channel.send(`Hiya there, ${name}!`);