Skip to content

Instantly share code, notes, and snippets.

@DRSchlaubi
Created May 8, 2017 15:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DRSchlaubi/d947b998ccc8194dbc95f3b0d297599c to your computer and use it in GitHub Desktop.
Save DRSchlaubi/d947b998ccc8194dbc95f3b0d297599c to your computer and use it in GitHub Desktop.
EnvoysOfTheEnd Bot
//Game
var game = "https://envoysoftheend.tk";
script.on ("connected", function()
{
discord.send(3, '{"idle_since":0,"game":{"type":0,"name":"' + game + '"}}');
}).on("load", function()
{
script.fireEvent("connected")
});
//Join Messaage
script.on("USER_JOIN", function(m)
{
channel = discord.getGuild("259782448819208192").getChannel("260035889877483521");
channel.sendTyping().sendMessage("Herzlich Willkommen " + m.user.getHandle() + " auf dem EnvoysOfTheEnd Discord");
});
//Leave Message
script.on("USER_REMOVE", function(m)
{
channel = channel = discord.getGuild("259782448819208192").getChannel("260035889877483521");
channel.sendTyping().sendMessage("Leider hat und **"+ m.user.getTag() + "** verlassen");
});
// Privileged Roles:
var roles = ["Owner", "Administrator", "Moderator"];
script.on("MESSAGE_CREATE", function(msg)
{
//Don't handle own messages
if(msg.author == discord.user)
{
return;
}
//Define Variables
var cont = msg.content.toLowerCase().trim(),
channel = msg.getChannel();
if(cont == "+test")
{
msg.delete();
mymsg = channel.sendTyping.sendMessage("TEST1234BEEPBOOP HOERTIHRMICH?!?!?! <@245947357588357120>");
script.timeout(function(){ mymsg.delete(); }, 5000);
}
// Find out if member is privileged
var hasperm = false;
if(!channel.is_private)
{
script.each(channel.getGuild().getMember(msg.author).roles, function(role)
{
script.each(roles, function(name)
{
if(role.name == name)
{
hasperm = true;
}
});
});
}
if(cont.substr(0, 6) == "+mute ")
{
channel.sendTyping();
msg.delete();
if(hasperm)
{
var secs = parseInt(cont.substr(6).split(" ")[0]), msgs = [];
if(isNaN(secs))
{
secs = 0;
}
if(secs > 600)
{
msgs.push(channel.sendMessage(":warning: Wenn du jemanden fuer laenger als 10 Minuten muten willst nutze `+mute <name>`.").id);
} else
{
script.each(msg.mentions, function(mention)
{
if(secs == 0)
{
msgs.push(channel.sendMessage(":thumbsup: " + mention.getHandle() + " wurde in " + channel.getHandle() + " gemuted.").id);
} else
{
msgs.push(channel.sendMessage(":thumbsup: " + mention.getHandle() + " wurde fuer **" + secs + "** Sekunden" + (secs == 1 ? "" : "s") +" in " + channel.getHandle() + " gemuted.").id);
}
var overwrite = channel.getOverwrite(mention);
if(overwrite == null)
{
overwrite = discord.createOverwrite().setUser(mention);
}
overwrite.deny(permission.SEND_MESSAGES);
channel.overwritePermissions(overwrite);
if(secs != 0)
{
script.timeout(function()
{
overwrite.deny(-permission.SEND_MESSAGES);
channel.overwritePermissions(overwrite);
}, (secs * 1000));
}
});
}
script.timeout(function()
{
channel.deleteMessages(msgs);
}, 5000);
}
} else if(cont.substr(0 ,4) == "+kys")
{
var msgs = [];
script.each(msg.mentions, function(mention)
{
msg.delete();
channel.sendTyping().sendMessage("```\n __________\n | |\n | 0 <-- " + msg.mentions[0].username + "\n | /|\\ \n | / \\ \n |\n |```\n Kill Your Self ` " + msg.mentions[0].username + "` \n http://ropestore.org/?u=" + msg.mentions[0].username);
});
} else if(cont.substr(0, 8) == "+unmute ")
{
channel.sendTyping();
msg.delete();
if(hasperm)
{
var msgs = [];
script.each(msg.mentions, function(mention)
{
msgs.push(channel.sendMessage(":thumbsup: " + mention.getHandle() + " ist in " + channel.getHandle() + " nicht mehr gemuted.").id);
var overwrite = channel.getOverwrite(mention);
if(overwrite == null)
{
overwrite = discord.createOverwrite().setUser(mention);
}
overwrite.deny(-permission.SEND_MESSAGES);
channel.overwritePermissions(overwrite);
});
script.timeout(function()
{
channel.deleteMessages(msgs);
}, 5000);
}
}
else if(cont == "+explode" || cont.substr(0, 9) == "+explode ")
{
channel.sendTyping();
if(!hasperm && cont.substr(0, 9) == "+explode ")
{
mymsg = channel.sendMessage(":warning: Du hast keine Rechte fuer `+explode <id>`.");
script.timeout(function()
{
mymsg.delete();
}, 5000);
return;
}
var delmsg = mymsg = null;
if(cont.substr(0, 9) == "+explode ")
{
msg.delete();
delmsg = channel.getMessage(cont.substr(9));
if(delmsg != null)
{
delmsg = delmsg.id;
}
} else
{
delmsg = msg.id;
}
if(delmsg == null)
{
mymsg = channel.sendMessage(":warning: `" + cont.substr(9) + "` wurde in " + channel.getHandle() + " nicht gefunden");
script.timeout(function()
{
mymsg.delete();
}, 5000);
} else
{
mymsg = channel.sendMessage("Nachricht **" + delmsg + "** explodiert in `5`...");
script.timeout(function()
{
mymsg.edit("Nachricht **" + delmsg + "** explodiert in `4`...");
script.timeout(function()
{
mymsg.edit("Nachricht **" + delmsg + "** explodiert in `3`...");
script.timeout(function()
{
mymsg.edit("Nachricht **" + delmsg + "** explodiert in `2`...");
script.timeout(function()
{
mymsg.edit("Nachricht **" + delmsg + "** explodiert in `1`...");
script.timeout(function()
{
mymsg.edit(":boom: :boom: EXPLOSION :boom: :boom:");
script.timeout(function()
{
channel.deleteMessages([delmsg, mymsg.id]);
}, 1000);
}, 1000);
}, 1000);
}, 1000);
}, 1000);
}, 1000);
}
} else if(cont.substr(0, 7) == "+clear ")
{
channel.sendTyping();
var count = parseInt(cont.substr(7)), mymsg;
if(!hasperm)
{
msg.delete();
mymsg = channel.sendMessage(":warning: Du hast keine Rechte fuer `+clear <count>`.");
} else if(count < 1)
{
msg.delete();
mymsg = channel.sendMessage(":warning: Du kannst nicht `0` Nachrichten loeschen.");
} else if(count == 1)
{
msg.delete();
mymsg = channel.sendMessage(":new: BRAKKING NEWS :new:" + msg.author.getHandle() + " ist zu Faul um eine Nachricht zu löschen.");
} else
{
var deleted = 0;
count++;
while(count > 0)
{
var reading = 100;
if(count < 100)
{
reading = count;
}
var deletemsgs = [];
script.each(channel.getMessages(reading), function(msg)
{
deletemsgs.push(msg.id);
});
channel.deleteMessages(deletemsgs);
count -= reading;
deleted += reading;
}
mymsg = channel.sendMessage(":thumbsup: **" + deleted + "** Nachrichten Gelöscht.");
} script.timeout(function()
{
mymsg.delete();
}, 5000);
} else if(cont.substr(0, 7) == "+erase ")
{
channel.sendTyping();
var count = parseInt(cont.substr(7)), mymsg;
msg.delete();
if(!hasperm)
{
mymsg = channel.sendMessage(":warning: Only privileged members may use `+erase <count>`.");
} else if(count < 1)
{
mymsg = channel.sendMessage(":warning: Can't delete 0 or less messages.");
} else
{
i = count;
mymsg = channel.sendMessage(":warning: Deleting **" + count + "** messages...");
while(i > 0)
{
var reading = 99;
if(i < 99)
{
reading = i;
}
var deleted = 0;
script.each(channel.getMessages(reading + 1), function(msg)
{
if(msg.id != mymsg.id)
{
msg.delete();
i--;
deleted++;
}
});
if(deleted == 0)
{
i = 0;
} else
{
mymsg.edit(":warning: Deleting **" + i + "** messages...");
}
}
mymsg.edit(":thumbsup: Manually deleted a whopping **" + count + "** messages.");
}
script.timeout(function()
{
mymsg.delete();
}, 5000);
//Invite Command
} else if(cont == "+invite")
{
msg.delete();
mymsg = channel.sendTyping().sendMessage(msg.author.getHandle() + ": Lade Freunde auf unseren Discord ein: https://discord.io/eote");
script.timeout(function(){ mymsg.delete(); }, 5000);
//projects command
} else if(cont == "+projects")
{
msg.delete();
mymsg = channel.sendTyping().sendMessage(msg.author.getHandle() + ": Unsere neusten Projekte findest du hier: https://envoysoftheend.tk/category/1/ank%C3%BCndigungen");
script.timeout(function(){ mymsg.delete(); }, 5000);
//help command
} else if(cont == "+help")
{
if(hasperm)
{
if(!channel.is_private)
{
msg.delete();
channel = msg.author.getDMChannel();
}
channel.sendTyping().sendMessage(discord.createEmbed()
.setColor(0xF57C00)
.setTitle("EnvoysOfTheEnd Help")
.setURL("https://envoysoftheend.tk")
.addField("Info-Commands", "`+projects`, `+forum`, `+version`, `+team`, `+invite`, `+explode` und `+help`", false)
.addField("Moderations-Commands", "`+mute <user>`, `+unmute <user>`, `+clear <count>` und `+explode <id>`",false)
.setFooter("EnvoysOfTheEnd, script.js, by Schlabi")
);
channel = msg.getChannel();
mymsg = channel.sendMessage(msg.author.getHandle() + ", Ich habe dir eine DM geschickt")
script.timeout(function(){ mymsg.delete(); }, 5000);
} else {
if(!channel.is_private)
{
msg.delete();
channel = msg.author.getDMChannel();
}
channel.sendTyping().sendMessage(discord.createEmbed()
.setColor(0xF57C00)
.setTitle("EnvoysOfTheEnd Help")
.setURL("https://envoysoftheend.tk")
.addField("Info-Commands", "`+projects`, `+forum`, `+team`, `+invite`, `+version`, `+explode` und `+help`", false)
.setFooter("EnvoysOfTheEnd, script.js, by Schlabi")
);
channel = msg.getChannel();
mymsg = channel.sendMessage(msg.author.getHandle() + ", Ich habe dir eine DM Geschickt");
script.timeout(function(){ mymsg.delete(); }, 5000);
}
//Team Command
} else if(cont == "+team")
{
if(!channel.is_private)
{
msg.delete();
mymsg = channel.sendTyping().sendMessage(discord.createEmbed()
.setColor(0XF57C00)
.setTitle("EnvoysOfTheEnd Team")
.setURL("https://envoysoftheend.tk")
.addField("Clan-Leitung", "<@!245947357588357120> <@!259782116382998529> <@!269489030096224256>", true)
.addField("Administration", "<@!264048760580079616>", true)
.addField("Moderation", "<@!292699244853198849> <@!270113726215094274> <@!269790574230372352>", true)
.setFooter("EnvoysOfTheEnd, script.js, by Schlaubi")
);
script.timeout(function(){ mymsg.delete(); }, 5000);
} else if(cont == "+forum")
        {
            msg.delete();
            channel.sendTyping().sendMessage(msg.author.getHandle() + ": Unser Forum: https://envoysoftheend.tk");
}
} else if(cont == "+version")
{
msg.delete();
mymsg = channel.sendTyping().sendMessage("`EnvoysOfTheEnd Bot Version 1.2.1 by Schlaubi powered by TimmyRS' SuprDiscordBot` Github https://gist.github.com/DRSchlaubi/d947b998ccc8194dbc95f3b0d297599c");
script.timeout(function(){ mymsg.delete(); }, 5000);
}
}).on("MESSAGE_UPDATE", function(msg)
{
// Also handle updated messages.
if(msg.content != null)
{
script.fireEvent("MESSAGE_CREATE", msg);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment