CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PrismarineJS

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.

GitHub Repository: PrismarineJS/mineflayer
Path: blob/master/examples/python/basic.py
Views: 789
1
from javascript import require, On
2
mineflayer = require('mineflayer')
3
pathfinder = require('mineflayer-pathfinder')
4
5
RANGE_GOAL = 1
6
BOT_USERNAME = 'python'
7
8
bot = mineflayer.createBot({
9
'host': '127.0.0.1',
10
'port': 25565,
11
'username': BOT_USERNAME
12
})
13
14
bot.loadPlugin(pathfinder.pathfinder)
15
print("Started mineflayer")
16
17
@On(bot, 'spawn')
18
def handle(*args):
19
print("I spawned 👋")
20
movements = pathfinder.Movements(bot)
21
22
@On(bot, 'chat')
23
def handleMsg(this, sender, message, *args):
24
print("Got message", sender, message)
25
if sender and (sender != BOT_USERNAME):
26
bot.chat('Hi, you said ' + message)
27
if 'come' in message:
28
player = bot.players[sender]
29
print("Target", player)
30
target = player.entity
31
if not target:
32
bot.chat("I don't see you !")
33
return
34
35
pos = target.position
36
bot.pathfinder.setMovements(movements)
37
bot.pathfinder.setGoal(pathfinder.goals.GoalNear(pos.x, pos.y, pos.z, RANGE_GOAL))
38
39
@On(bot, "end")
40
def handle(*args):
41
print("Bot ended!", args)
42
43