gaber-elsayed

Giveaway Bot

Feb 1st, 2020
1,319
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.24 KB | None | 0 0
  1. const token = ""
  2. const Discord = require("discord.js")
  3. const ms = require("ms")
  4. const client = new Discord.Client()
  5. const bot = client
  6. const prefix = "-"
  7. const g = require("discord-giveaways")
  8. const mysql = require("mysql")
  9.  
  10. const config = {
  11. host : "remotemysql.com",
  12. port : "3306",
  13. user : "XGWhnf4Dio",
  14. password : "letOipyqDn",
  15. database : "XGWhnf4Dio"
  16. };
  17. const connection = mysql.createConnection(config)
  18.  
  19. client.on("ready", () => {
  20. console.log("I'm ready !");
  21. g.launch(client, {
  22. updateCountdownEvery: 3000,
  23. botsCanWin: false,
  24. embedColor: "#00FFFF",
  25. reaction: "??"
  26. });
  27. setInterval(function() {
  28. bot.user.setActivity("-help", { type: 'WATCHING' })
  29. .then(()=> {
  30. setTimeout(function() {
  31. bot.user.setActivity("play.galaxyprison.co")
  32. }, 5000);
  33. })
  34. }, 10000);
  35. });
  36.  
  37. bot.on("message", async message => {
  38. const tc = message.guild.channels.find('name', 'ticket-logs')
  39. if (message.author.bot) return
  40. if (!message.content.startsWith(prefix)) return
  41. const args = message.content.split(' ').slice(1);
  42. if (message.content.startsWith("-gcreate")) {
  43. if (!message.member.hasPermission("ADMINISTRATOR")) return message.reply("You dont have permission to run this.")
  44. g.start(message.channel, {
  45. time: ms(args[0]),
  46. prize: args.slice(2).join(" "),
  47. winnersCount: parseInt(args[1]),
  48. messages: {
  49. giveaway: "@everyone\n\n**GIVEAWAY**",
  50. giveawayEnded: "@everyone\n\n**GIVEAWAY ENDED**",
  51. timeRemaining: "Time remaining: **{duration}**!",
  52. inviteToParticipate: "React with ?? to participate!",
  53. winMessage: "Congratulations, {winners}! You won **{prize}**!",
  54. embedFooter: "Giveaways",
  55. noWinner: "Giveaway cancelled, no valid participations.",
  56. winners: "winner(s)",
  57. endedAt: "Ended at",
  58. units: {
  59. seconds: "seconds",
  60. minutes: "minutes",
  61. hours: "hours",
  62. days: "days"
  63. }
  64. }
  65. }).then((gData) => {
  66. console.log(gData); // {...} (messageid, end date and more)
  67. });
  68. }
  69. if(message.content.startsWith("-reroll")){
  70. let messageID = args[0];
  71. g.reroll(messageID).catch((err) => {
  72. message.channel.send("No giveaway found for "+messageID+", please check and try again");
  73. });
  74. }
  75. if (message.content.startsWith("-suggest")) {
  76. if (!args[0]) return message.reply("You need to suggest something")
  77. let embed = new Discord.RichEmbed()
  78. .setTitle("**Suggestion by " + message.author.tag + "**")
  79. .setThumbnail(message.member.displayAvatarURL)
  80. .setDescription(args.join(" "))
  81. .setFooter(`UserID - ${message.author.id}`)
  82. .setTimestamp()
  83. .setColor("#00FF00")
  84. let c = message.guild.channels.get("585937227259838488")
  85. c.send(embed).then((m) => {
  86. m.react("??").then(() => {
  87. m.react("??")
  88. })
  89. })
  90. }
  91. if (message.content.startsWith("-bug")) {
  92. if (!args[0]) return message.reply("You need to report something")
  93. let embed = new Discord.RichEmbed()
  94. .setTitle("**Bug Report by " + message.author.tag + "**")
  95. .setThumbnail(message.member.displayAvatarURL)
  96. .setDescription(args.join(" "))
  97. .setFooter(`UserID - ${message.author.id}`)
  98. .setTimestamp()
  99. .setColor("#FF0000")
  100. let c = message.guild.channels.get("593743028787871774")
  101. c.send(embed).then((m) => {
  102. m.react("?").then(() => {
  103. m.react("?")
  104. })
  105. })
  106. }
  107. if (message.content.startsWith("-announce")) {
  108. if (!message.member.hasPermission("ADMINISTRATOR")) return
  109. const questions = ["What title do you want?", "What is the message?"];
  110. let title;
  111. let announcement;
  112. for (let i = 0; i < questions.length; i++) {
  113. const question = questions[i];
  114. message.channel.send(question);
  115.  
  116. let ms = await message.channel.awaitMessages(m => m.author.id === message.author.id, { max: 1, time: 60000, errors: ['time'] });
  117. const msg = ms.array()[0] ;
  118. if(msg.content.toLowerCase() == "cancel") return message.channel.send(":x: **Canceled**");
  119. if(i == 0) title = msg.content;
  120. else announcement = msg.content;
  121. }
  122. message.channel.bulkDelete(4);
  123. //let sicon = bot.user.displayAvatarURL;
  124. //let sicon = "https://cdn.discordapp.com/icons/" + message.guild.id + "/" + message.guild.icon + ".png"
  125. let sicon = "https://media.discordapp.net/attachments/593689494243246106/594052849995087872/server-icon-fullsize.png"
  126. //let updatechannel = message.guild.channels.find(r => r.name === chn);
  127. let botEmbed = new Discord.RichEmbed()
  128. .setColor("#00FFFF")
  129. .setThumbnail(sicon)
  130. .setAuthor(`${title}`)
  131. .setDescription(`${announcement}`)
  132. .setTimestamp()
  133. .setFooter("Announcement by " + message.author.tag, message.author.displayAvatarURL);
  134. let c = message.guild.channels.get("585936555366154241")
  135. c.send(botEmbed)
  136. c.send(`@everyone`)
  137.  
  138. }
  139. if (message.content.startsWith("-ticket")) {
  140. if (!args[0]) return message.reply("You need to specify a reason.")
  141. let reason = args.join(" ")
  142. let query = "SELECT TicketNum FROM TICKETS"
  143. connection.query(query, function (err, results, field) {
  144. let cur = results[0]["TicketNum"]
  145. //console.log(parseInt(cur) + 1)
  146. var query = connection.query("UPDATE `TICKETS` SET `TicketNum` = `TicketNum` + 1 WHERE `TicketNum` = '" + cur + "'", function (err, results, fields) {
  147. if (err) throw err;
  148. });
  149. let emb = new Discord.RichEmbed()
  150. .setTitle("Ticket Open")
  151. .setDescription(`**Ticket**: #${cur}\n**Subject:** ${reason}\n**User:** ${message.author.tag}`)
  152. .setColor("#00FF00")
  153. //let r = message.guild.roles.get("594493285234507786")
  154. tc.send("@everyone")
  155. tc.send(emb)
  156. message.guild.createRole({name: `ticket-${cur}`}).then((r) => {
  157. message.member.addRole(r.id)
  158. message.guild.createChannel(`ticket-${cur}`).then((c) => {
  159. c.setTopic(`Subject: ${reason}`)
  160. let m = new Discord.RichEmbed()
  161. .setTitle("** New Ticket Opened **")
  162. .setDescription("Please try to explain in detail the reason for opening this ticket. Our support staff will be here shortly")
  163. .setTimestamp()
  164. .setColor("#FF0F0F")
  165. .setFooter("Tickets")
  166. c.send(m)
  167. c.overwritePermissions(r.id, {
  168. VIEW_CHANNEL: true, SEND_MESSAGES: true, READ_MESSAGES: true, ADD_REACTIONS: true, READ_MESSAGE_HISTORY: true
  169. })
  170. c.overwritePermissions(message.guild.id, {
  171. VIEW_CHANNEL: false, SEND_MESSAGES: false, READ_MESSAGES: false, ADD_REACTIONS: false, READ_MESSAGE_HISTORY: false
  172. })
  173.  
  174. let role = message.guild.roles.find(r => r.name.toLowerCase() == "staff");
  175. if(role)
  176. c.overwritePermissions(role.id, {
  177. VIEW_CHANNEL: true, SEND_MESSAGES: true, READ_MESSAGES: true, ADD_REACTIONS: true, READ_MESSAGE_HISTORY: true
  178. })
  179. })
  180. })
  181.  
  182.  
  183. var post = {UserID: message.author.id, Ticket: cur};
  184. var query = connection.query("INSERT INTO TICKETS SET ?", post, function (err, results, fields) {
  185. });
  186.  
  187. })
  188. let emb = new Discord.RichEmbed()
  189. .setTitle("Ticket Open")
  190. tc.send()
  191. } if (message.content.startsWith("-close")) {
  192. if (!args[0]) return message.reply("Please give a reason to close the ticket.")
  193. if (!message.channel.name.toString().startsWith("ticket-")) return message.reply("This command can only be used in a ticket")
  194. message.channel.setParent("592298579708608534")
  195. message.channel.send("? Ticket successfully closed.")
  196. let q = message.channel.name.split("ticket-").slice(1).join(" ")
  197. let query = `SELECT UserID FROM TICKETS WHERE Ticket='${q}'`
  198. connection.query(query, function (err, results, fields) {
  199. let id = results[0]["UserID"]
  200. message.channel.overwritePermissions(id, {
  201. VIEW_CHANNEL: false, SEND_MESSAGES: false
  202. })
  203. })
  204. let title = `Ticket #${message.channel.name.split("ticket-").slice(1).join(" ")} has been closed`
  205. let msg = `**Ticket Subject:** ${message.channel.topic.toString().split("Subject: ").slice(1).join(" ")}\n**Closed By:** ${message.author.tag}\n**Reason:** ${args.join(" ")}\nTo view the logs of a ticket, please talk to a staff member.`
  206. let members = message.guild.members
  207. let mess = new Discord.RichEmbed()
  208. .setAuthor(title, message.author.displayAvatarURL)
  209. .setDescription(msg)
  210. .setColor("#00FFFF")
  211. .setThumbnail(message.author.displayAvatarURL)
  212. .setFooter("Tickets")
  213. .setTimestamp()
  214. members.forEach(function(m) {
  215. let r = message.guild.roles.find("name", message.channel.name)
  216. if (m.roles.has(r.id)) m.send(mess)
  217. })
  218. message.guild.roles.find("name", message.channel.name).delete()
  219. let emb = new Discord.RichEmbed()
  220. .setTitle("Ticket Closed")
  221. .setDescription(`**Ticket**: #${message.channel.name.toString().split("ticket-").slice(1).join(" ")}\n**Reason:** ${args.join(" ")}\n**User:** ${message.author.tag}`)
  222. .setColor("#FF0F0F")
  223. tc.send(emb)
  224. } if (message.content.startsWith("-add")) {
  225. if (!message.channel.name.toString().startsWith("ticket-")) return message.reply("This can only be used in a ticket")
  226. if (!args[0]) return message.reply("You must give the id of the member you would like to add")
  227. let r = message.guild.roles.find('name', message.channel.name.toString())
  228. let member = message.mentions.users.first() || message.guild.members.get(args[0])
  229. console.log(member)
  230. message.channel.send("You have added " + member.tag + " to your ticket")
  231. member.addRole(r.id)
  232. let emb = new Discord.RichEmbed()
  233. .setTitle("Ticket User Add")
  234. .setDescription(`**Ticket**: #${message.channel.name.toString().split("ticket-").slice(1).join(" ")}\n**Invited By:** ${message.author.tag}\n**Invited User:** ${member}`)
  235. .setColor("#FFFF00")
  236. tc.send(emb)
  237. } if (message.content.startsWith("-remove")) {
  238. if (!message.channel.name.toString().startsWith("ticket-")) return message.reply("This can only be used in a ticket")
  239. if (!args[0]) return message.reply("You must give the id of the member you would like to remove")
  240. let r = message.guild.roles.find('name', message.channel.name.toString())
  241. let member = message.mentions.users.first() || message.guild.members.get(args[0])
  242. console.log(member)
  243. message.channel.send("You have removed " + member.tag + " from your ticket")
  244. member.removeRole(r.id)
  245. let emb = new Discord.RichEmbed()
  246. .setTitle("Ticket User Remove")
  247. .setDescription(`**Ticket**: #${message.channel.name.toString().split("ticket-").slice(1).join(" ")}\n**Removed By:** ${message.author.tag}\n**Removed User:** ${member}`)
  248. .setColor("#FFFF00")
  249. tc.send(emb)
  250. message.channel.overwritePermissions(member.id, {
  251. VIEW_CHANNEL: false, SEND_MESSAGES: false
  252. })
  253. } if (message.content.startsWith("-help")) {
  254. let emb = new Discord.RichEmbed()
  255. .setTitle("GalaxyPrison - Help")
  256. .addField("**Tickets**", "**==========**")
  257. .addField("-ticket (Subject)", "Create a ticket")
  258. .addField("-close (Reason)", "Close a ticket")
  259. .addField("-add (MemberID)", "Add a member to a ticket")
  260. .addField("-remove (MemberID)", "Remove a member from a ticket")
  261. .addField("**Giveaways**", "**==========**")
  262. .addField("-gcreate (Time) (Anount of Winners) (Prize)", "Create a giveaway")
  263. .addField("-reroll (MessageID)", "ReRoll a giveaway")
  264. .addField("**Miscellaneous**", "**==========**")
  265. .addField("-announce", "Announce a Message")
  266. .addField("-suggest (suggestion)", "Make a suggestion")
  267. .addField("-bug (bug)", "Report a bug")
  268. .setColor("#FF00FF")
  269. message.channel.send(emb)
  270. } if (message.content.startsWith("-removerole")) {
  271. if (!message.channel.name.toString().startsWith("ticket-")) return message.reply("This can only be used in a ticket")
  272. if (!args[0]) return message.reply("You need to tag a role")
  273. let r = args[0]
  274. r = message.guild.roles.find(role => role.id === r)
  275. message.channel.overwritePermissions(r.id, {
  276. VIEW_CHANNEL: false, SEND_MESSAGES: false
  277. })
  278.  
  279. message.channel.send("Done")
  280.  
  281. }
  282. })
  283. let errors = []
  284. process.on('uncaughtException', function(err) {
  285. console.log(err);
  286. errors.push({
  287. error: err,
  288. author: "Unknown",
  289. message: "Unknown",
  290. time: Date.now()
  291. })
  292. module.exports.errors = errors;
  293. })
  294. bot.on('error', function(err) {
  295. throw err
  296. })
  297.  
  298. bot.login(token)
Advertisement
Add Comment
Please, Sign In to add comment