A pretty crappy example and a load of bug fixes

Much more stable permission management
This commit is contained in:
hydrabolt
2015-10-26 18:43:49 +00:00
parent af18e833f9
commit 7dea4b9e9c
5 changed files with 209 additions and 60 deletions

101
examples/adminbot.js Normal file
View File

@@ -0,0 +1,101 @@
/*
this bot is a permissions bot and is currently working
with the experimental additions. Some functions may
change in the future.
*/
var Discord = require("../");
// Get the email and password
var AuthDetails = require("./auth.json");
var bot = new Discord.Client();
bot.on("ready", function () {
console.log("Ready to begin! Serving in " + bot.channels.length + " channels");
});
bot.on("disconnected", function () {
console.log("Disconnected!");
process.exit(1); //exit node.js with an error
});
bot.on("message", function (msg) {
if (msg.content === "skype") {
//stop the user from speaking in the channel:
bot.overwritePermissions(msg.channel, msg.sender, {
sendMessages : false
});
// send a barely funny message ;)
bot.reply(msg, "how dare you mention that!");
}
if (msg.content === "discord") {
// see if there is a permission called 'good people' in the server already
var found = false;
for(var role of msg.channel.server.roles){
if(role.name === "good people"){
found = role;
break;
}
}
// if the role doesn't exist, make it
if(!found){
bot.createRole(msg.channel.server, {
name : "good people",
color : Discord.Colors.BLUE, // colour of blue
hoist : true // make a seperate category in the users list
}).then(addUserToList);
}else{
addUserToList(role);
}
function addUserToList(role){
bot.addMemberToRole(msg.sender, role);
bot.reply(msg, "welcome to the good people!");
}
}
if( msg.content === "remove me" ){
// remove the user from the good people list, if it exists
var found = false;
for(var role of msg.channel.server.roles){
if(role.name === "good people"){
found = role;
break;
}
}
if(found){
// if the role exists
if( msg.sender.hasRole(role) ){
// remove the member from the role
bot.removeMemberFromRole(msg.sender, role);
bot.reply(msg, "removed!")
}else{
bot.reply(msg, "you're not in the role!");
}
}else{
// role doesn't exist
bot.reply(msg, "the role doesn't even exist!");
}
}
});
bot.login("riftes@outlook.com", "bananaman");