UNPKG

@discript/discord.easy

Version:

Super simple language for Discord bots

71 lines (57 loc) 1.76 kB
// compiler/compiler.js function compile(dscCode) { const lines = dscCode.split('\n').map(l => l.trim()).filter(l => l && !l.startsWith('#')); let token = ''; let code = ` const { Client, GatewayIntentBits } = require("discord.js"); const client = new Client({ intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent] }); client.on("ready", () => { console.log(\`Logged in as \${client.user.tag}\`); }); `; let insideMessage = false; for (let line of lines) { if (line.startsWith("token:")) { token = line.split("token:")[1].trim().replace(/"/g, ''); } else if (line === "on message:") { insideMessage = true; code += ` client.on("messageCreate", (message) => {`; } else if (line === "on join:") { code += ` client.on("guildMemberAdd", (member) => { const channel = member.guild.systemChannel; if (channel) channel.send("Welcome to the server!"); });`; } else if (line.startsWith("on command")) { const cmd = line.match(/"(.+?)"/)[1]; code += ` client.on("messageCreate", (message) => { if (message.content === "!${cmd}") { message.reply("Pong!"); } });`; } else if (insideMessage && line.startsWith("if message = ")) { const value = line.split('=')[1].trim().replace(/"/g, ''); code += ` if (message.content === "${value}") {`; } else if (line.startsWith("reply ")) { const text = line.split("reply ")[1].replace(/"/g, ''); code += `\n message.reply("${text}");`; } else if (line === "") { code += "\n}"; } } if (insideMessage) { code += "\n});"; } code += `\nclient.login("${token}");`; return code; } module.exports = { compile };