2023-10-17 23:38:18 +01:00
|
|
|
import eventBus from "../utils/broadcast-channel-pubsub";
|
|
|
|
import createPlayerService from "../services/scoresaber/player";
|
|
|
|
import log from "../utils/logger";
|
2023-10-17 21:42:37 +01:00
|
|
|
|
|
|
|
let initialized = false;
|
|
|
|
|
|
|
|
export default (dlManager) => {
|
|
|
|
if (initialized) {
|
2023-10-17 23:38:18 +01:00
|
|
|
log.debug(`Command processor already initialized.`, "CmdProcessor");
|
2023-10-17 21:42:37 +01:00
|
|
|
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
const playerService = createPlayerService();
|
|
|
|
|
2023-10-17 23:38:18 +01:00
|
|
|
eventBus.on("data-imported", () => {
|
|
|
|
if (window) window.location.reload();
|
2023-10-17 21:42:37 +01:00
|
|
|
});
|
|
|
|
|
2023-10-17 23:38:18 +01:00
|
|
|
eventBus.on("player-add-cmd", async ({ playerId }) => {
|
2023-10-17 21:42:37 +01:00
|
|
|
await dlManager.enqueuePlayer(playerId);
|
|
|
|
});
|
|
|
|
|
2023-10-17 23:38:18 +01:00
|
|
|
eventBus.on(
|
|
|
|
"player-remove-cmd",
|
|
|
|
async ({ playerId, purgeScores = false }) => {
|
|
|
|
if (!playerId) return;
|
2023-10-17 21:42:37 +01:00
|
|
|
|
2023-10-17 23:38:18 +01:00
|
|
|
await playerService.remove(playerId, purgeScores);
|
2023-10-17 23:41:42 +01:00
|
|
|
}
|
2023-10-17 23:38:18 +01:00
|
|
|
);
|
2023-10-17 21:42:37 +01:00
|
|
|
|
2023-10-17 23:38:18 +01:00
|
|
|
eventBus.on("dl-manager-pause-cmd", () => {
|
|
|
|
log.debug("Pause Dl Manager", "CmdProcessor");
|
2023-10-17 21:42:37 +01:00
|
|
|
|
|
|
|
dlManager.pause();
|
|
|
|
});
|
|
|
|
|
2023-10-17 23:38:18 +01:00
|
|
|
eventBus.on("dl-manager-unpause-cmd", () => {
|
|
|
|
log.debug("Unpause Dl Manager", "CmdProcessor");
|
2023-10-17 21:42:37 +01:00
|
|
|
|
|
|
|
dlManager.start();
|
|
|
|
});
|
|
|
|
|
|
|
|
initialized = true;
|
|
|
|
|
2023-10-17 23:38:18 +01:00
|
|
|
log.info(`Command processor initialized`, "CmdProcessor");
|
|
|
|
};
|