style: ♿ fix crlf to lf
This commit is contained in:
		
							
								
								
									
										56
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										56
									
								
								.vscode/launch.json
									
									
									
									
										vendored
									
									
								
							| @@ -1,29 +1,29 @@ | ||||
| { | ||||
|     // Use IntelliSense to learn about possible attributes. | ||||
|     // Hover to view descriptions of existing attributes. | ||||
|     // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 | ||||
|     "version": "0.2.0", | ||||
|     "configurations": [ | ||||
|         { | ||||
|             "type": "node", | ||||
|             "request": "launch", | ||||
|             "name": "protospace", | ||||
|             "skipFiles": [ | ||||
|                 "<node_internals>/**" | ||||
|             ], | ||||
|             "program": "${workspaceFolder}/lib/index.js", | ||||
|             "args": ["games.protospace.ca"] | ||||
|         }, | ||||
|         { | ||||
|             "type": "node", | ||||
|             "request": "launch", | ||||
|             "name": "Launch Program", | ||||
|             "skipFiles": [ | ||||
|                 "<node_internals>/**" | ||||
|             ], | ||||
|             "program": "${workspaceFolder}/lib/index.js", | ||||
|             // port may need to be changed for each session | ||||
|             "args": ["localhost", "56901"] | ||||
|         } | ||||
|     ] | ||||
| { | ||||
|     // Use IntelliSense to learn about possible attributes. | ||||
|     // Hover to view descriptions of existing attributes. | ||||
|     // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 | ||||
|     "version": "0.2.0", | ||||
|     "configurations": [ | ||||
|         { | ||||
|             "type": "node", | ||||
|             "request": "launch", | ||||
|             "name": "protospace", | ||||
|             "skipFiles": [ | ||||
|                 "<node_internals>/**" | ||||
|             ], | ||||
|             "program": "${workspaceFolder}/lib/index.js", | ||||
|             "args": ["games.protospace.ca"] | ||||
|         }, | ||||
|         { | ||||
|             "type": "node", | ||||
|             "request": "launch", | ||||
|             "name": "Launch Program", | ||||
|             "skipFiles": [ | ||||
|                 "<node_internals>/**" | ||||
|             ], | ||||
|             "program": "${workspaceFolder}/lib/index.js", | ||||
|             // port may need to be changed for each session | ||||
|             "args": ["localhost", "56901"] | ||||
|         } | ||||
|     ] | ||||
| } | ||||
| @@ -1,113 +1,113 @@ | ||||
| let cfg = {} | ||||
| let bot = {} | ||||
| let isEating = false | ||||
|  | ||||
| function callbackHandle(err) { | ||||
|     if (err) console.error(err) | ||||
| } | ||||
|  | ||||
| function eat(callback) { | ||||
|     isEating = true | ||||
|  | ||||
|     const foodNames = require('minecraft-data')(bot.version).foodsArray.map((item) => item.name) | ||||
|  | ||||
|     let available_food = bot.inventory | ||||
|         .items() | ||||
|         .filter((item) => foodNames.includes(item.name)) | ||||
|  | ||||
|     if (available_food.length === 0 || !available_food) { | ||||
|         isEating = false | ||||
|         return callback(new Error('No food found.')) | ||||
|     } | ||||
|  | ||||
|     if (cfg.eat.bannedFood.length > 0) { | ||||
|         available_food = available_food.filter( | ||||
|             (item) => !cfg.eat.bannedFood.includes(item.name) | ||||
|         ) | ||||
|     } | ||||
|     let priority = cfg.eat.priority | ||||
|     let best_food = available_food.reduce((prev, current) => (prev[priority] > current[priority]) ? prev : current) | ||||
|  | ||||
|     if (!best_food) { | ||||
|         isEating = false | ||||
|         return callback(new Error('No best food has been found.')) | ||||
|     } | ||||
|  | ||||
|     bot.emit('eat_start') | ||||
|  | ||||
|     bot.equip(best_food, 'hand', function (error) { | ||||
|         if (error) { | ||||
|             console.error(error) | ||||
|             isEating = false | ||||
|             bot.emit('eat_stop') | ||||
|         } else { | ||||
|             bot.consume(function (err) { | ||||
|                 if (err) { | ||||
|                     console.error(err) | ||||
|                     isEating = false | ||||
|                     bot.emit('eat_stop') | ||||
|                     return callback(err) | ||||
|                 } else { | ||||
|                     isEating = false | ||||
|                     bot.emit('eat_stop') | ||||
|                     callback(null) | ||||
|                     if (!bot.food === 20) eat(callbackHandle) | ||||
|                 } | ||||
|             }) | ||||
|         } | ||||
|     }) | ||||
| } | ||||
|  | ||||
| function checkFood() { | ||||
|     console.info("eater: " | ||||
|         // , " status: ", !isEating | ||||
|         , cfg.eat.auto && "auto" | ||||
|         , bot.food < cfg.eat.startAt && "hungry" | ||||
|         , "hunger:", bot.food | ||||
|         , "at:", cfg.eat.startAt) | ||||
|     if ( | ||||
|         !isEating | ||||
|         && cfg.eat.auto | ||||
|         && bot.food < cfg.eat.startAt | ||||
|     ) { | ||||
|         if ( | ||||
|             (bot.pathfinder | ||||
|                 && !(bot.pathfinder.isMining() || bot.pathfinder.isBuilding()) | ||||
|                 // TODO implement better idle state | ||||
|             ) || true // idle most likely | ||||
|         ) { | ||||
|             eat(callbackHandle) | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| function resetEat(value) { | ||||
|     // to prevent the plugin from breaking if the bot gets killed while eating btw | ||||
|     isEating = !!value // false | ||||
| } | ||||
|  | ||||
| const load = (config) => { | ||||
|     cfg = config | ||||
|     bot = cfg.bot | ||||
|     cfg.eat = { | ||||
|         priority: 'saturation', //'foodPoints', // | ||||
|         // startAt: 19, //anarchy | ||||
|         // startAt: 18, | ||||
|         startAt: 14, | ||||
|         bannedFood: [ | ||||
|             "enchanted_golden_apple", "golden_apple", "pufferfish", "chorus_fruit" | ||||
|         ], | ||||
|         auto: true | ||||
|     } | ||||
|  | ||||
|     bot.on('health', checkFood) | ||||
|     bot.on('spawn', resetEat) | ||||
|  | ||||
| } | ||||
|  | ||||
| const unload = () => { | ||||
|     bot.off('health', checkFood) | ||||
|     bot.off('spawn', resetEat) | ||||
| } | ||||
|  | ||||
| let cfg = {} | ||||
| let bot = {} | ||||
| let isEating = false | ||||
|  | ||||
| function callbackHandle(err) { | ||||
|     if (err) console.error(err) | ||||
| } | ||||
|  | ||||
| function eat(callback) { | ||||
|     isEating = true | ||||
|  | ||||
|     const foodNames = require('minecraft-data')(bot.version).foodsArray.map((item) => item.name) | ||||
|  | ||||
|     let available_food = bot.inventory | ||||
|         .items() | ||||
|         .filter((item) => foodNames.includes(item.name)) | ||||
|  | ||||
|     if (available_food.length === 0 || !available_food) { | ||||
|         isEating = false | ||||
|         return callback(new Error('No food found.')) | ||||
|     } | ||||
|  | ||||
|     if (cfg.eat.bannedFood.length > 0) { | ||||
|         available_food = available_food.filter( | ||||
|             (item) => !cfg.eat.bannedFood.includes(item.name) | ||||
|         ) | ||||
|     } | ||||
|     let priority = cfg.eat.priority | ||||
|     let best_food = available_food.reduce((prev, current) => (prev[priority] > current[priority]) ? prev : current) | ||||
|  | ||||
|     if (!best_food) { | ||||
|         isEating = false | ||||
|         return callback(new Error('No best food has been found.')) | ||||
|     } | ||||
|  | ||||
|     bot.emit('eat_start') | ||||
|  | ||||
|     bot.equip(best_food, 'hand', function (error) { | ||||
|         if (error) { | ||||
|             console.error(error) | ||||
|             isEating = false | ||||
|             bot.emit('eat_stop') | ||||
|         } else { | ||||
|             bot.consume(function (err) { | ||||
|                 if (err) { | ||||
|                     console.error(err) | ||||
|                     isEating = false | ||||
|                     bot.emit('eat_stop') | ||||
|                     return callback(err) | ||||
|                 } else { | ||||
|                     isEating = false | ||||
|                     bot.emit('eat_stop') | ||||
|                     callback(null) | ||||
|                     if (!bot.food === 20) eat(callbackHandle) | ||||
|                 } | ||||
|             }) | ||||
|         } | ||||
|     }) | ||||
| } | ||||
|  | ||||
| function checkFood() { | ||||
|     console.info("eater: " | ||||
|         // , " status: ", !isEating | ||||
|         , cfg.eat.auto && "auto" | ||||
|         , bot.food < cfg.eat.startAt && "hungry" | ||||
|         , "hunger:", bot.food | ||||
|         , "at:", cfg.eat.startAt) | ||||
|     if ( | ||||
|         !isEating | ||||
|         && cfg.eat.auto | ||||
|         && bot.food < cfg.eat.startAt | ||||
|     ) { | ||||
|         if ( | ||||
|             (bot.pathfinder | ||||
|                 && !(bot.pathfinder.isMining() || bot.pathfinder.isBuilding()) | ||||
|                 // TODO implement better idle state | ||||
|             ) || true // idle most likely | ||||
|         ) { | ||||
|             eat(callbackHandle) | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| function resetEat(value) { | ||||
|     // to prevent the plugin from breaking if the bot gets killed while eating btw | ||||
|     isEating = !!value // false | ||||
| } | ||||
|  | ||||
| const load = (config) => { | ||||
|     cfg = config | ||||
|     bot = cfg.bot | ||||
|     cfg.eat = { | ||||
|         priority: 'saturation', //'foodPoints', // | ||||
|         // startAt: 19, //anarchy | ||||
|         // startAt: 18, | ||||
|         startAt: 14, | ||||
|         bannedFood: [ | ||||
|             "enchanted_golden_apple", "golden_apple", "pufferfish", "chorus_fruit" | ||||
|         ], | ||||
|         auto: true | ||||
|     } | ||||
|  | ||||
|     bot.on('health', checkFood) | ||||
|     bot.on('spawn', resetEat) | ||||
|  | ||||
| } | ||||
|  | ||||
| const unload = () => { | ||||
|     bot.off('health', checkFood) | ||||
|     bot.off('spawn', resetEat) | ||||
| } | ||||
|  | ||||
| module.exports = { load, unload, eat, resetEat } | ||||
| @@ -1,95 +1,95 @@ | ||||
| // import { EntityFilters } from "mineflayer-statemachine" | ||||
| // import v from "vec3" | ||||
|  | ||||
| // import { Movements } from "mineflayer-pathfinder" | ||||
|  | ||||
| // const mineflayer = require('mineflayer') | ||||
| const { Movements } = require('mineflayer-pathfinder') | ||||
| // const { GoalBLah } = require('mineflayer-pathfinder').goals | ||||
| const v = require('vec3') | ||||
|  | ||||
| let cfg = {} | ||||
| let bot = {} | ||||
| // let moving | ||||
| let pathfinder | ||||
| let movements = [] | ||||
|  | ||||
|  | ||||
| function initMoves(bot = bot, mcData = require('minecraft-data')(bot.version)) { | ||||
|     let defaultMove = new Movements(bot, mcData) | ||||
|     defaultMove.canDig = false | ||||
|     defaultMove.scafoldingBlocks.push(mcData.blocksByName.slime_block.id) | ||||
|     // defaultMove.blocksCantBreak.add(mcData.blocksByName.glass.id) | ||||
|     // defaultMove.blocksToAvoid.add(mcData.blocksByName.magma.id) | ||||
|     movements.defaultMove = defaultMove | ||||
|  | ||||
|     bot.pathfinder.setMovements(defaultMove) | ||||
| } | ||||
|  | ||||
|  | ||||
| function moveNear(pos, distance = 3) { | ||||
|     const { GoalNear } = require('mineflayer-pathfinder').goals | ||||
|     cfg.quiet || bot.chat(`moving to ${pos}`) | ||||
|  | ||||
|     pos = v(pos) | ||||
|     bot.pathfinder.setMovements(movements.defaultMove) | ||||
|     bot.pathfinder.setGoal(new GoalNear(pos.x, pos.y, pos.z, distance)) | ||||
| } | ||||
|  | ||||
| function follow(entity, dynamic = true) { | ||||
|     console.assert(entity) | ||||
|     const { GoalFollow } = require('mineflayer-pathfinder').goals | ||||
|  | ||||
|  | ||||
|  | ||||
|     cfg.quiet && console.log(entity) | ||||
|         || bot.chat( | ||||
|             `following ${entity.type | ||||
|             }: ${entity.username || entity.displayName | ||||
|             }${dynamic ? "" : " once"}` | ||||
|         ) | ||||
|  | ||||
|     entity = entity.entity ? entity.entity : entity | ||||
|  | ||||
|     // console.log(entity) | ||||
|  | ||||
|     bot.pathfinder.setMovements(movements.defaultMove) | ||||
|     bot.pathfinder.setGoal(new GoalFollow(entity, 3), dynamic) | ||||
| } | ||||
|  | ||||
| function hit(blockOrEntity) { | ||||
|     bot.chat(`hitting ${entity.name || entity.type}`) | ||||
| } | ||||
|  | ||||
| function stop() { | ||||
|     bot.pathfinder.setGoal(null) | ||||
|     bot.stopDigging() | ||||
| } | ||||
|  | ||||
| const load = (config) => { | ||||
|     cfg = config | ||||
|     bot = cfg.bot | ||||
|     cfg.move = { | ||||
|         // auto: true, | ||||
|         canDig: false, | ||||
|         // list: ["hello", "wassup"], | ||||
|         quiet: !!cfg.quiet, | ||||
|         movements: [] | ||||
|     } | ||||
|  | ||||
|     pathfinder = bot.pathfinder || bot.loadPlugin(require('mineflayer-pathfinder').pathfinder) | ||||
|  | ||||
|     // initMoves(bot, mcData) | ||||
|     setTimeout(initMoves, 500, bot) | ||||
|  | ||||
|     // bot.loadPlugin(pathfinder) | ||||
|  | ||||
|     // bot.on('time', hello) | ||||
|  | ||||
| } | ||||
|  | ||||
| const unload = () => { | ||||
|     // TODO stop pathfinding maybe? | ||||
| } | ||||
|  | ||||
| // import { EntityFilters } from "mineflayer-statemachine" | ||||
| // import v from "vec3" | ||||
|  | ||||
| // import { Movements } from "mineflayer-pathfinder" | ||||
|  | ||||
| // const mineflayer = require('mineflayer') | ||||
| const { Movements } = require('mineflayer-pathfinder') | ||||
| // const { GoalBLah } = require('mineflayer-pathfinder').goals | ||||
| const v = require('vec3') | ||||
|  | ||||
| let cfg = {} | ||||
| let bot = {} | ||||
| // let moving | ||||
| let pathfinder | ||||
| let movements = [] | ||||
|  | ||||
|  | ||||
| function initMoves(bot = bot, mcData = require('minecraft-data')(bot.version)) { | ||||
|     let defaultMove = new Movements(bot, mcData) | ||||
|     defaultMove.canDig = false | ||||
|     defaultMove.scafoldingBlocks.push(mcData.blocksByName.slime_block.id) | ||||
|     // defaultMove.blocksCantBreak.add(mcData.blocksByName.glass.id) | ||||
|     // defaultMove.blocksToAvoid.add(mcData.blocksByName.magma.id) | ||||
|     movements.defaultMove = defaultMove | ||||
|  | ||||
|     bot.pathfinder.setMovements(defaultMove) | ||||
| } | ||||
|  | ||||
|  | ||||
| function moveNear(pos, distance = 3) { | ||||
|     const { GoalNear } = require('mineflayer-pathfinder').goals | ||||
|     cfg.quiet || bot.chat(`moving to ${pos}`) | ||||
|  | ||||
|     pos = v(pos) | ||||
|     bot.pathfinder.setMovements(movements.defaultMove) | ||||
|     bot.pathfinder.setGoal(new GoalNear(pos.x, pos.y, pos.z, distance)) | ||||
| } | ||||
|  | ||||
| function follow(entity, dynamic = true) { | ||||
|     console.assert(entity) | ||||
|     const { GoalFollow } = require('mineflayer-pathfinder').goals | ||||
|  | ||||
|  | ||||
|  | ||||
|     cfg.quiet && console.log(entity) | ||||
|         || bot.chat( | ||||
|             `following ${entity.type | ||||
|             }: ${entity.username || entity.displayName | ||||
|             }${dynamic ? "" : " once"}` | ||||
|         ) | ||||
|  | ||||
|     entity = entity.entity ? entity.entity : entity | ||||
|  | ||||
|     // console.log(entity) | ||||
|  | ||||
|     bot.pathfinder.setMovements(movements.defaultMove) | ||||
|     bot.pathfinder.setGoal(new GoalFollow(entity, 3), dynamic) | ||||
| } | ||||
|  | ||||
| function hit(blockOrEntity) { | ||||
|     bot.chat(`hitting ${entity.name || entity.type}`) | ||||
| } | ||||
|  | ||||
| function stop() { | ||||
|     bot.pathfinder.setGoal(null) | ||||
|     bot.stopDigging() | ||||
| } | ||||
|  | ||||
| const load = (config) => { | ||||
|     cfg = config | ||||
|     bot = cfg.bot | ||||
|     cfg.move = { | ||||
|         // auto: true, | ||||
|         canDig: false, | ||||
|         // list: ["hello", "wassup"], | ||||
|         quiet: !!cfg.quiet, | ||||
|         movements: [] | ||||
|     } | ||||
|  | ||||
|     pathfinder = bot.pathfinder || bot.loadPlugin(require('mineflayer-pathfinder').pathfinder) | ||||
|  | ||||
|     // initMoves(bot, mcData) | ||||
|     setTimeout(initMoves, 500, bot) | ||||
|  | ||||
|     // bot.loadPlugin(pathfinder) | ||||
|  | ||||
|     // bot.on('time', hello) | ||||
|  | ||||
| } | ||||
|  | ||||
| const unload = () => { | ||||
|     // TODO stop pathfinding maybe? | ||||
| } | ||||
|  | ||||
| module.exports = { load, unload, stop, initMoves, moveNear, follow } | ||||
		Reference in New Issue
	
	Block a user