catto.js 1.4.7 → 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 +37 -0
  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
@@ -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.7",
3
+ "version": "1.4.8",
4
4
  "description": "Universal module for everything.",
5
5
  "main": "index.js",
6
6
  "scripts": {