@discript/discord.easy
Version:
Super simple language for Discord bots
71 lines (57 loc) • 1.76 kB
JavaScript
// 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 };