diff options
author | tth05 <36999320+tth05@users.noreply.github.com> | 2023-10-15 21:53:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-15 19:53:27 +0000 |
commit | 8ce67c167c8f5938b0fed79b1d9727663d9cd9bc (patch) | |
tree | 6e5f1c41c40e748d6c4b1a6ae792f9ec39aca9bd /src/main/java/gregtech/common/covers | |
parent | 7a885d78f2d10ee1c7c00ac865bfa6abb0c71500 (diff) | |
download | GT5-Unofficial-8ce67c167c8f5938b0fed79b1d9727663d9cd9bc.tar.gz GT5-Unofficial-8ce67c167c8f5938b0fed79b1d9727663d9cd9bc.tar.bz2 GT5-Unofficial-8ce67c167c8f5938b0fed79b1d9727663d9cd9bc.zip |
Fix memory leak of player instances in CoverBehavior (#2333)
* Use weak references to store last player in cover behavior
* Remove duplicate lastPlayer field from GT_CoverBehavior
Diffstat (limited to 'src/main/java/gregtech/common/covers')
-rw-r--r-- | src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java b/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java index 5145777f06..b57c4d682b 100644 --- a/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java +++ b/src/main/java/gregtech/common/covers/GT_Cover_ControlsWork.java @@ -50,16 +50,20 @@ public class GT_Cover_ControlsWork extends GT_CoverBehavior implements IControls if (machine.wasShutdown()) { machine.disableWorking(); if (!mPlayerNotified) { - mPlayerNotified = true; - GT_Utility.sendChatToPlayer( - lastPlayer, - aTileEntity.getInventoryName() + "at " - + String.format( - "(%d,%d,%d)", - aTileEntity.getXCoord(), - aTileEntity.getYCoord(), - aTileEntity.getZCoord()) - + " shut down."); + EntityPlayer player = lastPlayer == null ? null : lastPlayer.get(); + if (player != null) { + lastPlayer = null; + mPlayerNotified = true; + GT_Utility.sendChatToPlayer( + player, + aTileEntity.getInventoryName() + "at " + + String.format( + "(%d,%d,%d)", + aTileEntity.getXCoord(), + aTileEntity.getYCoord(), + aTileEntity.getZCoord()) + + " shut down."); + } } return 2; } else { |