async function itemsDialog() { return new Promise((resolve, reject) => { let inputItemsModal = $("#input-items-dialog-modal") inputItemsModal.modal("show"); $("#input-item-search").val(""); $.post(`https://${resName}/getAllItems`, JSON.stringify({}), function (items) { let itemListDiv = $("#items-list"); itemListDiv.empty(); for(const[itemName, itemData] of Object.entries(items)) { let itemDiv = $(`
  • ${itemData.label}
  • `); itemDiv.click(function() { inputItemsModal.modal("hide"); resolve(itemName); }); itemListDiv.append(itemDiv); } }); }) } $("#input-item-search").on("keyup", function() { let text = $(this).val().toLowerCase(); $("#items-list li").filter(function() { $(this).toggle($(this).text().toLowerCase().indexOf(text) > -1) }); }) async function weaponsDialog() { return new Promise((resolve, reject) => { let inputWeaponsModal = $("#input-weapons-dialog-modal") inputWeaponsModal.modal("show"); $("#input-weapon-search").val(); $.post(`https://${resName}/getAllWeapons`, JSON.stringify({}), function (weapons) { let weaponListDiv = $("#weapons-list"); weaponListDiv.empty(); weapons.forEach(weaponData => { let weaponDiv = $(`
  • ${weaponData.label}
  • `); weaponDiv.click(function() { inputWeaponsModal.modal("hide"); resolve(weaponData.name); }); weaponListDiv.append(weaponDiv); }) }); }) } $("#input-weapon-search").on("keyup", function() { let text = $(this).val().toLowerCase(); $("#weapons-list li").filter(function() { $(this).toggle($(this).text().toLowerCase().indexOf(text) > -1) }); }) async function objectDialog(type) { return new Promise(async function(resolve, reject) { switch(type) { case "item": { resolve( await itemsDialog() ); break; } case "account": { resolve( await accountsDialog() ); break; } case "weapon": { resolve( await weaponsDialog() ); break; } } }); } /* Limited objects dialog */ async function limitedObjectsDialog(oldLimitedObjects) { return new Promise((resolve, reject) => { let limitedObjectsModal = $("#limited-objects-dialog-modal") limitedObjectsModal.modal("show"); $("#limited-objects-list").empty(); if(oldLimitedObjects) { if(oldLimitedObjects.item) { for(const objectName of Object.keys(oldLimitedObjects.item)) { let objectData = { name: objectName, type: "item", } addLimitedObjectToList(objectData); } } if(oldLimitedObjects.weapon) { for(const objectName of Object.keys(oldLimitedObjects.weapon)) { let objectData = { name: objectName, type: "weapon", } addLimitedObjectToList(objectData); } } } $("#limited-objects-form").unbind().submit(function(event) { if (!this.checkValidity()) { event.preventDefault(); event.stopPropagation(); return; } else { $(this).removeClass("was-validated"); } let limitedObjects = { "item": {}, "weapon": {}, }; $("#limited-objects-list .limited-object").each(function() { let type = $(this).find(".item-type").val(); let name = $(this).find(".item-name").val(); limitedObjects[type][name] = true; }) limitedObjectsModal.modal("hide"); resolve(limitedObjects); }) }) } async function addLimitedObjectToList(objectData) { let objectDiv = $(`
    `); objectDiv.find(".delete-limited-object-btn").click(function() { objectDiv.remove(); }); objectDiv.find(".choose-item-btn").click(async function() { let objectType = objectDiv.find(".item-type").val(); let objectName = await objectDialog(objectType); objectDiv.find(".item-name").val(objectName); }).tooltip(); if(objectData) { objectDiv.find(".item-type").val(objectData.type); objectDiv.find(".item-name").val(objectData.name); } $("#limited-objects-list").append(objectDiv); } $("#limited-objects-list-add-object-btn").click(function() { addLimitedObjectToList(); }) async function inputDialog(title, label) { return new Promise((resolve, reject) => { let inputDialogModal = $("#input-dialog-modal"); $("#input-dialog-modal-value").val(""); $("#input-dialog-modal-title").text(title); $("#input-dialog-modal-label").text(label); inputDialogModal.modal("show"); $("#input-dialog-modal-form").unbind().submit(function(event) { if (!this.checkValidity()) { event.preventDefault(); event.stopPropagation(); return; } else { $(this).removeClass("was-validated"); } inputDialogModal.modal("hide"); resolve( $("#input-dialog-modal-value").val() ); }); }) } function toggleCursor(enabled) { if (enabled) { $.post(`https://${resName}/enableCursor`, JSON.stringify({})); } else { $.post(`https://${resName}/disableCursor`, JSON.stringify({})); } } function loadDialog(dialogName) { var script = document.createElement('script'); console.log(`../utils/dialogs/${dialogName}/${dialogName}.js`) script.setAttribute('src',`../utils/dialogs/${dialogName}/${dialogName}.js`); document.head.appendChild(script); } // Messages received by client window.addEventListener('message', (event) => { let data = event.data; let action = data.action; switch(action) { case "loadDialog": { var script = document.createElement('script'); script.setAttribute('src',`../utils/dialogs/${data.dialogName}/${data.dialogName}.js`); document.head.appendChild(script); break; } } }) $.post(`https://${resName}/nuiReady`, JSON.stringify({}));