61 lines
1.4 KiB
JavaScript
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)
|