/* ** 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.util.StringTokenizer; import java.io.*; public class Qualify extends Command { public static final AtomicElement[] ELEMENTS = { AtomicElement.construct( Qualify.class, Paragraph.class, "help", AtomicElement.PUBLIC_FIELD, "the message output when the command is executed by itself" ) }; public static final AtomicStructure STRUCTURE = new AtomicStructure( Command.STRUCTURE, ELEMENTS ); public Paragraph help = defaultHelp; public Qualify() { setKey( "colour" ); usage = "[<something> <colour>]"; } public AtomicStructure getDeclaredStructure() { return( STRUCTURE ); } public void run( Player p, StringTokenizer args, String fullLine, CategoryCommand caller, InteractiveConnection ic, Flags flags ) throws IOException { Atom context = p.getContext(); QualifierList ql = p.getQualifierList(); if( !args.hasMoreTokens() ) { usage( ic ); return; } String classId = args.nextToken(); if( !args.hasMoreTokens() ) { usage( ic ); return; } Type c = null; try { c = Type.forName( classId ); } catch( ClassNotFoundException e ) { ic.sendError( "Unknown type '" + classId + "'" ); return; } String qualifyId = args.nextToken(); char code = Qualifiers.getCodeCode( qualifyId ); if( code == Qualifiers.UNKNOWN_CODE && !qualifyId.equalsIgnoreCase( Qualifiers.UNKNOWN_STRING ) ) { ic.sendError( "Could not find a colour for '" + qualifyId + "'" ); ic.sendFeedback( "Use: '" + getName() + " " + classId + " normal' to stop colouring something." ); return; } ql.set( c, code ); if( code != ' ' ) ic.sendFeedback( "Effects from " + c.getName() + " will now be ^" + code + Qualifiers.getCodeName( code ) + "^-." ); else ic.sendFeedback( "Effects from " + c.getName() + " will now be " + Qualifiers.getCodeName( code ) + "." ); } public void usage( InteractiveConnection ic ) { super.usage( ic ); ic.blankLine(); ic.send( help ); } private static TextParagraph defaultHelp = new TextParagraph( TextParagraph.CENTERALIGNED, "For example:\n" + " colour player brightMagenta -- (to colour tells ^Mbright pink^-)\n" + " colour friends red -- (to colour friend tells ^rred^-)\n" + " colour room cyan -- (to colour says and emotes ^ccyan^-)\n" + " colour shouts brightBlue -- (to colour shouts ^Bbright blue^-)\n" + " colour clan hilite -- (to ^hhilite^- your clan channel)\n" + " colour connection yellow -- (the colour of 'name has connected')\n" + " colour movement green -- (the colour of room enter/exit messages)\n" + " colour blocking yellow -- (the colour of 'name blocks the clan')\n" + "\n" + "The full list of available colours can be obtained by typing 'iscolour'\n" + " You can see your current colour scheme by typing 'colours'" ); }