@ -108,6 +108,101 @@ function stop() {
bot . stopDigging ( )
}
function command ( message _parts , player ) {
const message _parts2 = message _parts . slice ( 1 )
switch ( message _parts [ 0 ] ) {
case "init" :
initMoves ( )
break
case "near" :
switch ( message _parts2 . length ) {
case 0 :
moveNear ( bot . nearestEntity ( ) . position )
break
case 1 :
switch ( message _parts2 [ 0 ] ) {
case "me" :
if ( player ) {
moveNear ( player . position )
} else {
cfg . quiet || bot . chat ( "can't see you" )
}
break ;
default :
const aPlayer = bot . players [ message _parts2 [ 0 ] ] ? bot . players [ message _parts2 [ 0 ] ] . entity : null
if ( aPlayer ) {
moveNear ( aPlayer . position )
} else {
cfg . quiet || bot . chat ( ` can't see ${ message _parts2 [ 0 ] } ` )
}
break ;
}
break
case 2 :
//TODO this isn't near
moveXZ ( message _parts2 )
break
case 3 :
//TODO more checks
moveNear ( message _parts2 )
break
default :
break
}
break
case "follow" :
// message_parts2 = message_parts.slice(2)
switch ( message _parts2 . length ) {
case 0 :
follow ( bot . nearestEntity ( ) )
break
case 1 :
let dist = 3
switch ( message _parts2 [ 0 ] ) {
case "close" :
dist = 1
case "me" :
case "once" :
if ( player ) {
follow ( player , message _parts2 [ 0 ] === "me" , dist )
} else {
cfg . quiet || bot . chat ( "can't see you" )
}
break ;
default :
const aPlayer = bot . players [ message _parts2 [ 0 ] ] ? bot . players [ message _parts2 [ 0 ] ] . entity : null
if ( aPlayer ) {
follow ( aPlayer )
} else {
cfg . quiet || bot . chat ( ` can't see ${ message _parts2 [ 0 ] } ` )
}
break ;
}
break
// case 2:
// bot.lookAt({}) goalxz?
// break
// case 3:
//TODO more checks
// moveNear(message_parts2)
// break
default :
cfg . quiet || bot . chat ( "unknown or bad command" )
break
}
break
case "stop" :
stop ( )
break
default :
return cfg . quiet || bot . chat ( ` unknown command ${ message _parts [ 0 ] } ` )
break ;
}
}
const load = ( config ) => {
cfg = config
bot = cfg . bot
@ -133,4 +228,4 @@ const unload = () => {
bot . off ( 'goal_reached' , goalReached )
}
module . exports = { load , unload , stop , initMoves , moveNear , moveXZ , moveY , follow }
module . exports = { load , unload , command , stop , initMoves , moveNear , moveXZ , moveY , follow }