KF-MMO-Server/Items/_updateInventory.ts

43 lines
1.5 KiB
TypeScript

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;
}
}
})
}