Advertisement
Guest User

Untitled

a guest
Mar 21st, 2018
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.28 KB | None | 0 0
  1. const Discord = require('discord.js');
  2. const bot = new Discord.Client();
  3. const prefix = "!"
  4.  
  5. bot.on("ready", function() {
  6. console.log(`${bot.user.username} is online!`);
  7. });
  8.  
  9. bot.on("guildMemberAdd", function(member) {
  10. let welcomeChannel = member.guild.channels.find("name", "welcome");
  11. let otherChannel = member.guild.channels.find("name", "management-logs");
  12.  
  13. welcomeChannel.send(member.toString() + ", Welcome to the Weazel News App! Please use the command !interview to state your intent for being in this discord server. When finished, please set your nickname to your In-Character name via !nick. Thank you!");
  14. otherChannel.send(member.toString() + " has joined the Weazel News discord server.");
  15. });
  16.  
  17. bot.on("message", function(message) {
  18. if (message.author.equals(bot.user)) return;
  19.  
  20. if (!message.content.startsWith(prefix)) return;
  21.  
  22. let args = message.content.split(' ').slice(1);
  23.  
  24. let logsChannel = message.guild.channels.find(`name`, "management-logs");
  25.  
  26. switch (args[0].toLowerCase()) {
  27. case "clear":
  28. if(!message.member.hasPermission("MANAGE_MESSAGES")) return message.reply("**ERROR:** You must be a management rank in Weazel News to use this command!");
  29. if(!args[0]) return message.channel.send("**ERROR:** You must provide an amount of messages to clear!")
  30. message.channel.bulkDelete(args[1]).then(() => {
  31. message.channel.send(`*Cleared ${args[1]} messages.*`).then(msg => msg.delete(5000));
  32. });
  33. break;
  34. case "nick":
  35. let nickName = args.slice(1).join(" ");
  36. message.delete();
  37. message.member.setNickname(nickName);
  38.  
  39. message.channel.send(`Your nickname has been changed to ${nickName}!`).then(msg => msg.delete(5000));
  40. break;
  41. case "interview":
  42. let iMember = message.guild.member(message.author);
  43. let iRole = message.guild.roles.find(`name`, `Interviewee`);
  44. iMember.addRole(iRole.id);
  45. message.delete();
  46. let interviewEmbed = new Discord.RichEmbed()
  47. .setTitle("Weazel News Management")
  48. .setDescription(`**Dear ${iMember},**\n\nThank you for joining the Weazel News Social App. We see you are here for a job interview, and are happy to have you! Please contact someone on our management team whenever you can and let them know you are available for an interview. Please also change your nickname to your IC name.\n\n**Thank you,**\n***Weazel News Representative***`)
  49. .setColor(0xa93eff)
  50. .setThumbnail("https://i.imgur.com/PuU7Bdm.png?1")
  51. .setFooter("Weazel News", "https://i.imgur.com/6auXW1B.png")
  52.  
  53. try{
  54. message.author.send(interviewEmbed)
  55. logsChannel.send(interviewEmbed)
  56. message.channel.send("An email has been sent to you! (Check your PMs).").then(msg => msg.delete(5000));
  57. }catch(e){
  58. message.reply("Your email address (private messages) are locked, therefore I cannot send you the nessecary email. Please unlock your PMs.");
  59. }
  60. break;
  61. case "hire":
  62. if(!message.member.hasPermission("MANAGE_MEMBERS")) return message.channel.send("**ERROR:** You must be a manager of Weazel News for this command.");
  63. let hMember = message.guild.member(message.mentions.users.first());
  64. let hhMember = message.guild.member(message.mentions.users.first()).displayName;
  65. let hRole = message.guild.roles.find(`name`, `Intern`)
  66. hMember.addRole(hRole.id)
  67. message.delete();
  68. let hireEmbed = new Discord.RichEmbed()
  69. .setTitle("Weazel News Management")
  70. .setDescription(`**Congratulations ${hhMember},**\n\nYou have been accepted into the Weazel News team as an **Intern.** Please read #faq-help and #announcements. If you have any questions, feel free to ask!\n\n**Kind Regards,**\n***Weazel News Representative***`)
  71. .setColor(0xa93eff)
  72. .setThumbnail("https://i.imgur.com/PuU7Bdm.png?1")
  73. .setFooter("Weazel News", "https://i.imgur.com/6auXW1B.png")
  74.  
  75. try{
  76. hMember.send(hireEmbed)
  77. logsChannel.send(hireEmbed)
  78. message.channel.send("An email was sent to the new employee.").then(msg => msg.delete(5000));
  79. }catch(e){
  80. message.reply("Their PM's are locked. Send them the hire email maunally.");
  81. }
  82. break;
  83. case "fire":
  84. if(!message.member.hasPermission("MANAGE_MEMBERS")) return message.channel.send("**ERROR:** You must be a manager of Weazel News for this command.");
  85. let fMember = message.guild.member(message.mentions.users.first());
  86. let ffMember = message.guild.member(message.mentions.users.first()).displayName;
  87. message.delete();
  88. let fireEmbed = new Discord.RichEmbed()
  89. .setTitle("Weazel News Management")
  90. .setDescription(`**Dear ${ffMember},**\n\nYour employment with Weazel News has been **terminated.** This can be for many reasons. If you have any questions as to of why your employment has been terminated, feel free to contact a manager at Weazel News.\n\n**Kind Regards,**\n***Weazel News Representative***`)
  91. .setColor(0xa93eff)
  92. .setThumbnail("https://i.imgur.com/PuU7Bdm.png?1")
  93. .setFooter("Weazel News", "https://i.imgur.com/6auXW1B.png")
  94.  
  95. try{
  96. fMember.send(fireEmbed);
  97. setTimeout(() => {
  98. message.guild.member(fMember).kick()
  99. }, 1000);
  100. }catch(e){
  101. message.reply("Their PM's are locked, please let them know they were fired manually.");
  102. }
  103. logsChannel.send(fireEmbed)
  104. message.channel.send("An email was sent to the ex-employee.").then(msg => msg.delete(5000));
  105. break;
  106. case "loa":
  107. let loaMember = message.guild.member(message.author);
  108. let wRank = args[1]
  109. let wLoa1 = args[2]
  110. let wLoa2 = args[3]
  111. let wReason = args.slice(4).join(" ");
  112. let loaChannel = message.guild.channels.find(`name`, `leave-of-absence`)
  113. message.delete();
  114. let loaEmbed = new Discord.RichEmbed()
  115. .setTitle("Weazel News Leave of Absence Form")
  116. .addField("Name", message.member.displayName)
  117. .addField("Rank", wRank)
  118. .addField("Date of LOA", wLoa1)
  119. .addField("Date of Return", wLoa2)
  120. .addField("Reason", wReason)
  121. .addField("Signature", message.member.displayName)
  122. .setColor(0xa93eff)
  123. .setThumbnail("https://i.imgur.com/PuU7Bdm.png?1")
  124. .setFooter("Weazel News", "https://i.imgur.com/6auXW1B.png")
  125.  
  126. try{
  127. loaMember.send(loaEmbed);
  128. logsChannel.send(loaEmbed)
  129. loaChannel.send(loaEmbed)
  130. message.channel.send("Your leave of absence has been logged and we've sent you a copy of the form. Thank you!").then(msg => msg.delete(5000));
  131. }catch(e){
  132. message.reply("Your PM's are locked, therefore I cannot send you your own copy of the LOA.")
  133. }
  134. break;
  135. case "loa2":
  136. let loafirstName = args[1]
  137. let loalastName = args[2]
  138. let wwRank = args[3]
  139. let wwLoa1 = args[4]
  140. let wwLoa2 = args[5]
  141. let wwReason = args.slice(6).join(" ");
  142. let loaaChannel = message.guild.channels.find(`name`, `leave-of-absence`)
  143. message.delete();
  144. let loaaEmbed = new Discord.RichEmbed()
  145. .setTitle("Weazel News Leave of Absence Form")
  146. .addField("Name", `${loafirstName} ${loalastName}`)
  147. .addField("Rank", wwRank)
  148. .addField("Date of LOA", wwLoa1)
  149. .addField("Date of Return", wwLoa2)
  150. .addField("Reason", wwReason)
  151. .addField("Signature", `${loafirstName} ${loalastName}`)
  152. .setColor(0xa93eff)
  153. .setThumbnail("https://i.imgur.com/PuU7Bdm.png?1")
  154. .setFooter("Weazel News", "https://i.imgur.com/6auXW1B.png")
  155.  
  156. loaaChannel.send(loaaEmbed);
  157. break;
  158. case "announce":
  159. if(!message.member.hasPermission("MANAGE_MESSAGES")) return message.channel.send("**ERROR:** You must be a manager of Weazel News to access this command.");
  160. let announceMsg = args.join(" ").slice(8);
  161. message.delete();
  162. let announceEmbed = new Discord.RichEmbed()
  163. .setTitle("Official Weazel News Announcement")
  164. .setColor(0xa93eff)
  165. .setDescription(announceMsg)
  166. .setThumbnail("https://i.imgur.com/PuU7Bdm.png?1")
  167. .setFooter("Weazel News", "https://i.imgur.com/6auXW1B.png")
  168.  
  169. let announceChannel = message.guild.channels.find(`name`, "announcements");
  170.  
  171. announceChannel.send(announceEmbed);
  172. break;
  173. case "reject":
  174. message.delete();
  175. let rMember = message.guild.member(message.mentions.users.first());
  176. let rrMember = message.guild.member(message.mentions.users.first()).displayName;
  177. let rejectEmbed = new Discord.RichEmbed()
  178. .setTitle("Weazel News Management")
  179. .setDescription(`**Dear ${rrMember},**\n\nWe'd like to thank you for taking the time to participate in a job interview. Unfortunatley, after discussing your employment with the management team, we've decided not to proceed with your employment. Good luck on your job search!\n\n**Kind Regards,**\n***Weazel News Representative***`)
  180. .setColor(0xa93eff)
  181. .setThumbnail("https://i.imgur.com/PuU7Bdm.png?1")
  182. .setFooter("Weazel News", "https://i.imgur.com/6auXW1B.png")
  183.  
  184. try{
  185. rMember.send(rejectEmbed);
  186. setTimeout(() => {
  187. message.guild.member(rMember).kick()
  188. }, 1000);
  189. }catch(e){
  190. message.reply("Their PM's are locked, please let them know they were fired manually.");
  191. }
  192. logsChannel.send(rejectEmbed)
  193. message.channel.send("An email was sent to the ex-employee.").then(msg => msg.delete(5000));
  194. break;
  195. case "promote":
  196. if(!message.member.hasPermission("MANAGE_MEMBERS")) return message.reply("You must be on the Weazel News management team for that.");
  197. let pMember = message.guild.member(message.mentions.users.first()) || message.guild.members.get(args[0]);
  198. let args = message.content.slice(prefix.length).trim().split(' ');
  199. if(!pMember) return message.reply("Couldn't find that user, yo.");
  200. let role = args[1].join(" ");
  201. if(!role) return message.reply("Specify a role!");
  202. let gRole = message.guild.roles.find(`name`, role);
  203. if(!gRole) return message.reply("Couldn't find that role.");
  204.  
  205. if(rMember.roles.has(gRole.id)) return message.reply("They already have that role.");
  206. await(rMember.addRole(gRole.id));
  207.  
  208. let promoteEmbed = new Discord.RichEmbed()
  209. .setTitle("Weazel News Management")
  210. .setDescription(`**Congratsulations ${pMember.displayName},**\n\nYou have been promoted to ${gRole.name}. Keep up the good work, we appreciate you.\n\n**Kind Regards,**\n***Weazel News Representative***`)
  211. .setColor(0xa93eff)
  212. .setThumbnail("https://i.imgur.com/PuU7Bdm.png?1")
  213. .setFooter("Weazel News", "https://i.imgur.com/6auXW1B.png")
  214.  
  215. try{
  216. pMember.send(promoteEmbed)
  217. message.channel.send(promoteEmbed)
  218. logsChannel.send(promoteEmbed)
  219. }catch(e){
  220. message.channel.send(`Please let that user know they've been promoted as their DMs are locked.`)
  221. } break;
  222. }
  223. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement