Commit Graph

79 Commits

Author SHA1 Message Date
jay
42138a421b fix(statemachine): 🥅 fix for lookatPlayer when no or invalid player
Fixes the case when player isn't nearby or entity is invalid due to teleport
2021-04-03 15:15:08 +05:00
jay
aded1e4193 style: 🎨 fix crlf -> lf for real this time, using .gitattributes
Add a .gitattributes file to permanentyl fix crlf issues.

For explanantion:
https://adaptivepatchwork.com/2012/03/01/mind-the-end-of-your-line/#the-new-system
2021-03-24 15:07:45 +05:00
jay
60394e38eb refactor: ♻️ replace add with vec3.offset
This avoids having to import and creat a `new vec3.v()`
2021-03-24 00:40:54 +05:00
jay
22490f7ec1 fix(command): 🐛 fix bot address regex returning undefined
Waits till spawn to make sure `bot.username` is definitely initialized
2021-03-23 23:10:58 +05:00
jay
72c4622091 feat(informer): various improvements and fixes
Feat:
- Letter aliases for subcommands.
- Most recent command when no input.
- Start player relative info stub.

Fix:
- Player username not shown.
2021-03-23 15:14:13 +05:00
jay
0757776d8b feat(command): 🎨 make botaddress prefix and regex more flexible and configurable 2021-03-23 14:39:07 +05:00
jay
a0ffaf1654 build(typescript): 🚨 add @types dep to satisfy typescript errors
Typescript linter had an error that `require` was undefined.
This happened after updating Nodejs from 14.15 to 14.16.
Not sure if this should be a global dep or local
2021-03-23 13:25:26 +05:00
jay
1597acca72 fix(eater): 🥅 catch async error on full food
Attempt to fix async error returned by `bot.consume`.
Fixed by wrapping in a `try{}` block and using `.catch`.
Still don't know why or how this works 🤷.
2021-03-22 17:32:56 +05:00
jay
1e82045221 build: ⬆️ update deps 2021-03-22 15:59:22 +05:00
jay
33c4fc0c77 ci: 🔧 add vscode conventional commits scopes 2021-03-22 14:51:02 +05:00
jay
33c4233223 feat(statemachine): 🚧 first draft of new xstate based statemachine implementation
Replaces the old statemachine.
Done so far:
- Basic command interface
- Machine saving and loading
- Sample dummy machine
2021-03-22 14:32:08 +05:00
jay
3f3ebbae10 build: ⬆️ update deps 2021-03-07 12:10:14 +05:00
jay
fd0e1e1347 build(statemachine): add xstate for state machines 2021-01-30 23:08:20 +05:00
jay
2f88eedce9 fix(mover): lessen move duration for more precise control 2021-01-28 03:52:12 +05:00
jay
a0893f2b29 feat(mover): allow riding specific entity by name 2021-01-28 02:50:08 +05:00
jay
b1a592dbbd fix(mover): 🐛 workaround for vehicle not being removed in api on dismount
`bot.vehicle` isn't removed on dismount, so this done manually
2021-01-28 02:24:59 +05:00
jay
f336e3d736 feat(mover): switch between moving and riding automatically for manual movement 2021-01-28 02:18:42 +05:00
jay
d953bd4cf6 fix(mover): 🎨 fix quiet not being "followed" 2021-01-28 02:10:52 +05:00
jay
fc43985337 fix(mover): 🐛 fix crash when no mobs nearby while searching for rides 2021-01-28 01:28:37 +05:00
jay
6b1157147d feat(mover): implement more featureful and robust ride command
Now does the following:
- finds entities (both vehicles and animals) which are suitable for riding.
- moves to get into range.

