Server.Gumps.SetObjectGump.OnResponse C# (CSharp) Méthode

OnResponse() public méthode

public OnResponse ( Server.Network.NetState sender, RelayInfo info ) : void
sender Server.Network.NetState
info RelayInfo
Résultat void
		public override void OnResponse( NetState sender, RelayInfo info )
		{
			object toSet;
			bool shouldSet, shouldSend = true;
			object viewProps = null;

			switch ( info.ButtonID )
			{
				case 0: // closed
				{
					m_Mobile.SendGump( new PropertiesGump( m_Mobile, m_Object, m_Stack, m_List, m_Page ) );

					toSet = null;
					shouldSet = false;
					shouldSend = false;

					break;
				}
				case 1: // Change by Target
				{
					m_Mobile.Target = new SetObjectTarget( m_Property, m_Mobile, m_Object, m_Stack, m_Type, m_Page, m_List );
					toSet = null;
					shouldSet = false;
					shouldSend = false;
					break;
				}
				case 2: // Change by Serial
				{
					toSet = null;
					shouldSet = false;
					shouldSend = false;

					m_Mobile.SendMessage( "Enter the serial you wish to find:" );
					m_Mobile.Prompt = new InternalPrompt( m_Property, m_Mobile, m_Object, m_Stack, m_Type, m_Page, m_List );

					break;
				}
				case 3: // Nullify
				{
					toSet = null;
					shouldSet = true;

					break;
				}
				case 4: // View Properties
				{
					toSet = null;
					shouldSet = false;

					object obj = m_Property.GetValue( m_Object, null );

					if ( obj == null )
						m_Mobile.SendMessage( "The property is null and so you cannot view its properties." );
					else if ( !BaseCommand.IsAccessible( m_Mobile, obj ) )
						m_Mobile.SendMessage( "You may not view their properties." );
					else
						viewProps = obj;

					break;
				}
				default:
				{
					toSet = null;
					shouldSet = false;

					break;
				}
			}

			if ( shouldSet )
			{
				try
				{
					CommandLogging.LogChangeProperty( m_Mobile, m_Object, m_Property.Name, toSet==null?"(null)":toSet.ToString() );
					m_Property.SetValue( m_Object, toSet, null );
					PropertiesGump.OnValueChanged( m_Object, m_Property, m_Stack );
				}
				catch
				{
					m_Mobile.SendMessage( "An exception was caught. The property may not have changed." );
				}
			}

			if ( shouldSend )
				m_Mobile.SendGump( new SetObjectGump( m_Property, m_Mobile, m_Object, m_Stack, m_Type, m_Page, m_List ) );

			if ( viewProps != null )
				m_Mobile.SendGump( new PropertiesGump( m_Mobile, viewProps ) );
		}
	}