LookAtMySuitBot/js/node_modules/mineflayer/examples/chat_parsing.js

61 lines
1.4 KiB
JavaScript

/*
this example is to show the different ways to parse chat messages
Expected output in console:
bot has just joined!
bot has just left!
bot has just rejoined!
bot has just left!
*/
const mineflayer = require('mineflayer')
const bot = mineflayer.createBot({
host: 'localhost',
username: 'bot'
})
bot.once('spawn', () => {
bot.addChatPattern('bot_left_the_game', /bot. left the game/)
bot.addChatPatternSet('bot_rejoins_the_game', [/bot. left the game/, /bot. joined the game/])
bot.addChatPattern('who_just_joined', /(.+) joined the game/, { parse: true, repeat: false })
makeChatMessages()
})
bot.on('chat:bot_left_the_game', matches => {
// => ['bot left the game']
console.log('bot has just left!')
})
bot.on('chat:bot_rejoins_the_game', matches => {
// => ['bot left the game', 'bot joined the game']
console.log('bot has just rejoined!')
})
bot.on('chat:who_just_joined', matches => {
console.log(`${matches[0]} has just joined!`) // should only run once
})
async function makeChatMessages () {
let bot1 = mineflayer.createBot({
host: 'localhost',
username: 'bot1'
})
let bot2
setTimeout(() => bot1.quit(), 1500)
setTimeout(() => {
bot1 = mineflayer.createBot({
host: 'localhost',
username: 'bot1'
})
}, 1750)
setTimeout(() => {
bot2 = mineflayer.createBot({
host: 'localhost',
username: 'bot2'
}, 2000)
})
setTimeout(() => bot2.quit(), 2500)
}
bot.on('error', console.log)