60 lines
1.9 KiB
JavaScript
60 lines
1.9 KiB
JavaScript
|
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()
|
||
|
})
|