mirror of
https://github.com/CosmicStar98/bedrocktool.git
synced 2024-06-17 05:59:45 +00:00
fix out of bounds in inventory
This commit is contained in:
parent
b7ad339a64
commit
4c0dd665f1
|
@ -43,6 +43,9 @@ func (w *worldsServer) processItemPacketsServer(pk packet.Packet) packet.Packet
|
|||
|
||||
case *packet.InventorySlot:
|
||||
if pk.WindowID == 0x0 {
|
||||
if w.serverState.playerInventory == nil {
|
||||
w.serverState.playerInventory = make([]protocol.ItemInstance, 36)
|
||||
}
|
||||
w.serverState.playerInventory[pk.Slot] = pk.NewItem
|
||||
} else {
|
||||
// save content
|
||||
|
|
|
@ -550,8 +550,6 @@ func (w *worldsServer) SaveAndReset() {
|
|||
f.Close()
|
||||
}
|
||||
|
||||
time.Sleep(1 * time.Second)
|
||||
|
||||
// zip it
|
||||
filename := folder + ".mcworld"
|
||||
if err := utils.ZipFolder(filename, folder); err != nil {
|
||||
|
|
|
@ -62,12 +62,40 @@ func (bp *BehaviourPack) CheckAddLink(pack utils.Pack) {
|
|||
logrus.Error(err)
|
||||
return
|
||||
}
|
||||
if len(bp.blocks) > 0 {
|
||||
|
||||
hasBlocksJson := false
|
||||
if bp.HasBlocks() {
|
||||
_, err = z.Open("blocks.json")
|
||||
if err != nil {
|
||||
return
|
||||
if err == nil {
|
||||
hasBlocksJson = true
|
||||
}
|
||||
}
|
||||
|
||||
hasEntitiesFolder := false
|
||||
if bp.HasEntities() {
|
||||
for _, f := range z.File {
|
||||
if f.Name == "entity" && f.FileInfo().IsDir() {
|
||||
hasEntitiesFolder = true
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
hasItemsFolder := false
|
||||
if bp.HasItems() {
|
||||
for _, f := range z.File {
|
||||
if f.Name == "items" && f.FileInfo().IsDir() {
|
||||
hasItemsFolder = true
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// has no assets needed
|
||||
if !(hasBlocksJson || hasEntitiesFolder || hasItemsFolder) {
|
||||
return
|
||||
}
|
||||
|
||||
h := pack.Manifest().Header
|
||||
bp.AddDependency(h.UUID, h.Version)
|
||||
}
|
||||
|
@ -80,6 +108,10 @@ func (bp *BehaviourPack) HasItems() bool {
|
|||
return len(bp.items) > 0
|
||||
}
|
||||
|
||||
func (bp *BehaviourPack) HasEntities() bool {
|
||||
return len(bp.entities) > 0
|
||||
}
|
||||
|
||||
func (bp *BehaviourPack) HasContent() bool {
|
||||
return bp.HasBlocks() || bp.HasItems()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user