AscensionGameDev / Intersect-Engine

Intersect provides a complete game development suite for creating 2d mmorpgs with no programming experience required!
https://www.freemmorpgmaker.com/
Other
223 stars 360 forks source link

bug: server crash after crafting item when inventory full #2388

Open liame-ruoy-retne opened 1 month ago

liame-ruoy-retne commented 1 month ago

Description

when i try to craft an item and my inventory is full the server closes and i get this error just as the crafting bar reaches the end of it cycle

https://github.com/user-attachments/assets/620a02f0-8b57-4337-ba3d-a8e6d8cfe9c0

Steps to Reproduce

  1. open crafting table
  2. have full inventory
  3. click craft

Version with bug

v0.8.0.226

Last version that worked well

Unknown

Affected platforms

Windows, I was not able test on other platforms

Did you find any workaround?

only workaround i've found is when rng destroys the last however many crafting materials needed to actually craft the item and it leaves some space in your inventory than the server stays activated

Relevant log output

--------------------------------------------------------------------------------
2024-10-10 01:20:47.348 [Error] Received unhandled exception from System.Threading.Thread: Object reference not set to an instance of an object.

--------------------------------------------------------------------------------
2024-10-10 01:20:47.354 [Error] NullReferenceException: Object reference not set to an instance of an object.
    Stack:    at Intersect.Server.Entities.Player.GiveItem(Item item, Int32 destSlot, Boolean sendUpdate, BagSlot[] bagSlots) in D:\a\Intersect-Engine\Intersect-Engine\Intersect.Server.Core\Entities\Player.cs:line 2972
   at Intersect.Server.Entities.Player.TryGiveItem(Item item, ItemHandling handler, Boolean bankOverflow, Int32 slot, Boolean sendUpdate, Int32 overflowTileX, Int32 overflowTileY) in D:\a\Intersect-Engine\Intersect-Engine\Intersect.Server.Core\Entities\Player.cs:line 2752
   at Intersect.Server.Entities.Player.TryGiveItem(Guid itemId, Int32 quantity) in D:\a\Intersect-Engine\Intersect-Engine\Intersect.Server.Core\Entities\Player.cs:line 2693
   at Intersect.Server.Entities.Player.CraftItem() in D:\a\Intersect-Engine\Intersect-Engine\Intersect.Server.Core\Entities\Player.cs:line 4127
   at Intersect.Server.Entities.Player.Update(Int64 timeMs) in D:\a\Intersect-Engine\Intersect-Engine\Intersect.Server.Core\Entities\Player.cs:line 906
   at Intersect.Server.Maps.MapInstance.UpdateEntities(Int64 timeMs) in D:\a\Intersect-Engine\Intersect-Engine\Intersect.Server.Core\Maps\MapInstance.cs:line 1290
   at Intersect.Server.Maps.MapInstance.Update(Int64 timeMs) in D:\a\Intersect-Engine\Intersect-Engine\Intersect.Server.Core\Maps\MapInstance.cs:line 278
   at Intersect.Server.Core.LogicService.LogicThread.UpdateMap(MapInstance mapInstance, Boolean onlyProjectiles) in D:\a\Intersect-Engine\Intersect-Engine\Intersect.Server.Core\Core\LogicService.LogicThread.cs:line 403

--------------------------------------------------------------------------------

Duplicate Bug Check