/*
** j###t ########## #### ####
** j###t ########## #### ####
** j###T "###L J###"
** ######P' ########## #########
** ######k, ########## T######T
** ####~###L ####
** #### q###L ########## .#####
** #### \###L ########## #####"
**
** $Id$
**
** Class History
**
** Date Name Description
** ---------|------------|-----------------------------------------------
** 24Aug98 subtle start of recorded history
**
*/
package key.commands;
import key.*;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.Enumeration;
public class Remove extends Verb
{
public Remove()
{
setKey( "remove" );
usage = "<object-being-worn> | 'mail' <msg #>";
verb = "remove";
method = null;
checkInventory = true;
checkRoom = false;
}
protected boolean handleKeyword( Player p, StringTokenizer args, String fullLine, CategoryCommand caller, InteractiveConnection ic, Flags flags, String keyword ) throws IOException
{
Object o = null;
if( keyword.equalsIgnoreCase( "mail" ) )
{
o = p.getMailbox();
}
else if( keyword.equalsIgnoreCase( "news" ) )
{
}
if( o != null )
{
if( o instanceof Container )
{
Container box = (Container) o;
if( args.hasMoreTokens() )
{
int number;
String strNumber = args.nextToken();
try
{
number = Integer.parseInt( strNumber );
}
catch( NumberFormatException e )
{
ic.sendError( "'" + strNumber + "' is not a number." );
return true;
}
if( number < 1 )
{
ic.sendError( "You can't remove negative numbers." );
return true;
}
if( number > box.count() )
{
ic.sendError( "You don't have that many messages." );
return true;
}
try
{
box.removeByNumber( number - 1 );
}
catch( BadKeyException e )
{
throw new UnexpectedResult( e.toString() + " while removing numbered atom." );
}
catch( NonUniqueKeyException e )
{
throw new UnexpectedResult( e.toString() + " while removing numbered atom." );
}
ic.sendFeedback( number + " has been removed from " + box.getName() );
}
else
{
ic.sendError( "You should use 'remove mail #', when # is the message number you wish to remove." );
}
}
else
ic.sendError( "'" + keyword + "' doesn't look like good place to go removing things from..." );
return( true );
}
else
return( super.handleKeyword( p, args, fullLine, caller, ic, flags, keyword ) );
}
public String getVerb()
{
return( "remove" );
}
public void setVerb( String v )
{
throw new InvalidArgumentException( "you may not set this property" );
}
}