Procudures not able to use local variables when checking for items in GUI slots

Status
Fixed
Issue description

When using a local variable to automaticly cycle through different slots of a GUI following error occurs:

D:\MCreator Workspaces\KingofCastle\src\main\java\net\mcreator\castlecraft\procedures\ForgeFurnaceUpgradeIIIProcedureProcedure.java:69: error: local variables referenced from an inner class must be final or effectively final  
D:\MCreator Workspaces\KingofCastle\src\main\java\net\mcreator\castlecraft\procedures\ForgeFurnaceUpgradeIIIProcedureProcedure.java:69: error: local variables referenced from an inner class must be final or effectively final  
               }.getItemStack((int) ((Slot))))).copy(); 
                                      ^ 
D:\MCreator Workspaces\KingofCastle\src\main\java\net\mcreator\castlecraft\procedures\ForgeFurnaceUpgradeIIIProcedureProcedure.java:107: error: local variables referenced from an inner class must be final or effectively final  
D:\MCreator Workspaces\KingofCastle\src\main\java\net\mcreator\castlecraft\procedures\ForgeFurnaceUpgradeIIIProcedureProcedure.java:107: error: local variables referenced from an inner class must be final or effectively final  
               }.getItemStack((int) ((Slot))))).copy(); 
                                      ^ 
D:\MCreator Workspaces\KingofCastle\src\main\java\net\mcreator\castlecraft\procedures\ForgeFurnaceUpgradeIIIProcedureProcedure.java:155: error: local variables referenced from an inner class must be final or effectively final  
D:\MCreator Workspaces\KingofCastle\src\main\java\net\mcreator\castlecraft\procedures\ForgeFurnaceUpgradeIIIProcedureProcedure.java:155: error: local variables referenced from an inner class must be final or effectively final  
                     }.getItemStack((int) ((Slot))))).copy(); 
                                            ^ 
D:\MCreator Workspaces\KingofCastle\src\main\java\net\mcreator\castlecraft\procedures\ForgeFurnaceUpgradeIIIProcedureProcedure.java:250: error: local variables referenced from an inner class must be final or effectively final  
D:\MCreator Workspaces\KingofCastle\src\main\java\net\mcreator\castlecraft\procedures\ForgeFurnaceUpgradeIIIProcedureProcedure.java:250: error: local variables referenced from an inner class must be final or effectively final  
                     }.getItemStack((int) ((Slot))))).copy();

'Slot' is a local double variable, which is increamented to cycle through the slots of a GUI.

The same procedure was still working in older version of MCreator and also in snapshots for 2020.2

Issue comments

I can confirm this, this is a regression of:

  • [Bugfix] Set item in slot procedure blocks ignored amount if a non-constant item was used

We will probably have to release another patch.

UPDATE 3: We have released another patch update to fix some more bugs found in 2020.2:

2020.2.14217

  • [Bugfix #58788] Local variables could not be used with some procedure blocks
  • [Bugfix] Itemstack management procedure blocks did not work in most cases
  • [Bugfix] Console could print some lines twice

To apply the patch (fix these bugs and get the listed features), download MCreator 2019.5 again and install it over the current installation. If you have update notifications turned on, you will be notified of this patch automatically.

We have decided to release three patches this time to ensure MCreator 2020.2 will work smoothly for all the users that might use it for 1.12.2 modding in the future. We are aware patches are annoying so we are already working in the direction of supporting in-app updates and patches in the future.

You are welcome! I am glad I could help :) If you like what we do, consider donating to us to help us keep this project up.