catto.js 1.4.6 → 1.4.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/Bot.js +39 -2
  2. package/package.json +1 -1
package/Bot.js CHANGED
@@ -25,6 +25,7 @@ module.exports = class extends EventEmitter {
25
25
  "mobile": !1,
26
26
  "sharded": !1,
27
27
  "partials": !1,
28
+ "detectExecutors": !1,
28
29
  "messageDeleteExecutor": !1,
29
30
  "auditIndexation": !1,
30
31
  "auditFile": null
@@ -248,7 +249,7 @@ module.exports = class extends EventEmitter {
248
249
  if (this.options.auditIndexation) {
249
250
  this.auditDatabase = {};
250
251
  for (var server of this.client.guilds.cache.values()) {
251
- if (!server.members.me.permissions.has(Discord.PermissionsBitField.Flags.VIEW_AUDIT_LOG)) {
252
+ if (!server.members.me.permissions.has(Discord.PermissionsBitField.Flags.ViewAuditLog)) {
252
253
  continue;
253
254
  }
254
255
  try {
@@ -306,7 +307,7 @@ module.exports = class extends EventEmitter {
306
307
  if (!this.options.messageDeleteExecutor) {
307
308
  return this.emit("messageDeleted", message);
308
309
  }
309
- if (!message.guild.members.me.permissions.has(Discord.PermissionsBitField.Flags.VIEW_AUDIT_LOG)) {
310
+ if (!message.guild.members.me.permissions.has(Discord.PermissionsBitField.Flags.ViewAuditLog)) {
310
311
  return this.emit("messageDeleted", message);
311
312
  }
312
313
  try {
@@ -346,6 +347,42 @@ module.exports = class extends EventEmitter {
346
347
  this.client.on("guildDelete", guild => {
347
348
  this.emit("botDelete", guild);
348
349
  });
350
+ function addExecutor(bot, event, event2, prop, type) {
351
+ bot.client.on(event, async element => {
352
+ if (!bot.options.detectExecutors) {
353
+ return bot.emit(event2, element);
354
+ }
355
+ if (!element.guild.members.me.permissions.has(Discord.PermissionsBitField.Flags.ViewAuditLog)) {
356
+ return bot.emit(event2, element);
357
+ }
358
+ try {
359
+ var fetchedLogs = (await element.guild.fetchAuditLogs({
360
+ "limit": 100,
361
+ type
362
+ })).entries;
363
+ } catch {
364
+ return bot.emit(event2, element);
365
+ }
366
+ for (var log of fetchedLogs.values()) {
367
+ if (log.targetId == element.id) {
368
+ element[prop] = new User(log.executor, bot);
369
+ element[prop + "Id"] = log.executorId;
370
+ break;
371
+ }
372
+ }
373
+ bot.emit(event2, element);
374
+ });
375
+ }
376
+ addExecutor(this, "channelCreate", "channelCreated", "createdBy", 10);
377
+ addExecutor(this, "channelDelete", "channelDeleted", "deletedBy", 12);
378
+ addExecutor(this, "roleCreate", "roleCreated", "createdBy", 30);
379
+ addExecutor(this, "roleDelete", "roleDeleted", "deletedBy", 32);
380
+ addExecutor(this, "emojiCreate", "emojiCreated", "createdBy", 60);
381
+ addExecutor(this, "emojiDelete", "emojiDeleted", "deletedBy", 62);
382
+ addExecutor(this, "stickerCreate", "stickerCreated", "createdBy", 90);
383
+ addExecutor(this, "stickerDelete", "stickerDeleted", "deletedBy", 92);
384
+ addExecutor(this, "threadCreate", "threadCreated", "createdBy", 110);
385
+ addExecutor(this, "threadDelete", "threadDeleted", "deletedBy", 112);
349
386
  this.auditDatabase = {};
350
387
  if (this.options.auditFile) {
351
388
  if (!fs.existsSync(this.options.auditFile.replace("%", this.cluster ? this.cluster.id.toString() : "0"))) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "catto.js",
3
- "version": "1.4.6",
3
+ "version": "1.4.8",
4
4
  "description": "Universal module for everything.",
5
5
  "main": "index.js",
6
6
  "scripts": {