feat: add a basic feature to rejoin on server restart
This commit is contained in:
		
							
								
								
									
										29
									
								
								lib/index.js
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								lib/index.js
									
									
									
									
									
								
							| @@ -9,19 +9,22 @@ let cfg = { | ||||
| const mineflayer = require("mineflayer"); | ||||
| // const { createGetAccessor } = require('typescript'); | ||||
|  | ||||
| const bot = | ||||
|     !isNaN(parseInt(process.argv[3])) && parseInt(process.argv[3]) > 1e2 ? | ||||
|         mineflayer.createBot({ | ||||
|             host: process.argv[2] || process.env.MINECRAFT_HOST || env.MINECRAFT_HOST || 'localhost',  // Change this to the ip you want. | ||||
|             port: parseInt(process.argv[3]) || process.env.MINECRAFT_PORT || env.MINECRAFT_PORT // || 58471, | ||||
|         }) | ||||
|         : | ||||
|         mineflayer.createBot({ | ||||
|             host: process.argv[2] || process.env.MINECRAFT_HOST || env.MINECRAFT_HOST || 'localhost',  // Change this to the ip you want. | ||||
|             username: process.argv[3] || process.env.MINECRAFT_USER || env.MINECRAFT_USER, | ||||
|             password: process.argv[4] || process.env.MINECRAFT_PASS || env.MINECRAFT_PASS, | ||||
|             // port: process.argv[5] || process.env.MINECRAFT_PORT || 58471, | ||||
|         }) | ||||
| const options = !isNaN(parseInt(process.argv[3])) && parseInt(process.argv[3]) > 1e2 ? | ||||
|     { | ||||
|         host: process.argv[2] || process.env.MINECRAFT_HOST || env.MINECRAFT_HOST || 'localhost',  // Change this to the ip you want. | ||||
|         port: parseInt(process.argv[3]) || process.env.MINECRAFT_PORT || env.MINECRAFT_PORT // || 58471, | ||||
|     } | ||||
|     : | ||||
|     { | ||||
|         host: process.argv[2] || process.env.MINECRAFT_HOST || env.MINECRAFT_HOST || 'localhost',  // Change this to the ip you want. | ||||
|         username: process.argv[3] || process.env.MINECRAFT_USER || env.MINECRAFT_USER, | ||||
|         password: process.argv[4] || process.env.MINECRAFT_PASS || env.MINECRAFT_PASS, | ||||
|         // port: process.argv[5] || process.env.MINECRAFT_PORT || 58471, | ||||
|     } | ||||
|  | ||||
| const bot = mineflayer.createBot(options) | ||||
|  | ||||
| cfg.botOptions = options | ||||
|  | ||||
|  | ||||
| let plugins = {} | ||||
|   | ||||
| @@ -46,7 +46,17 @@ const events = { | ||||
|         } | ||||
|     } | ||||
|     , chat: command | ||||
|     , kicked: (reason, loggedIn) => console.warn(reason, loggedIn) | ||||
|     , kicked: function rejoin(reason, loggedIn) { | ||||
|         console.warn(reason, loggedIn && "logged_in") | ||||
|         if (reason.extra && reason.extra[0].text === "Server closed") { | ||||
|             bot.quit() | ||||
|             bot.end() | ||||
|             // TODO implement all startup features (maybe refactor all into a single function / module?) | ||||
|             setTimeout((bot, cfg) => { | ||||
|                 bot = mineflayer.createBot(cfg.botOptions) | ||||
|             }, 15 * 60 * 1000, bot, cfg); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| const events_registered = [] | ||||
|   | ||||
		Reference in New Issue
	
	Block a user