public void release( NetState ns ) { try { if( autoReleasor != null ) { if( autoReleasor.Running ) autoReleasor.Stop(); autoReleasor = null; } try { if( !( ns.Mobile.Region is Jail ) ) return; ns.Mobile.SendLocalizedMessage( 501659 ); } catch( Exception err ) { Console.WriteLine( "{0}: {1} Mobile not released", JSName, err ); return; } releaseLoc rl; try { rl = releasePoints[ns.Mobile.Serial.Value]; } catch { rl = new releaseLoc(); rl.mobile = ns.Mobile.Serial.Value; releasePoints.Add( ns.Mobile.Serial.Value, rl ); } if( rl.release( freedBy ) ) releasePoints.Remove( ns.Mobile.Serial.Value ); } catch( Exception err ) { Console.WriteLine( "{0}: {1}", JSName, err ); } if( releasePoints.Count == 0 ) { Console.WriteLine( "Jailing removed for account {0}", Name ); try { list.Remove( ID ); } catch { } } }
public void StartTimer() { if( autoReleasor != null ) { if( autoReleasor.Running ) autoReleasor.Stop(); autoReleasor = null; } if( !jailed ) { release(); return; } autoReleasor = new JailingTimer( this ); autoReleasor.Start(); }