42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
from javascript import require, On
|
|
mineflayer = require('mineflayer')
|
|
pathfinder = require('mineflayer-pathfinder')
|
|
|
|
RANGE_GOAL = 1
|
|
BOT_USERNAME = 'python'
|
|
|
|
bot = mineflayer.createBot({
|
|
'host': '127.0.0.1',
|
|
'port': 25565,
|
|
'username': BOT_USERNAME
|
|
})
|
|
|
|
bot.loadPlugin(pathfinder.pathfinder)
|
|
print("Started mineflayer")
|
|
|
|
@On(bot, 'spawn')
|
|
def handle(*args):
|
|
print("I spawned 👋")
|
|
movements = pathfinder.Movements(bot)
|
|
|
|
@On(bot, 'chat')
|
|
def handleMsg(this, sender, message, *args):
|
|
print("Got message", sender, message)
|
|
if sender and (sender != BOT_USERNAME):
|
|
bot.chat('Hi, you said ' + message)
|
|
if 'come' in message:
|
|
player = bot.players[sender]
|
|
print("Target", player)
|
|
target = player.entity
|
|
if not target:
|
|
bot.chat("I don't see you !")
|
|
return
|
|
|
|
pos = target.position
|
|
bot.pathfinder.setMovements(movements)
|
|
bot.pathfinder.setGoal(pathfinder.goals.GoalNear(pos.x, pos.y, pos.z, RANGE_GOAL))
|
|
|
|
@On(bot, "end")
|
|
def handle(*args):
|
|
print("Bot ended!", args)
|