/*
** j###t ########## #### ####
** j###t ########## #### ####
** j###T "###L J###"
** ######P' ########## #########
** ######k, ########## T######T
** ####~###L ####
** #### q###L ########## .#####
** #### \###L ########## #####"
**
** Class: baserank
**
** Class History
**
** Date Name Description
** ---------|------------|-----------------------------------------------
** 17Jul97 snapper creation
** 20Jul97 snapper added logging
*/
package key.commands.clan;
import key.*;
import java.util.StringTokenizer;
import java.io.IOException;
import java.util.Enumeration;
public class BaseRank extends Command
{
public BaseRank()
{
setKey( "baserank" );
usage = "<rank> ";
}
public void run( Player p, StringTokenizer args, String fullLine, CategoryCommand caller, InteractiveConnection ic, Flags flags ) throws IOException
{
if( !args.hasMoreTokens() )
{
usage( ic );
return;
}
String targetRank = args.nextToken();
Clan currentClan = p.getClan();
Rank tempRank = (Rank) currentClan.ranks.getElement( targetRank );
if( tempRank == null )
{
ic.sendError( "That rank does not exist." );
return;
}
// to set a new base rank we have to turn off the joinedTo
// field so that the basic communication commands belong to
// the new base rank.
Rank currentBaseRank = (Rank)currentClan.getProperty( "baseRank" );
currentBaseRank.setProperty( "joinedTo", null );
// set the new baserank up...
currentClan.setProperty( "baseRank", tempRank );
// now set up the joinedTo field again...
tempRank.setProperty( "joinedTo", currentClan );
ic.sendFeedback( "You set the new base rank of Clan " + currentClan.getName() + " to '" + targetRank + "'" );
Log.log( "clans/" + currentClan.getName() + ".notes", "'" + p.getName() + "' changed the base rank to '" + targetRank + "'" );
}
}