Added sticker, reimplemented reload, removed user count from stats
This commit is contained in:
parent
7009ff339f
commit
f0e19d6ad3
7 changed files with 50 additions and 74 deletions
|
@ -4,7 +4,7 @@ class ReloadCommand extends Command {
|
|||
// quite possibly one of the hackiest commands in the bot
|
||||
run() {
|
||||
return new Promise((resolve) => {
|
||||
/*if (this.message.author.id !== process.env.OWNER) resolve("Only the bot owner can reload commands!");
|
||||
if (this.message.author.id !== process.env.OWNER) resolve("Only the bot owner can reload commands!");
|
||||
if (this.args.length === 0) resolve("You need to provide a command to reload!");
|
||||
this.ipc.broadcast("reload", this.args[0]);
|
||||
this.ipc.register("reloadSuccess", () => {
|
||||
|
@ -16,8 +16,7 @@ class ReloadCommand extends Command {
|
|||
this.ipc.unregister("reloadSuccess");
|
||||
this.ipc.unregister("reloadFail");
|
||||
resolve(message);
|
||||
});*/
|
||||
resolve("This command is currently disabled until the ECMAScript module format supports unloading imported files.");
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -42,7 +42,8 @@ class StatsCommand extends Command {
|
|||
},
|
||||
{
|
||||
"name": "Host",
|
||||
"value": `${os.type()} ${os.release()} (${os.arch()})`
|
||||
"value": `${os.type()} ${os.release()} (${os.arch()})`,
|
||||
"inline": true
|
||||
},
|
||||
{
|
||||
"name": "Library",
|
||||
|
@ -68,11 +69,6 @@ class StatsCommand extends Command {
|
|||
"name": "Servers",
|
||||
"value": stats && stats.guilds ? stats.guilds : `${this.client.guilds.size} (for this cluster only)`,
|
||||
"inline": true
|
||||
},
|
||||
{
|
||||
"name": "Users (approximation)",
|
||||
"value": stats && stats.users ? stats.users : `${this.client.users.size} (for this cluster only)`,
|
||||
"inline": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
31
commands/general/sticker.js
Normal file
31
commands/general/sticker.js
Normal file
|
@ -0,0 +1,31 @@
|
|||
import Command from "../../classes/command.js";
|
||||
|
||||
class StickerCommand extends Command {
|
||||
async run() {
|
||||
if (!this.message.stickerItems) return "You need to provide a sticker!";
|
||||
const sticker = this.message.stickerItems[0];
|
||||
if (sticker.format_type === 1) { // PNG
|
||||
return `https://cdn.discordapp.com/stickers/${sticker.id}.png`;
|
||||
} else if (sticker.format_type === 2) { // APNG
|
||||
return {
|
||||
embed: {
|
||||
color: 16711680,
|
||||
description: `[This sticker is an APNG; however, since Discord doesn't allow displaying APNGs outside of stickers, you'll have to save it or open it in your browser to view it.](https://cdn.discordapp.com/stickers/${sticker.id}.png)`,
|
||||
image: {
|
||||
url: `https://cdn.discordapp.com/stickers/${sticker.id}.png`
|
||||
}
|
||||
}
|
||||
};
|
||||
} else if (sticker.format_type === 3) { // Lottie
|
||||
return `I can't display this sticker because it uses the Lottie animation format; however, I can give you the raw JSON link to it: https://cdn.discordapp.com/stickers/${sticker.id}.json`;
|
||||
} else {
|
||||
return "I don't recognize that sticker format!";
|
||||
}
|
||||
}
|
||||
|
||||
static description = "Gets a raw sticker image";
|
||||
static aliases = ["s", "stick"];
|
||||
static arguments = ["[sticker]"];
|
||||
}
|
||||
|
||||
export default StickerCommand;
|
17
package-lock.json
generated
17
package-lock.json
generated
|
@ -13,7 +13,7 @@
|
|||
"cowsay2": "^2.0.4",
|
||||
"dotenv": "^9.0.2",
|
||||
"emoji-regex": "^9.2.2",
|
||||
"eris": "^0.15.1",
|
||||
"eris": "github:abalabahaha/eris#dev",
|
||||
"eris-fleet": "github:esmBot/eris-fleet",
|
||||
"file-type": "^16.1.0",
|
||||
"format-duration": "^1.4.0",
|
||||
|
@ -1232,11 +1232,11 @@
|
|||
}
|
||||
},
|
||||
"node_modules/eris": {
|
||||
"version": "0.15.1",
|
||||
"resolved": "https://registry.npmjs.org/eris/-/eris-0.15.1.tgz",
|
||||
"integrity": "sha512-IQ3BPW6OjgFoqjdh+irPOa1jFlkotk+WNu2GQQ7QAQfbzQEPZgn+F+hpOxfMUXPHOZMX4sPKLkVDkMHAssBYhw==",
|
||||
"version": "0.16.0-dev",
|
||||
"resolved": "git+ssh://git@github.com/abalabahaha/eris.git#5246da9589bdc22d610d960202d1f84dc865c3a2",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"ws": "^7.2.1"
|
||||
"ws": "^7.4.6"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.4.0"
|
||||
|
@ -4990,13 +4990,12 @@
|
|||
}
|
||||
},
|
||||
"eris": {
|
||||
"version": "0.15.1",
|
||||
"resolved": "https://registry.npmjs.org/eris/-/eris-0.15.1.tgz",
|
||||
"integrity": "sha512-IQ3BPW6OjgFoqjdh+irPOa1jFlkotk+WNu2GQQ7QAQfbzQEPZgn+F+hpOxfMUXPHOZMX4sPKLkVDkMHAssBYhw==",
|
||||
"version": "git+ssh://git@github.com/abalabahaha/eris.git#5246da9589bdc22d610d960202d1f84dc865c3a2",
|
||||
"from": "eris@abalabahaha/eris#dev",
|
||||
"requires": {
|
||||
"opusscript": "^0.0.8",
|
||||
"tweetnacl": "^1.0.1",
|
||||
"ws": "^7.2.1"
|
||||
"ws": "^7.4.6"
|
||||
}
|
||||
},
|
||||
"eris-fleet": {
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
"cowsay2": "^2.0.4",
|
||||
"dotenv": "^9.0.2",
|
||||
"emoji-regex": "^9.2.2",
|
||||
"eris": "^0.15.1",
|
||||
"eris": "github:abalabahaha/eris#dev",
|
||||
"eris-fleet": "github:esmBot/eris-fleet",
|
||||
"file-type": "^16.1.0",
|
||||
"format-duration": "^1.4.0",
|
||||
|
|
6
shard.js
6
shard.js
|
@ -62,10 +62,8 @@ class Shard extends BaseClusterWorker {
|
|||
}
|
||||
|
||||
this.ipc.register("reload", async (message) => {
|
||||
//const result = await unload(message.msg);
|
||||
//if (result) return this.ipc.broadcast("reloadFail", { result: result });
|
||||
const result2 = await load(paths.get(message.msg));
|
||||
if (result2) return this.ipc.broadcast("reloadFail", { result: result2 });
|
||||
const result = await load(paths.get(message.msg));
|
||||
if (result) return this.ipc.broadcast("reloadFail", { result });
|
||||
return this.ipc.broadcast("reloadSuccess");
|
||||
});
|
||||
|
||||
|
|
|
@ -1,27 +1,12 @@
|
|||
import { paths, commands, info, aliases as _aliases } from "./collections.js";
|
||||
import { log } from "./logger.js";
|
||||
//import { Worker, isMainThread, workerData, parentPort } from "worker_threads";
|
||||
//import { join, dirname } from "path";
|
||||
//import { fileURLToPath } from "url";
|
||||
|
||||
/*const importNoCache = (module) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const worker = new Worker(new URL("./handler.js", import.meta.url), {
|
||||
workerData: { module: module }
|
||||
});
|
||||
worker.once("message", (result) => {
|
||||
resolve(result);
|
||||
});
|
||||
worker.once("error", (result) => {
|
||||
reject(result);
|
||||
});
|
||||
});
|
||||
};*/
|
||||
let queryValue = 0;
|
||||
|
||||
// load command into memory
|
||||
export async function load(command, soundStatus) {
|
||||
//const props = await importNoCache(`../${command}`);
|
||||
const { default: props } = await import(`../${command}`);
|
||||
const { default: props } = await import(`../${command}?v=${queryValue}`);
|
||||
queryValue++;
|
||||
if (props.requires.includes("mashape") && process.env.MASHAPE === "") return log("warn", `Mashape/RapidAPI info not provided in config, skipped loading command ${command}...`);
|
||||
if (props.requires.includes("sound") && soundStatus) return log("warn", `Failed to connect to some Lavalink nodes, skipped loading command ${command}...`);
|
||||
const commandArray = command.split("/");
|
||||
|
@ -45,36 +30,4 @@ export async function load(command, soundStatus) {
|
|||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// unload command from memory
|
||||
/*export async function unload(command) {
|
||||
let cmd;
|
||||
if (commands.has(command)) {
|
||||
cmd = commands.get(command);
|
||||
} else if (_aliases.has(command)) {
|
||||
cmd = commands.get(_aliases.get(command));
|
||||
}
|
||||
if (!cmd) return `The command \`${command}\` doesn't seem to exist, nor is it an alias.`;
|
||||
const path = paths.get(command);
|
||||
const mod = require.cache[require.resolve(`../${path}`)];
|
||||
delete require.cache[require.resolve(`../${path}`)];
|
||||
for (let i = 0; i < module.children.length; i++) {
|
||||
if (module.children[i] === mod) {
|
||||
module.children.splice(i, 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}*/
|
||||
|
||||
/*if (!isMainThread) {
|
||||
const getModule = async () => {
|
||||
console.log("test");
|
||||
const module = await import(workerData.module);
|
||||
console.log("test 2");
|
||||
parentPort.postMessage(module);
|
||||
process.exit();
|
||||
};
|
||||
getModule();
|
||||
}*/
|
||||
}
|
Loading…
Reference in a new issue