/* ** j###t ########## #### #### ** j###t ########## #### #### ** j###T "###L J###" ** ######P' ########## ######### ** ######k, ########## T######T ** ####~###L #### ** #### q###L ########## .##### ** #### \###L ########## #####" ** ** Class History ** ** Date Name Description ** ---------|------------|----------------------------------------------- ** 05Jul97 subtle created this command */ package key.commands; import key.*; import java.io.IOException; import java.util.StringTokenizer; public class Prefer extends Command { public Prefer() { usage = "<player>"; } public void run( Player p, StringTokenizer args, String fullLine, CategoryCommand caller, InteractiveConnection ic, Flags flags ) throws IOException { if( !args.hasMoreTokens() ) { usage( ic ); return; } String preferred = args.nextToken(); Object o = getPlayer( ic, preferred ); if( o == null ) return; if( o == p ) { ic.sendError( "Come now. I hardly see a need. After all, _we_ know how special you truly are already." ); return; } Player f = (Player) o; Scape prefer = (Scape) p.getPrefer(); if( prefer.contains( f ) ) { // this person is already preferred.. un'prefer' them try { prefer.remove( f ); } catch( BadKeyException e ) { throw new UnexpectedResult( e.toString() ); } catch( NonUniqueKeyException e ) { throw new UnexpectedResult( e.toString() ); } ic.sendFeedback( f.getName() + " is no longer preferred." ); } else { try { prefer.add( f ); } catch( NonUniqueKeyException e ) { throw new UnexpectedResult( e.toString() ); } catch( BadKeyException e ) { throw new UnexpectedResult( e.toString() ); } ic.sendFeedback( f.getName() + " is now preferred. Multiple matches will go to them first." ); } } }