Refactors grid connections (#3219)

Extracted all checks and subsequent updates to a factory method from the constructor.
Reordered checks to check for nulls before anything else.
Also existing connections before security breaks.
Fixes TileController#checkController() using the wrong position.
Added debug logging for failed connections.
Improved logging.
Inversed boolean so false no longer means security check passed.
Only issue a security break on SecurityConnectionException.
This commit is contained in:
yueh
2017-11-12 18:13:59 +01:00
committed by GitHub
parent ba9af94228
commit e0bf7223e0
9 changed files with 129 additions and 96 deletions
@@ -241,11 +241,11 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I
{
try
{
new GridConnection( cn, sn, AEPartLocation.INTERNAL );
GridConnection.create( cn, sn, AEPartLocation.INTERNAL );
}
catch( final FailedConnectionException e )
{
// ekk!
AELog.debug( e );
bp.removeFromWorld();
this.setCenter( null );
@@ -292,11 +292,11 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I
{
try
{
new GridConnection( cn, sn, AEPartLocation.INTERNAL );
GridConnection.create( cn, sn, AEPartLocation.INTERNAL );
}
catch( final FailedConnectionException e )
{
// ekk!
AELog.debug( e );
bp.removeFromWorld();
this.setSide( side, null );
@@ -637,6 +637,7 @@ public class CableBusContainer extends CableBusStorage implements AEMultiTile, I
catch( final FailedConnectionException e )
{
// ekk
AELog.debug( e );
}
}
}
@@ -41,6 +41,7 @@ import appeng.api.parts.IPartHost;
import appeng.api.parts.IPartModel;
import appeng.api.util.AECableType;
import appeng.api.util.AEPartLocation;
import appeng.core.AELog;
import appeng.core.AppEng;
import appeng.helpers.Reflected;
import appeng.items.parts.PartModels;
@@ -208,6 +209,7 @@ public class PartToggleBus extends PartBasicState
catch( final FailedConnectionException e )
{
// :(
AELog.debug( e );
}
}
else
@@ -247,6 +247,8 @@ public class PartP2PTunnelME extends PartP2PTunnel<PartP2PTunnelME> implements I
{
final TileEntity start = this.getTile();
final TileEntity end = me.getTile();
AELog.debug( e );
AELog.warn( "Failed to establish a ME P2P Tunnel between the tunnels at [x=%d, y=%d, z=%d] and [x=%d, y=%d, z=%d]",
start.getPos().getX(), start.getPos().getY(), start.getPos().getZ(), end.getPos().getX(), end.getPos().getY(),