Make soundreload apply to all clusters
This commit is contained in:
parent
55a150c0c9
commit
96f8ec6353
4 changed files with 35 additions and 16 deletions
|
@ -1 +1 @@
|
||||||
Subproject commit b26219baeb920506e40bc6db42fcde609fb499c7
|
Subproject commit e2887e42da18273f2c2eaac1ae5a973111434c90
|
|
@ -1,16 +1,23 @@
|
||||||
const soundPlayer = require("../../utils/soundplayer.js");
|
|
||||||
const Command = require("../../classes/command.js");
|
const Command = require("../../classes/command.js");
|
||||||
|
|
||||||
class SoundReloadCommand extends Command {
|
class SoundReloadCommand extends Command {
|
||||||
async run() {
|
// another very hacky command
|
||||||
if (this.message.author.id !== process.env.OWNER) return "Only the bot owner can reload Lavalink!";
|
run() {
|
||||||
const soundStatus = await soundPlayer.checkStatus();
|
return new Promise((resolve) => {
|
||||||
if (!soundStatus) {
|
if (this.message.author.id !== process.env.OWNER) return "Only the bot owner can reload Lavalink!";
|
||||||
const length = await soundPlayer.connect(this.client);
|
this.message.channel.sendTyping();
|
||||||
return `Successfully connected to ${length} Lavalink node(s).`;
|
this.ipc.broadcast("soundreload");
|
||||||
} else {
|
this.ipc.register("soundReloadSuccess", (msg) => {
|
||||||
return "I couldn't connect to any Lavalink nodes!";
|
this.ipc.unregister("soundReloadSuccess");
|
||||||
}
|
this.ipc.unregister("soundReloadFail");
|
||||||
|
resolve(`Successfully connected to ${msg.length} Lavalink node(s).`);
|
||||||
|
});
|
||||||
|
this.ipc.register("soundReloadFail", () => {
|
||||||
|
this.ipc.unregister("soundReloadSuccess");
|
||||||
|
this.ipc.unregister("soundReloadFail");
|
||||||
|
resolve("I couldn't connect to any Lavalink nodes!");
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
static description = "Attempts to reconnect to all available Lavalink nodes";
|
static description = "Attempts to reconnect to all available Lavalink nodes";
|
||||||
|
|
10
shard.js
10
shard.js
|
@ -153,6 +153,16 @@ connected_workers ${image.connections.length}
|
||||||
return this.ipc.broadcast("reloadSuccess");
|
return this.ipc.broadcast("reloadSuccess");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.ipc.register("soundreload", async () => {
|
||||||
|
const soundStatus = await sound.checkStatus();
|
||||||
|
if (!soundStatus) {
|
||||||
|
const length = await sound.connect(this.bot);
|
||||||
|
return this.ipc.broadcast("soundReloadSuccess", { length });
|
||||||
|
} else {
|
||||||
|
return this.ipc.broadcast("soundReloadFail");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// connect to lavalink
|
// connect to lavalink
|
||||||
if (!sound.status && !sound.connected) await sound.connect(this.bot);
|
if (!sound.status && !sound.connected) await sound.connect(this.bot);
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,7 @@ exports.connect = (server) => {
|
||||||
this.jobs[req].event.emit("uuid", uuid);
|
this.jobs[req].event.emit("uuid", uuid);
|
||||||
}
|
}
|
||||||
} else if (opcode === 0x01) { // Job completed successfully
|
} else if (opcode === 0x01) { // Job completed successfully
|
||||||
// the image API sends all job responses over the same socket; make sure this is ours
|
// the image API sends all job responses over the same socket; make sure this is ours
|
||||||
if (this.jobs[uuid]) {
|
if (this.jobs[uuid]) {
|
||||||
const imageReq = await fetch(`http://${connection.remoteAddress}:8081/image?id=${uuid}`);
|
const imageReq = await fetch(`http://${connection.remoteAddress}:8081/image?id=${uuid}`);
|
||||||
const image = await imageReq.buffer();
|
const image = await imageReq.buffer();
|
||||||
|
@ -232,9 +232,11 @@ exports.getType = async (image) => {
|
||||||
controller.abort();
|
controller.abort();
|
||||||
}, 25000);
|
}, 25000);
|
||||||
try {
|
try {
|
||||||
const imageRequest = await fetch(image, { signal: controller.signal, headers: {
|
const imageRequest = await fetch(image, {
|
||||||
"Range": "bytes=0-1023"
|
signal: controller.signal, headers: {
|
||||||
}});
|
"Range": "bytes=0-1023"
|
||||||
|
}
|
||||||
|
});
|
||||||
clearTimeout(timeout);
|
clearTimeout(timeout);
|
||||||
const size = imageRequest.headers.has("Content-Range") ? imageRequest.headers.get("Content-Range").split("/")[1] : imageRequest.headers.get("Content-Length");
|
const size = imageRequest.headers.has("Content-Range") ? imageRequest.headers.get("Content-Range").split("/")[1] : imageRequest.headers.get("Content-Length");
|
||||||
if (parseInt(size) > 20971520) {
|
if (parseInt(size) > 20971520) {
|
||||||
|
@ -277,7 +279,7 @@ exports.run = object => {
|
||||||
data.event.once("image", (image, type) => {
|
data.event.once("image", (image, type) => {
|
||||||
delete this.jobs[data.uuid];
|
delete this.jobs[data.uuid];
|
||||||
const payload = {
|
const payload = {
|
||||||
// Take just the image data
|
// Take just the image data
|
||||||
buffer: image,
|
buffer: image,
|
||||||
type: type
|
type: type
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue