Skip to content

Instantly share code, notes, and snippets.

captDaylight

Block or report user

Report or block captDaylight

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View botSnippet13.js
channels.get(channel, (err, data) => {
...
if (onlyOnePlayed) {
channels.save(updateData, (err) => {
if (err) throw err;
bot.reply(message, `<@${user}> has played!`);
});
View botSnippet12.js
if (convo.status === 'completed') {
const prc = convo.extractResponse('rockPaperScissors');
channels.get(channel, (err, data) => {
if (err) throw err;
const updateData = data;
updateData.players[user].played = prc;
const { players } = updateData;
View botSnippet11.js
convo.on('end', (convo) => {
if (convo.status === 'completed') {
// conversation completed correctly
const prc = convo.extractResponse('rockPaperScissors');
} else {
// this happens if the conversation ended prematurely for some reason
bot.reply(message, 'OK, nevermind!');
}
});
View botSnippet10.js
function privateConvo(bot, message) {
const { user, channel } = message;
return (err, convo) => {
if (err) throw err;
convo.ask(...);
// on end, update game data and broadcast info
convo.on('end', callback);
View botSnippet09.js
return (err, convo) => {
convo.ask('Do you want to play `paper`, `rock`, or `scissors`?', [
{
pattern: 'paper|rock|scissors',
callback(response, convo) {
// since no further messages are queued after this,
// the conversation will end naturally with status === ‘completed’
convo.next();
},
}, {
View botSnippet08.js
function privateConvo(bot, message) {
return (err, convo) => {};
}
...
bot.startPrivateConversation(message, privateConvo(bot, message));
View botSnippet07.js
hears(['accept'], 'ambient', (bot, message) => {
...
if (user in players && !players[user].accepted) {
bot.reply(message, 'GREAT, LET THE BATTLE BEGIN!!!');
bot.startPrivateConversation(message, callback);
} else {
...
});
View botSnippet06.js
hears([‘play’], ‘direct_message,direct_mention,mention’, (bot, message) => {
...
channels.save(gameData, (err) => {
if (err) throw err;
bot.say({
text: `<@${playerTwo}> you've been challenged to a game of ROCK PAPER SCISSORS by <@${user}>, say \`accept\` unless you're too scared.`,
channel,
});
View botSnippet05.js
...
if (data && 'players' in data) {
const { user } = message;
const { players } = data;
if (user in players && !players[user].accepted) {
// player two accepted
bot.reply(message, 'GREAT, LET THE BATTLE BEGIN!!!');
} else {
const player = Object.keys(players).find((p) => !players[p].accepted);
View botSnippet04.js
// a bot can listen for text it's not mentioned in
// by passing 'ambient' as the second parameter
hears(['accept'], 'ambient', (bot, message) => {
const { channel } = message;
channels.get(channel, (err, data) => {
if (err) throw err;
if (data && 'players' in data) {
// game has started !
You can’t perform that action at this time.