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.copy(change.item) inventory.items.push(item) break; } case 2: //ItemChangeStack { let itemStack = inventory.items.find(i=>i.id == change.item.id) itemStack.count += change.item.count break; } case 3: //ItemRemove { let itemStack = inventory.items.findIndex(i=>i.id == change.item.id) inventory.items.splice(itemStack, 1) break; } case 4: //EquipmentChange { inventory.equipment[change.itemSlot] = change.item.id break; } } }) }