43 lines
1.5 KiB
TypeScript
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;
|
|
}
|
|
}
|
|
})
|
|
} |