const QuestRemovalPacket = require("../Packets/QuestRemoval"); const QuestAddedPacket = require("../Packets/QuestAdded"); const quests = require("../Data/quests"); module.exports = async function (ws, message, player) { const questID = message.getUint16(1); const questScheme = quests[questID - 1]; if (!questScheme) return; const isLevelInRange = questScheme.minimumLevel <= player.pirateLevel && questScheme.maximumLevel >= player.pirateLevel; // if (!isLevelInRange) return console.info("in range"); if (player.quests.has(questID)) { const questDisableQuery = await execute("INSERT INTO quests (playerID, questID) VALUES (?, ?) ON DUPLICATE KEY UPDATE state = ?", [player.id, questID, 1]); if (!questDisableQuery.data) return; const questRemoval = { questID, isSuccessful: false }; const questRemovalPacket = QuestRemovalPacket(questRemoval); player.map.registerIndividualNetworkPacket(player.id, questRemovalPacket); console.info("quest removed") return player.quests.remove(questID); }; const quest = player.quests.add(questID); if (!quest) return; const questEnableQuery = await execute("INSERT INTO quests (playerID, questID) VALUES (?, ?) ON DUPLICATE KEY UPDATE state = ?", [player.id, questID, 0]); if (!questEnableQuery.data) return; const questAdded = { questID }; const questAddedPacket = QuestAddedPacket(questAdded); player.map.registerIndividualNetworkPacket(player.id, questAddedPacket); console.info("quest added", questAdded); };