LookAtMySuitBot/js/node_modules/mineflayer/examples/perfectShotBow.js

60 lines
1.9 KiB
JavaScript
Raw Normal View History

2023-12-24 20:08:39 -05:00
const mineflayer = require('mineflayer')
const minecraftHawkEye = require('minecrafthawkeye')
const bot = mineflayer.createBot({
host: process.argv[2],
port: parseInt(process.argv[3]),
username: process.argv[4] ? process.argv[4] : 'Archer',
password: process.argv[5]
})
bot.loadPlugin(minecraftHawkEye)
bot.on('spawn', function () {
bot.chat(`/give ${bot.username} bow{Enchantments:[{id:unbreaking,lvl:100}]} 1`)
bot.chat(`/give ${bot.username} crossbow{Enchantments:[{id:quick_charge,lvl:3},{id:unbreaking,lvl:100}]} 1`)
bot.chat(`/give ${bot.username} minecraft:arrow 300`)
bot.chat('/time set day')
bot.chat('/kill @e[type=minecraft:arrow]')
bot.chat('Ready!')
// Get target for block position, use whatever you need
const target = bot.hawkEye.getPlayer()
if (!target) {
return false
}
// const validWeapons = ['bow', 'crossbow', 'snowball', 'ender_pearl', 'egg', 'splash_potion']
const weapon = 'crossbow'
// Auto attack every 1,2 secs with bow
// With crossbow attack when crossbow is charget (enchant 3 = 0.5s)
// ['snowball', 'ender_pearl', 'egg', 'splash_potion'] auto attack every 0,1 sec, no recomended use autoAttack for these items, instead use "bot.hawkEye.oneShot(target, weapon)"
bot.hawkEye.autoAttack(target, weapon)
// If you force stop attack use:
// hawkEye.stop();
// Use one shot time with calc:
// bot.hawkEye.oneShot(target, weapon);
// If you want to shot in XYZ position:
/*
const blockPosition = {
position: {
x: 244.5,
y: 75.5,
z: -220
},
isValid: true // Fake to is "alive"
}
// bot.hawkEye.oneShot(blockPosition, weapon);
// bot.hawkEye.autoAttack(blockPosition);
*/
})
bot.on('die', () => {
bot.hawkEye.stop()
})