diff --git a/src/lib/plugins/inventory.js b/src/lib/plugins/inventory.js index 5da21eb..50c7344 100644 --- a/src/lib/plugins/inventory.js +++ b/src/lib/plugins/inventory.js @@ -1,21 +1,21 @@ -var Version = require("../version"); -var Windows = require("prismarine-windows")(Version).windows; -var ItemStack = require("prismarine-item")(Version); +var version = require("../version"); +var windows = require("prismarine-windows")(version).windows; +var Item = require("prismarine-item")(version); module.exports.player = function(player,serv) { player.heldItemSlot = 0; - player.heldItem = new ItemStack(256, 1); - player.inventory = new Windows.InventoryWindow(0, "Inventory", 44); + player.heldItem = new Item(256, 1); + player.inventory = new windows.InventoryWindow(0, "Inventory", 44); player._client.on("held_item_slot", ({slotId} = {}) => { player.heldItemSlot = slotId; - player.heldItem = player.inventory.slots[36 + player.heldItemSlot]; + player.setEquipment(0,player.inventory.slots[36 + player.heldItemSlot]); player._writeOthersNearby("entity_equipment",{ entityId: player.id, slot: 0, - item: ItemStack.toNotch(player.heldItem) + item: Item.toNotch(player.heldItem) }); }); @@ -139,7 +139,7 @@ module.exports.player = function(player,serv) return; } - var newItem = ItemStack.fromNotch(item); + var newItem = Item.fromNotch(item); player.inventory.updateSlot(slot, newItem); }); @@ -153,17 +153,18 @@ module.exports.player = function(player,serv) }; equipments[player.heldItemSlot]=0; if(equipments[slot]!==undefined) { + player.setEquipment(equipments[slot],newItem); player._writeOthersNearby("entity_equipment", { entityId: player.id, slot: equipments[slot], - item: ItemStack.toNotch(newItem) + item: Item.toNotch(newItem) }); } player._client.write("set_slot", { windowId: 0, slot: slot, - item: ItemStack.toNotch(newItem) + item: Item.toNotch(newItem) }); }); @@ -197,7 +198,7 @@ module.exports.player = function(player,serv) }); player.playSoundAtSelf('random.pop'); - var newItem = new ItemStack(collectEntity.itemId, 1, collectEntity.damage); + var newItem = new Item(collectEntity.itemId, 1, collectEntity.damage); player.inventory.updateSlot(emptySlot, newItem); collectEntity.destroy() } diff --git a/src/lib/plugins/spawn.js b/src/lib/plugins/spawn.js index cb8efb5..c5a63f9 100644 --- a/src/lib/plugins/spawn.js +++ b/src/lib/plugins/spawn.js @@ -4,6 +4,7 @@ var Entity = require("../entity"); var path = require('path'); var requireIndex = require('requireindex'); var plugins = requireIndex(path.join(__dirname,'..', 'plugins')); +var Item = require("prismarine-item")(version); var Vec3 = require("vec3").Vec3; @@ -118,6 +119,31 @@ module.exports.player=function(player,serv){ }); } }); + + + player.spawnEntity = entity => { + player._client.write(entity.spawnPacketName, entity.getSpawnPacket()); + if (typeof entity.itemId != 'undefined') { + entity.sendMetadata([{ + "key": 10, + "type": 5, + "value": { + blockId: entity.itemId, + itemDamage: entity.itemDamage, + itemCount:1 + } + }]); + } + entity.equipment.forEach((equipment,slot) => { + console.log(equipment+" "+slot); + if (equipment != undefined) player._client.write("entity_equipment", { + entityId: entity.id, + slot: slot, + item: Item.toNotch(equipment) + }); + } + ) + }; }; module.exports.entity=function(entity,serv) { diff --git a/src/lib/plugins/world.js b/src/lib/plugins/world.js index eff2116..97ee6bf 100644 --- a/src/lib/plugins/world.js +++ b/src/lib/plugins/world.js @@ -53,21 +53,6 @@ module.exports.server=function(serv,{regionFolder,generation={"name":"diamond_sq module.exports.player=function(player,serv,settings) { - player.spawnEntity = entity => { - player._client.write(entity.spawnPacketName, entity.getSpawnPacket()); - if (typeof entity.itemId != 'undefined') { - entity.sendMetadata([{ - "key": 10, - "type": 5, - "value": { - blockId: entity.itemId, - itemDamage: entity.itemDamage, - itemCount:1 - } - }]); - } - }; - player.unloadChunk = (chunkX,chunkZ) => { delete player.loadedChunks[chunkX+","+chunkZ];