function addStr(str, index, stringToAdd){ return str.substring(0, index) + stringToAdd + str.substring(index, str.length); } var isTimerOn = false; var lastTime; var categories = []; var selectedCategory = "general_cat"; var craft2; var job2; var gang; var craftData; var sideCraftMenu; var itemClaiming = 0; var CraftQueue = []; var maxCraft = 10; var canCraftItem = true; var showAllCrafts = false; var canClaimAll = true; var canClaimItem = true; var canOpenSideCraft = true; let Inventory = ''; window.addEventListener('message', function(event) { switch (event.data.action) { case 'openCraft': selectedCategory = "general_cat"; canOpenSideCraft = true; canClaimItem = true; itemClaiming = 0; showAllCrafts = event.data.showAllCrafts; Inventory = event.data.inventory; var queue = event.data.queue; craftData = event.data; categories = event.data.categories; var craft = event.data.craft; craft2 = craft; var num = craft.length; var paragraph = ''; var row = '
'; var lastRowNum = 0; var job = event.data.job; job2 = event.data.job; gang = event.data.gang; var added = 0; var useCategories = event.data.useCategories; var categoriesButtonsHTML = ` `; document.querySelector('#claimall-button').disabled = false; if(useCategories){ for(let i = 0; i < categories.length; i++){ categoriesButtonsHTML += ` `; } $('#categories_btns').html(categoriesButtonsHTML); $('#categories_box').show(); } else { $('#categories_box').hide(); } if(num >= 13){ $('.itemslist_window').css('padding', '0.3125rem 0.55rem 0.3125rem 0.625rem'); } else { $('.itemslist_window').css('padding', '0.3125rem 1.05rem 0.3125rem 0.625rem'); } for(var i = 0; i < num; i++) { for(var i1 = 0; i1 < craft[i].job.length; i1++){ if(selectedCategory == "general_cat" || craft[i].category == selectedCategory){ if(craft[i].job[i1] == job || craft[i].job[i1] == gang || craft[i].job[i1] == ''){ if(!event.data.UseXP){ var itemName = event.data.itemNames; var itemId = craft[i].item; var index = i; added++ row += `
${itemName[itemId]}
`; var myEle = document.getElementById(itemId+"wb_"+event.data.wb+"wb_"+index); if(!myEle) { $(document).on('click', "#"+itemId+"wb_"+event.data.wb+"wb_"+index, function() { if(canOpenSideCraft) { canOpenSideCraft = false; allID = this.id; id = allID.substring(0, allID.indexOf('wb_')); index2 = allID.split("wb_"); $('.item_card-body').css('background-color', 'rgba(220, 220, 220, 0.20)'); $('#selected'+this.id).css('background-color', 'rgba(31, 94, 255, 1)'); var sound = new Audio('click.mp3'); sound.volume = 0.3; sound.play(); $.post('https://okokCrafting/action', JSON.stringify({ action: "craft", item: id, crafts: craft, itemName: itemName, index: index2[2], })); } }); } if ((added) % 4 === 0) { row = addStr(row, row.length, `
`); lastRowNum = row.length+6; } } else { if(craft[i].levelNeeded <= event.data.level || showAllCrafts){ var itemName = event.data.itemNames; var itemId = craft[i].item; var index = i; added++ row += `
${itemName[itemId]}
`; var myEle = document.getElementById(itemId+"wb_"+event.data.wb+"wb_"+index); if(!myEle) { $(document).on('click', "#"+itemId+"wb_"+event.data.wb+"wb_"+index, function() { if(canOpenSideCraft) { canOpenSideCraft = false; allID = this.id; id = allID.substring(0, allID.indexOf('wb_')); index2 = allID.split("wb_"); $('.item_card-body').css('background-color', 'rgba(220, 220, 220, 0.20)'); $('#selected'+this.id).css('background-color', 'rgba(31, 94, 255, 1)'); var sound = new Audio('click.mp3'); sound.volume = 0.3; sound.play(); $.post('https://okokCrafting/action', JSON.stringify({ action: "craft", item: id, crafts: craft, itemName: itemName, index: index2[2], level: event.data.level, })); } }); } if ((added) % 4 === 0) { row = addStr(row, row.length, `
`); lastRowNum = row.length+6; } } } } } } } row += `
`; if(event.data.UseXP) { $('#currentlevel').html(event.data.level); document.documentElement.style.setProperty('--percentage-width', event.data.percentage+"%"); $('.xpbar-col').css('margin-top', '-1.8rem'); } else { $('.xpbar').hide(); $('.xpbar-col').css('margin-top', '5.05rem'); } var queueRow = ''; CraftQueue = queue; if(queue.length > 0){ if(queue.length >= 6){ $('.craftingq_window').css('padding-right', '0.35rem'); } else { $('.craftingq_window').css('padding-right', '0rem'); } for (var i = 0; i < queue.length; i++) { if(queue[i].isDone == true) { if(queue[i].suc){ if(queue[i].isDis){ queueRow += `
${queue[i].itemName} x${queue[i].amount}
Concluded
`; } else { queueRow += `
${queue[i].itemName} x${queue[i].amount}
Concluded
`; } } else { queueRow += `
${queue[i].itemName} x${queue[i].amount}
Failed to craft
`; } } else { if(queue[i].isPending){ if(queue[i].isDis){ queueRow += `
${queue[i].itemName} x${queue[i].amount}
Pending
`; } else { queueRow += `
${queue[i].itemName} x${queue[i].amount}
Pending
`; } } else { if(queue[i].isDis){ queueRow += `
${queue[i].itemName} x${queue[i].amount}
Time left: ${queue[i].time}s
`; } else { queueRow += `
${queue[i].itemName} x${queue[i].amount}
Time left: ${queue[i].time}s
`; } } } } } else { queueRow = `
The crafting queue is empty
` } $('.craftingq_window').html(queueRow); $('#craft-table').html(row); $('.title-name').html(event.data.name); $('.title').fadeIn(); $('.itemslist').fadeIn(); $('.crafting-body').fadeIn(); break case 'openSideCraft': sideCraftMenu = event.data; canOpenSideCraft = true; var useLevels = false; if(sideCraftMenu.level != undefined){ var levelNeeded = sideCraftMenu.crafts[sideCraftMenu.index].levelNeeded; var level = sideCraftMenu.level; useLevels = true; } var isLevel = false; $('#quantity').val(1); maxCraft = sideCraftMenu.maxCraft; if(canCraftItem == false){ canCraftItem = true; document.querySelector('#craft-button').disabled = false; } var canCraft = true; var isAvailable = false; var num = event.data.recipe.length; var recipe = ``; var img = ` ${event.data.itemName} x${event.data.itemAmount} `; if(sideCraftMenu.isDis){ $('#top_text').html(`Requirements`); $('#bot_text').html(`You will receive`); img = ` ${event.data.itemName} x${event.data.itemAmount} (${event.data.isDisItemAmt}) `; } else { $('#top_text').html(`You will receive`); $('#bot_text').html(`Requirements`); } $('#side-image').html(img); $('#craft-time').html(event.data.time); if(useLevels){ if(level >= levelNeeded){ canCraft = true; isAvailable = true; isLevel = true; } else { isAvailable = false; canCraft = false; isLevel = true; } } for(var i = 0; i < num; i++){ var idName = event.data.recipe[i][0]; if(sideCraftMenu.isDis){ recipe += `
${event.data.itemNames[idName]} x${event.data.recipe[i][1]}
`; if(event.data.itemAmount > event.data.isDisItemAmt){ canCraft = false } } else { recipe += `
${event.data.itemNames[idName]} x${event.data.recipe[i][1]} (${event.data.inventory[i].key})
`; if(event.data.recipe[i][1] > event.data.inventory[i].key){ canCraft = false } } } $('#craft-button-div').html(` `); if(canCraft) { $('#craft-buttons-info').fadeIn(); $('#craft-button-div').fadeIn(); $('#craft-buttons-info-level').hide(); } else { $('#craft-buttons-info').hide(); $('#craft-buttons-info-level').hide(); } if(useLevels){ if(!isAvailable && isLevel){ $('#craft-button-div-level').html(` LEVEL REQUIRED: ${levelNeeded} `); $('#craft-buttons-info-level').fadeIn(); $('#craft-button-div-level').fadeIn(); } } $('#craft-percentage').html(event.data.percentage); $('.components_window').html(recipe); $('.itemrequirements').fadeIn(); break case 'ShowCraftCount': var time = event.data.time; var itemName = event.data.name; $('#crafting-text').html(`Crafting`); $('#item-name').html(`${itemName}`); $('#item-timer').html(`${time}s`); if(time == lastTime) { $('#cog').removeClass('fa-spin'); } else { $('#cog').addClass('fa-spin'); } if(!isTimerOn){ isTimerOn = true; $('.timer').fadeIn(); } lastTime = time break case 'CompleteCraftCount': var itemName = event.data.name; $('.timer_card-body').css('background-color', '#1fa34a'); $('#crafting-text').html(`Crafted`); $('#item-name').html(`${itemName}`); $('#item-timer').html(`0s`); $('#cog').removeClass('fa-spin'); $('#cog').removeClass('fa-cog'); $('#cog').addClass('fa-check'); break case 'FailedCraftCount': var itemName = event.data.name; $('.timer_card-body').css('background-color', '#990b0b'); $('#crafting-text').html(`Failed to craft`); $('#item-name').html(`${itemName}`); $('#item-timer').html(`0s`); $('#cog').removeClass('fa-spin'); $('#cog').removeClass('fa-cog'); $('#cog').addClass('fa-times'); break case 'HideCraftCount': isTimerOn = false; $('.timer').fadeOut(); setTimeout(function(){ $('#cog').removeClass('fa-times'); $('#cog').removeClass('fa-check'); $('#cog').addClass('fa-spin'); $('#cog').addClass('fa-cog'); $('.timer_card-body').css('background-color', 'rgba(31, 94, 255, 1)'); }, 400); break case 'updateCraftingItems': canClaimItem = true; if(selectedCategory != ""){ var queue = event.data.queue; var queueRow = ''; CraftQueue = queue; if(queue.length > 0){ if(queue.length >= 6){ $('.craftingq_window').css('padding-right', '0.35rem'); } else { $('.craftingq_window').css('padding-right', '0rem'); } for (var i = 0; i < queue.length; i++) { if(queue[i].isDone == true) { if(queue[i].suc){ if(queue[i].isDis){ queueRow += `
${queue[i].itemName} x${queue[i].amount}
Concluded
`; } else { queueRow += `
${queue[i].itemName} x${queue[i].amount}
Concluded
`; } } else { queueRow += `
${queue[i].itemName} x${queue[i].amount}
Failed to craft
`; } } else { if(queue[i].isPending){ if(queue[i].isDis){ queueRow += `
${queue[i].itemName} x${queue[i].amount}
Pending
`; } else { queueRow += `
${queue[i].itemName} x${queue[i].amount}
Pending
`; } } else { if(queue[i].isDis){ queueRow += `
${queue[i].itemName} x${queue[i].amount}
Time left: ${queue[i].time}s
`; } else { queueRow += `
${queue[i].itemName} x${queue[i].amount}
Time left: ${queue[i].time}s
`; } } } } } else { queueRow = `
The crafting queue is empty
` } $('.craftingq_window').html(queueRow); } break case 'resetItemNumber': itemClaiming = 0; break case 'resetButton': if(canCraftItem == false){ canCraftItem = true; document.querySelector('#craft-button').disabled = false; } break case 'canClaimAll': document.querySelector('#claimall-button').disabled = false; break case 'closeMenu': closeMenu(); break } }); $(document).on('click', ".cat_tab", function() { selectedCategory = $("input[name='category']:checked").val(); var num = craft2.length; var paragraph = ''; var row = '
'; var lastRowNum = 0; var added = 0 for(var i = 0; i < num; i++) { for(var i1 = 0; i1 < craft2[i].job.length; i1++){ if(selectedCategory == "general_cat" || craft2[i].category == selectedCategory){ if(craft2[i].job[i1] == job2 || craft2[i].job[i1] == gang || craft2[i].job[i1] == ''){ if(!craftData.UseXP){ var itemName = craftData.itemNames; var itemId = craft2[i].item; var index = i; added++ row += `
${itemName[itemId]}
`; if ((added) % 4 === 0) { row = addStr(row, row.length, `
`); lastRowNum = row.length+6; } } else { if(craft2[i].levelNeeded <= craftData.level || showAllCrafts){ var itemName = craftData.itemNames; var itemId = craft2[i].item; var index = i; added++ row += `
${itemName[itemId]}
`; if ((added) % 4 === 0) { row = addStr(row, row.length, `
`); lastRowNum = row.length+6; } } } } } } } row += `
`; if(craftData.UseXP) { $('#currentlevel').html(craftData.level); document.documentElement.style.setProperty('--percentage-width', craftData.percentage+"%"); $('.xpbar-col').css('margin-top', '-1.8rem'); } else { $('.xpbar').hide(); $('.xpbar-col').css('margin-top', '5.05rem'); } $('#craft-table').html(row); $('.title-name').html(craftData.name); $('.title').fadeIn(); $('.itemslist').fadeIn(); $('.crafting-body').fadeIn(); }); function restartCrafts(){ selectedCategory = 'general_cat'; var num = craft2.length; var paragraph = ''; var row = '
'; var lastRowNum = 0; var added = 0 for(var i = 0; i < num; i++) { for(var i1 = 0; i1 < craft2[i].job.length; i1++){ if(selectedCategory == "general_cat" || craft2[i].category == selectedCategory){ if(craft2[i].job[i1] == job2 || craft2[i].job[i1] == gang || craft2[i].job[i1] == ''){ if(!craftData.UseXP){ var itemName = craftData.itemNames; var itemId = craft2[i].item; var index = i; added++ row += `
${itemName[itemId]}
`; if ((added) % 4 === 0) { row = addStr(row, row.length, `
`); lastRowNum = row.length+6; } } else { if(craft2[i].levelNeeded <= craftData.level || showAllCrafts){ var itemName = craftData.itemNames; var itemId = craft2[i].item; var index = i; added++ row += `
${itemName[itemId]}
`; if ((added) % 4 === 0) { row = addStr(row, row.length, `
`); lastRowNum = row.length+6; } } } } } } } row += `
`; if(craftData.UseXP) { $('#currentlevel').html(craftData.level); document.documentElement.style.setProperty('--percentage-width', craftData.percentage+"%"); $('.xpbar-col').css('margin-top', '-1.8rem'); } else { $('.xpbar').hide(); $('.xpbar-col').css('margin-top', '5.05rem'); } $('#craft-table').html(row); $('.title-name').html(craftData.name); } $(document).ready(function() { document.onkeyup = function(data) { if (data.which == 27) { closeMenu(); } }; }); $(document).ready(function(){ $('#plus').click(function(e) { var quantity = parseInt($('#quantity').val()); if(quantity < maxCraft){ $('#quantity').val(quantity + 1); updateSideMenu(quantity + 1); } }); $('#minus').click(function(e) { var quantity = parseInt($('#quantity').val()); if(quantity > maxCraft){ $('#quantity').val(maxCraft); updateSideMenu(maxCraft); } else { if(quantity > 1) { $('#quantity').val(quantity - 1); updateSideMenu(quantity - 1); } } }); $('#max').click(function(e) { var quantity = parseInt($('#quantity').val()); if(quantity != maxCraft){ $('#quantity').val(maxCraft); updateSideMenu(maxCraft); } }); }); function quantity_change(t) { var quantity = parseInt($('#quantity').val()); if(quantity > maxCraft){ $('#quantity').val(maxCraft); updateSideMenu(maxCraft); } else if(quantity < 1) { $('#quantity').val(1); updateSideMenu(1); } else { updateSideMenu(quantity); } } function craft(t) { if(canCraftItem){ canCraftItem = false; document.querySelector('#craft-button').disabled = true; var itemId = t.dataset.item; var recipe = t.dataset.recipe; var amount = t.dataset.amount; var xp = t.dataset.xp; var isDis = t.dataset.isDis; var index = t.dataset.index; var level = t.dataset.level; var quantity = document.getElementById("quantity").value; if(quantity > maxCraft){ quantity = maxCraft; $('#quantity').val(quantity - 1); updateSideMenu(quantity - 1); } $.post('https://okokCrafting/action', JSON.stringify({ action: "craft-button", itemID: itemId, recipe: recipe, amount: amount, xp: xp, quantity: quantity, isDis: isDis, index: index, level: level, })); } } function claim(t) { var index = parseInt(t.dataset.id)+1; var itemRndID = parseInt(CraftQueue[index-1].randomID); if(itemClaiming != itemRndID && canClaimItem){ canClaimItem = false; itemClaiming = itemRndID; $.post('https://okokCrafting/action', JSON.stringify({ action: "claim-item", index: index, })); } } function claimall(t) { if(CraftQueue[0] != undefined && CraftQueue[0].isDone && canClaimItem){ canClaimItem = false; document.querySelector('#claimall-button').disabled = true; $.post('https://okokCrafting/action', JSON.stringify({ action: "claim-all", })); } } function claimFail(t) { var index = parseInt(t.dataset.id)+1; var itemRndID = parseInt(CraftQueue[index-1].randomID); if(itemClaiming != itemRndID && canClaimItem){ canClaimItem = false; itemClaiming = itemRndID; $.post('https://okokCrafting/action', JSON.stringify({ action: "fail-item", index: index, })); } } function cancel(t) { var index = parseInt(t.dataset.id)+1; var itemRndID = parseInt(CraftQueue[index-1].randomID); if(itemClaiming != itemRndID && canClaimItem){ canClaimItem = false; itemClaiming = itemRndID; $.post('https://okokCrafting/action', JSON.stringify({ action: "cancel-item", index: index, })); } } function updateSideMenu(quantity){ var canCraft = true var num = sideCraftMenu.recipe.length; var recipe = ``; var img = ` ${sideCraftMenu.itemName} x${sideCraftMenu.itemAmount*quantity} `; if(sideCraftMenu.isDis){ img = ` ${sideCraftMenu.itemName} x${sideCraftMenu.itemAmount*quantity} (${sideCraftMenu.isDisItemAmt}) `; } $('#side-image').html(img); $('#craft-time').html(sideCraftMenu.time*quantity); for(var i = 0; i < num; i++){ var idName = sideCraftMenu.recipe[i][0]; if(sideCraftMenu.isDis){ recipe += `
${sideCraftMenu.itemNames[idName]} x${sideCraftMenu.recipe[i][1]*quantity}
`; if(sideCraftMenu.itemAmount > sideCraftMenu.isDisItemAmt){ canCraft = false } } else { recipe += `
${sideCraftMenu.itemNames[idName]} x${sideCraftMenu.recipe[i][1]*quantity} (${sideCraftMenu.inventory[i].key})
`; if(sideCraftMenu.recipe[i][1] > sideCraftMenu.inventory[i].key){ canCraft = false } } } $('#craft-button-div').html(` `); if(canCraft) { $('#craft-button-div').fadeIn(); } else { $('#craft-button-div').hide(); } $('#craft-percentage').html(sideCraftMenu.percentage); $('.components_window').html(recipe); $('.itemrequirements').fadeIn(); } function closeMenu(){ itemClaiming = 0; selectedCategory = ""; $('.crafting-body').fadeOut(); $('.title').fadeOut(); $('.itemslist').fadeOut(); $('.itemrequirements').fadeOut(); setTimeout(function(){ restartCrafts(); }, 400); $.post('https://okokCrafting/action', JSON.stringify({ action: "close", })); }