← back to browse
goat command

prefix

๐Ÿ› ๏ธ ๐‚๐ก๐š๐ง๐ ๐ž ๐ญ๐ก๐ž ๐›๐จ๐ญ ๐ฉ๐ซ๐ž๐Ÿ๐ข๐ฑ ๐ข๐ง ๐ฒ๐จ๐ฎ๐ซ ๐œ๐ก๐š๐ญ ๐›๐จ๐ฑ ๐จ๐ซ ๐ญ๐ก๐ž ๐ž๐ง๐ญ๐ข๐ซ๐ž ๐ฌ๐ฒ๐ฌ๐ญ๐ž๐ฆ

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

module.exports = {
	config: {
		name: "prefix",
		version: "1.5",
		author: "๐Œ๐š๐ซ๐ฎ๐…",
		countDown: 5,
		role: 0,
		description: "๐Ÿ› ๏ธ ๐‚๐ก๐š๐ง๐ ๐ž ๐ญ๐ก๐ž ๐›๐จ๐ญ ๐ฉ๐ซ๐ž๐Ÿ๐ข๐ฑ ๐ข๐ง ๐ฒ๐จ๐ฎ๐ซ ๐œ๐ก๐š๐ญ ๐›๐จ๐ฑ ๐จ๐ซ ๐ญ๐ก๐ž ๐ž๐ง๐ญ๐ข๐ซ๐ž ๐ฌ๐ฒ๐ฌ๐ญ๐ž๐ฆ",
		category: "โš™๏ธ ๐‚๐ก๐š๐ง๐ ๐ž ๐ญ๐ก๐ž ๐ฉ๐ซ๐ž๐Ÿ๐ข๐ฑ",
		guide: {
			en:
				"โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\n"
				+ "๐Ÿ“Œ {pn} <new prefix>: ๐‚๐ก๐š๐ง๐ ๐ž ๐ญ๐ก๐ž ๐ฉ๐ซ๐ž๐Ÿ๐ข๐ฑ ๐ข๐ง ๐ฒ๐จ๐ฎ๐ซ ๐œ๐ก๐š๐ญ ๐›๐จ๐ฑ\n"
				+ "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\n"
				+ "๐Ÿ“ ๐„๐ฑ๐š๐ฆ๐ฉ๐ฅ๐ž:\n"
				+ "๐Ÿ”น {pn} #\n"
				+ "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\n"
				+ "๐Ÿ“Œ {pn} <new prefix> -g: ๐‚๐ก๐š๐ง๐ ๐ž ๐ญ๐ก๐ž ๐ฉ๐ซ๐ž๐Ÿ๐ข๐ฑ ๐ข๐ง ๐ญ๐ก๐ž ๐ž๐ง๐ญ๐ข๐ซ๐ž ๐ฌ๐ฒ๐ฌ๐ญ๐ž๐ฆ (๐จ๐ง๐ฅ๐ฒ ๐›๐จ๐ญ ๐š๐๐ฆ๐ข๐ง)\n"
				+ "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\n"
				+ "๐Ÿ“ ๐„๐ฑ๐š๐ฆ๐ฉ๐ฅ๐ž:\n"
				+ "๐Ÿ”น {pn} # -g\n"
				+ "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\n"
				+ "๐Ÿ› ๏ธ {pn} reset: ๐‘๐ž๐ฌ๐ž๐ญ ๐ฒ๐จ๐ฎ๐ซ ๐œ๐ก๐š๐ญ ๐›๐จ๐ฑ ๐ฉ๐ซ๐ž๐Ÿ๐ข๐ฑ ๐ญ๐จ ๐๐ž๐Ÿ๐š๐ฎ๐ฅ๐ญ\n"
				+ "โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”"
		}
	},

	langs: {
		en: {
			reset:
				"| โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n"
				+ "| โ”‚ โœ… ๐˜๐จ๐ฎ๐ซ ๐ฉ๐ซ๐ž๐Ÿ๐ข๐ฑ ๐ก๐š๐ฌ ๐›๐ž๐ž๐ง ๐ซ๐ž๐ฌ๐ž๐ญ ๐ญ๐จ ๐๐ž๐Ÿ๐š๐ฎ๐ฅ๐ญ: %1\n"
				+ "| โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€",

			onlyAdmin:
				"| โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n"
				+ "| โ”‚ โš ๏ธ ๐Ž๐ง๐ฅ๐ฒ ๐š๐๐ฆ๐ข๐ง ๐œ๐š๐ง ๐œ๐ก๐š๐ง๐ ๐ž ๐ญ๐ก๐ž ๐ฌ๐ฒ๐ฌ๐ญ๐ž๐ฆ ๐ฉ๐ซ๐ž๐Ÿ๐ข๐ฑ!\n"
				+ "| โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€",

			confirmGlobal:
				"| โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n"
				+ "| โ”‚ ๐Ÿ”„ ๐๐ฅ๐ž๐š๐ฌ๐ž ๐ซ๐ž๐š๐œ๐ญ ๐ญ๐จ ๐ญ๐ก๐ข๐ฌ ๐ฆ๐ž๐ฌ๐ฌ๐š๐ ๐ž ๐ญ๐จ ๐œ๐จ๐ง๐Ÿ๐ข๐ซ๐ฆ ๐œ๐ก๐š๐ง๐ ๐ข๐ง๐  ๐ญ๐ก๐ž ๐ฌ๐ฒ๐ฌ๐ญ๐ž๐ฆ ๐ฉ๐ซ๐ž๐Ÿ๐ข๐ฑ.\n"
				+ "| โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€",

			confirmThisThread:
				"| โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n"
				+ "| โ”‚ ๐Ÿ”„ ๐๐ฅ๐ž๐š๐ฌ๐ž ๐ซ๐ž๐š๐œ๐ญ ๐ญ๐จ ๐ญ๐ก๐ข๐ฌ ๐ฆ๐ž๐ฌ๐ฌ๐š๐ ๐ž ๐ญ๐จ ๐œ๐จ๐ง๐Ÿ๐ข๐ซ๐ฆ ๐œ๐ก๐š๐ง๐ ๐ข๐ง๐  ๐ญ๐ก๐ž ๐ฉ๐ซ๐ž๐Ÿ๐ข๐ฑ.\n"
				+ "| โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€",

			successGlobal:
				"| โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n"
				+ "| โ”‚ โœ… ๐’๐ฒ๐ฌ๐ญ๐ž๐ฆ ๐ฉ๐ซ๐ž๐Ÿ๐ข๐ฑ ๐ก๐š๐ฌ ๐›๐ž๐ž๐ง ๐œ๐ก๐š๐ง๐ ๐ž๐ ๐ญ๐จ: %1\n"
				+ "| โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€",

			successThisThread:
				"| โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n"
				+ "| โ”‚ โœ… ๐‚๐ก๐š๐ญ ๐ ๐ซ๐จ๐ฎ๐ฉ ๐ฉ๐ซ๐ž๐Ÿ๐ข๐ฑ ๐ก๐š๐ฌ ๐›๐ž๐ž๐ง ๐œ๐ก๐š๐ง๐ ๐ž๐ ๐ญ๐จ: %1\n"
				+ "| โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€",

			myPrefix:
				"| โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€\n"
				+ "| โ”‚ ๐Ÿ“ง ๐’๐ฒ๐ฌ๐ญ๐ž๐ฆ ๐๐ซ๐ž๐Ÿ๐ข๐ฑ: %1\n"
				+ "| โ”‚ ๐Ÿ’Œ ๐˜๐จ๐ฎ๐ซ ๐†๐ซ๐จ๐ฎ๐ฉ ๐๐ซ๐ž๐Ÿ๐ข๐ฑ: %2\n"
				+ "| โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€"
		}
	},

	onStart: async function ({
		message,
		role,
		args,
		commandName,
		event,
		threadsData,
		getLang
	}) {
		const body = (event.body || "").trim().toLowerCase();

		if (body === "prefix") return;

		if (!args[0]) {
			return message.reply(
				getLang(
					"myPrefix",
					global.GoatBot.config.prefix,
					utils.getPrefix(event.threadID)
				)
			);
		}

		if (args[0].toLowerCase() === "reset") {
			await threadsData.set(
				event.threadID,
				null,
				"data.prefix"
			);

			return message.reply(
				getLang(
					"reset",
					global.GoatBot.config.prefix
				)
			);
		}

		const newPrefix = args[0];

		const formSet = {
			commandName,
			author: event.senderID,
			newPrefix,
			setGlobal: args[1] === "-g"
		};

		if (formSet.setGlobal && role < 2) {
			return message.reply(
				getLang("onlyAdmin")
			);
		}

		const confirmMessage = formSet.setGlobal
			? getLang("confirmGlobal")
			: getLang("confirmThisThread");

		return message.reply(
			confirmMessage,
			(err, info) => {
				if (err) return;

				formSet.messageID = info.messageID;

				global.GoatBot.onReaction.set(
					info.messageID,
					formSet
				);
			}
		);
	},

	onChat: async function ({
		message,
		event,
		getLang
	}) {
		const body = (event.body || "").trim().toLowerCase();

		if (body !== "prefix") return;

		return message.reply(
			getLang(
				"myPrefix",
				global.GoatBot.config.prefix,
				utils.getPrefix(event.threadID)
			)
		);
	},

	onReaction: async function ({
		message,
		threadsData,
		event,
		Reaction,
		getLang
	}) {
		const {
			author,
			newPrefix,
			setGlobal
		} = Reaction;

		if (event.userID !== author) return;

		if (setGlobal) {
			global.GoatBot.config.prefix = newPrefix;

			fs.writeFileSync(
				global.client.dirConfig,
				JSON.stringify(
					global.GoatBot.config,
					null,
					2
				)
			);

			return message.reply(
				getLang(
					"successGlobal",
					newPrefix
				)
			);
		}

		await threadsData.set(
			event.threadID,
			newPrefix,
			"data.prefix"
		);

		return message.reply(
			getLang(
				"successThisThread",
				newPrefix
			)
		);
	}
};

View raw file