2021-08-19 14:19:14 +00:00
|
|
|
import Command from "../../classes/command.js";
|
2021-07-31 05:04:38 +00:00
|
|
|
|
|
|
|
class BroadcastCommand extends Command {
|
|
|
|
// yet another very hacky command
|
|
|
|
run() {
|
|
|
|
return new Promise((resolve) => {
|
2021-11-03 00:43:37 +00:00
|
|
|
const owners = process.env.OWNER.split(",");
|
2022-09-01 01:00:34 +00:00
|
|
|
if (!owners.includes(this.author.id)) {
|
|
|
|
this.success = false;
|
|
|
|
resolve("Only the bot owner can broadcast messages!");
|
2022-09-01 15:40:55 +00:00
|
|
|
return;
|
2022-09-01 01:00:34 +00:00
|
|
|
}
|
2022-06-07 23:26:40 +00:00
|
|
|
const message = this.options.message ?? this.args.join(" ");
|
2022-07-23 21:02:04 +00:00
|
|
|
if (message?.trim()) {
|
2022-09-01 01:00:34 +00:00
|
|
|
this.ipc.centralStore.set("broadcast", message);
|
2022-03-31 19:53:22 +00:00
|
|
|
this.ipc.broadcast("playbroadcast", message);
|
2021-07-31 05:04:38 +00:00
|
|
|
this.ipc.register("broadcastSuccess", () => {
|
|
|
|
this.ipc.unregister("broadcastSuccess");
|
|
|
|
resolve("Successfully broadcasted message.");
|
|
|
|
});
|
|
|
|
} else {
|
2022-09-01 01:00:34 +00:00
|
|
|
this.ipc.centralStore.delete("broadcast");
|
2021-07-31 05:04:38 +00:00
|
|
|
this.ipc.broadcast("broadcastend");
|
|
|
|
this.ipc.register("broadcastEnd", () => {
|
|
|
|
this.ipc.unregister("broadcastEnd");
|
|
|
|
resolve("Successfully ended broadcast.");
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2022-03-31 19:53:22 +00:00
|
|
|
static flags = [{
|
|
|
|
name: "message",
|
|
|
|
type: 3,
|
|
|
|
description: "The message to broadcast"
|
|
|
|
}];
|
|
|
|
|
2021-07-31 05:04:38 +00:00
|
|
|
static description = "Broadcasts a playing message until the command is run again or the bot restarts";
|
2022-09-01 15:40:55 +00:00
|
|
|
static adminOnly = true;
|
2021-07-31 05:04:38 +00:00
|
|
|
}
|
|
|
|
|
2021-08-19 14:19:14 +00:00
|
|
|
export default BroadcastCommand;
|