From ca953f45969a220daf1bfdedadd84e366e530bde Mon Sep 17 00:00:00 2001 From: thatsIch Date: Sat, 25 Apr 2015 20:09:53 +0200 Subject: [PATCH] Fixes #1327: Prevents crash when configuring a GUI --- .../core/sync/packets/PacketConfigButton.java | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/main/java/appeng/core/sync/packets/PacketConfigButton.java b/src/main/java/appeng/core/sync/packets/PacketConfigButton.java index 4125f1f9e..2bd7834d6 100644 --- a/src/main/java/appeng/core/sync/packets/PacketConfigButton.java +++ b/src/main/java/appeng/core/sync/packets/PacketConfigButton.java @@ -31,16 +31,17 @@ import appeng.api.util.IConfigurableObject; import appeng.container.AEBaseContainer; import appeng.core.sync.AppEngPacket; import appeng.core.sync.network.INetworkInfo; +import appeng.helpers.Reflected; import appeng.util.Platform; -public class PacketConfigButton extends AppEngPacket +public final class PacketConfigButton extends AppEngPacket { - - public final Settings option; - public final boolean rotationDirection; + private final Settings option; + private final boolean rotationDirection; // automatic. + @Reflected public PacketConfigButton( ByteBuf stream ) { this.option = Settings.values()[stream.readInt()]; @@ -66,12 +67,15 @@ public class PacketConfigButton extends AppEngPacket public void serverPacketData( INetworkInfo manager, AppEngPacket packet, EntityPlayer player ) { EntityPlayerMP sender = (EntityPlayerMP) player; - AEBaseContainer baseContainer = (AEBaseContainer) sender.openContainer; - if( baseContainer.getTarget() instanceof IConfigurableObject ) + if ( sender.openContainer instanceof AEBaseContainer ) { - IConfigManager cm = ( (IConfigurableObject) baseContainer.getTarget() ).getConfigManager(); - Enum newState = Platform.rotateEnum( cm.getSetting( this.option ), this.rotationDirection, this.option.getPossibleValues() ); - cm.putSetting( this.option, newState ); + final AEBaseContainer baseContainer = (AEBaseContainer) sender.openContainer; + if( baseContainer.getTarget() instanceof IConfigurableObject ) + { + IConfigManager cm = ( (IConfigurableObject) baseContainer.getTarget() ).getConfigManager(); + Enum newState = Platform.rotateEnum( cm.getSetting( this.option ), this.rotationDirection, this.option.getPossibleValues() ); + cm.putSetting( this.option, newState ); + } } } }