import { inventoryChange } from "../Classes/Incoming/inventoryChange"; import { itemData } from "../Classes/itemData"; import { playerData } from "../Classes/playerData"; export function updateInventory(socket, data){ if(!socket.hasOwnProperty("player")) return; let buff = Buffer.from(data, 'base64'); let data1 : inventoryChange[] = JSON.parse(buff.toString('utf-8')); let player : playerData = socket.player let inventory = player.inventory data1.forEach(change=>{ switch(change.operation){ case 0: //None break; case 1: //ItemAdd { let item = itemData.fromChange(change) inventory.items.push(item) break; } case 2: //ItemAddToStack { let itemStack = inventory.items.find(i=>i.id == change.id) itemStack.count += change.change break; } case 3: //ItemRemove { let itemStack = inventory.items.findIndex(i=>i.id == change.id) inventory.items.splice(itemStack, 1) break; } case 4: //ItemRemoveFromStack { let itemStack = inventory.items.find(i=>i.id == change.id) itemStack.count -= change.change break; } case 5: //EquipmentChange { inventory.equipment = change.equipment break; } } }) }