← back to browse
goat command

restart

No description

0
views
0
likes
0
installs
raw source
const fs = require("fs-extra");

module.exports = {
	config: {
		name: "restart",
		version: "1.1",
		author: "π“†©π‘…π‘œπ’·π’Ύπ“ƒπ“†ͺ π’œπ“π’Ύ",
		countDown: 5,
		role: 2,
		description: {
			vi: "Khởi Δ‘α»™ng lαΊ‘i bot",
			en: "Restart bot"
		},
		category: "Owner",
		guide: {
			vi: "   {pn}: Khởi Δ‘α»™ng lαΊ‘i bot",
			en: "   {pn}: Restart bot"
		}
	},

	langs: {
		vi: {
			restartting: "πŸ”„ | Đang khởi Δ‘α»™ng lαΊ‘i bot..."
		},
		en: {
			restartting: "πŸ”„ | Restarting bot..."
		},
		tl: {
			restartting: "πŸ”„ | Nire-restart ang bot..."
		},
		hi: {
			restartting: "πŸ”„ | Bot restart ho raha hai..."
		},
		ar: {
			restartting: "πŸ”„ | جارٍ Ψ₯ΨΉΨ§Ψ―Ψ© ΨͺΨ΄ΨΊΩŠΩ„ Ψ§Ω„Ψ¨ΩˆΨͺ..."
		},
		bn: {
			restartting: "πŸ”„ | Bot ΰ¦ͺুনরায় চালু ΰ¦Ήΰ¦šΰ§ΰ¦›ΰ§‡..."
		}
	},

	onLoad: function ({ api }) {
		const pathFile = `${__dirname}/tmp/restart.txt`;
		if (fs.existsSync(pathFile)) {
			const [tid, time] = fs.readFileSync(pathFile, "utf-8").split(" ");
			api.sendMessage(`βœ… | Bot restarted\n⏰ | Time: ${(Date.now() - time) / 1000}s`, tid);
			fs.unlinkSync(pathFile);
		}
	},

	onStart: async function ({ api, message, event, getLang }) {
		const pathFile = `${__dirname}/tmp/restart.txt`;
		fs.writeFileSync(pathFile, `${event.threadID} ${Date.now()}`);

		const steps = [
			"[β–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘] 20%",
			"[β–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘] 40%",
			"[β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘] 70%",
			"[β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ] 100%"
		];

		let progressMessage;
		try {
			progressMessage = await new Promise((resolve, reject) => {
				api.sendMessage(steps[0], event.threadID, (err, info) => {
					if (err) return reject(err);
					resolve(info);
				}, event.messageID);
			});

			for (const step of steps.slice(1)) {
				await new Promise(resolve => setTimeout(resolve, 800));
				if (typeof api.editMessage === "function" && progressMessage?.messageID)
					await api.editMessage(step, progressMessage.messageID);
			}

			await new Promise(resolve => setTimeout(resolve, 800));
			if (typeof api.editMessage === "function" && progressMessage?.messageID)
				await api.editMessage(`πŸ”„ | ${getLang("restartting")}\n${steps[3]}`, progressMessage.messageID);
		} catch (err) {
			logRestartError(err);
			await message.reply(getLang("restartting"));
		}

		// index.js restarts Robin.js when it exits with code 2.
		process.exit(2);
	}
};

function logRestartError(error) {
	console.error("Restart progress error:", error?.message || error);
}

View raw file