However:
- while in a vehicle, pathfinder doesn't appear to detec coords.
- `bot.moveVehicle` doesn't work, so bot doesn't move when riding
2021-01-28 00:48:45 +05:00
jay
e6d29576e7 refactor(command): 🚚 move vehicle commands near other moves
Move the following:
- vehicle commands next to other movement related commands like `go`.
- move `ride` / `mount` command functionality into mover plugin
2021-01-26 22:49:23 +05:00
jay
974d460061 feat(mover): add basic movement commands
Forward, left, etc. Uses bot.controlState.
But left and right does the opposite of expectations.
2021-01-18 15:13:53 +05:00
jay
1d361e04a6 build: ⬆️ update deps 2021-01-18 01:54:05 +05:00
jay
7597620626 ci: 🔧 add vscode conventional commits scopes 2021-01-18 01:47:32 +05:00
jay
e5faa6f022 feat(informer): add more detail to item info
Gives detail of traversing the item's nbt data
2021-01-18 01:24:47 +05:00
jay
cc18ac5c2e refactor(mover): 🚚 move commands inside mover plugin itself
This reduces the code inside the command plugin.
Most of the logic was only relevant to moving anyway.
Command aliases like `come` and `follow` still remain in command plugin.
2021-01-17 23:59:39 +05:00
jay
7050a1621b fix(informer): 🐛 add missing name for entity info when entity is a player
Uses `username` when `entity.name` is missing; should check other cases
2021-01-17 18:32:05 +05:00
jay
7cbfa16476 feat(informer): add case for when sub command is passed a single param
Currently returns:
- Item at given slot number
- Entity that matches given name
2021-01-17 16:20:20 +05:00
jay
63849e0729 fix(informer): 🥅 catch and report when objects are missing 2021-01-17 16:16:41 +05:00
jay
4e7f8d59fd feat(informer): add more detailed block metadata info
Uses `block.getProperties()`. Thanks to a [comment][1]

[1]: https://github.com/PrismarineJS/mineflayer-pathfinder/pull/84/files#r541196424
2021-01-17 15:54:31 +05:00
jay
7b2b936f81 feat(mover): implement moveY (vertical move up or down)
Doesn't appear to be working properly, bot assumes XZ is goal reached
2021-01-17 13:56:18 +05:00
jay
8a39596b1d feat(informer): add info for block at given position 2021-01-17 13:02:05 +05:00
jay
2601b7cfb1 fix(informer): 🥅 fix crash for block info when no block or an empty block is found 2021-01-17 12:20:49 +05:00
jay
67932b2f6a fix(sleeper): 🥅 catch sleeping edge case errors
Happens when trying to sleep while previously unable to move.
Or maybe when trying to sleep during dawn.
2021-01-16 16:39:42 +05:00
jay
9a6e684b11 feat(informer): add info about nearest entities 2021-01-16 16:17:42 +05:00
jay
3488a94233 feat(informer): info about held item(s) 2021-01-16 14:51:49 +05:00
jay
4d21327086 fix(mover): 🚸 better messages 2021-01-16 13:57:21 +05:00
jay
e74d796124 fix(command): 🐛 make follow command work again without params 2021-01-16 13:50:35 +05:00
jay
3d5ffe38cd feat(mover): inform when goal reached 2021-01-16 13:25:26 +05:00
jay
b519913355 feat(mover): implement moving to X Z goal (without y) 2021-01-15 00:36:17 +05:00
jay
b1dab1968c fix(command): ✏️ fix follow command not working 2021-01-05 11:34:49 +05:00
jay
3219ec6155 feat(informer): actually add a command for info plugin 2021-01-05 11:32:33 +05:00
jay
f38ad8c819 fix(command): 🚧 fix and workaround bot look at this
Workaround being unable to look at what player is looking at.
Currently looks at what player is standing on.
2021-01-05 09:30:14 +05:00
jay
4b8a39d38c feat(informer): add optional metadata to block info display 2021-01-05 09:20:35 +05:00
jay
6b71de0356 refactor(informer): 🚚 proper name to block info function
Be more specific: `block` instead of `info`.
In anticipation of future functions in this module.
2021-01-05 08:52:38 +05:00
jay
96214ffe37 fix(informer): 🐛 use block.type instead of block.id
`block.id` is nonexistent when tested live
2021-01-05 08:32:30 +05:00
jay
034f8d331a fix(informer): 🐛 convert array to string for chat
`bot.chat` only supports strings
2021-01-05 08:18:21 +05:00
jay
69d0f5830d feat(mover): add close(er) command to follow / come closer 2021-01-05 08:11:11 +05:00
jay
8e719d5ccf feat(sleeper): add and adjust functionality to properly sleep
Can now use beds in inventory but with a hacky block placing workaround.
`findBlock` returns a null position.
So it uses the closest adjacent block and assumes it'll work.

Bot also is more robust at sleeping,
2020-12-27 05:50:16 +05:00
jay
112eb04a8d refactor(sleeper): ♻️ simplify and make sleeping code more robust 2020-12-27 01:58:17 +05:00