001    /**
002     * Jetrix TetriNET Server
003     * Copyright (C) 2001-2004  Emmanuel Bourg
004     *
005     * This program is free software; you can redistribute it and/or
006     * modify it under the terms of the GNU General Public License
007     * as published by the Free Software Foundation; either version 2
008     * of the License, or (at your option) any later version.
009     *
010     * This program is distributed in the hope that it will be useful,
011     * but WITHOUT ANY WARRANTY; without even the implied warranty of
012     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
013     * GNU General Public License for more details.
014     *
015     * You should have received a copy of the GNU General Public License
016     * along with this program; if not, write to the Free Software
017     * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
018     */
019    
020    package net.jetrix.commands;
021    
022    import static net.jetrix.config.Block.*;
023    import static net.jetrix.config.Special.*;
024    
025    import java.util.*;
026    
027    import net.jetrix.*;
028    import net.jetrix.config.*;
029    import net.jetrix.messages.channel.CommandMessage;
030    import net.jetrix.messages.channel.PlineMessage;
031    
032    /**
033     * Display the channel settings.
034     *
035     * @author Emmanuel Bourg
036     * @version $Revision: 798 $, $Date: 2009-02-18 16:24:28 +0100 (Wed, 18 Feb 2009) $
037     */
038    public class ConfigCommand extends AbstractCommand
039    {
040        public String[] getAliases()
041        {
042            return (new String[]{"config", "conf", "settings"});
043        }
044    
045        public void execute(CommandMessage m)
046        {
047            Client client = (Client) m.getSource();
048            Locale locale = client.getUser().getLocale();
049    
050            Settings s = client.getChannel().getConfig().getSettings();
051            String configLines[] = new String[19];
052    
053            configLines[0] = "<darkBlue>" + "<b>" + Language.getText("command.config.blocks", locale) + "                       " + Language.getText("command.config.specials", locale);
054            configLines[1] = "<darkBlue>" + LEFTL.getName(locale)     + "     : <purple>" + s.getOccurancy(LEFTL)     + "%</purple>               (<purple>A</purple>) " + ADDLINE.getName(locale)      + "   : " + "<purple>" + s.getOccurancy(ADDLINE) + "%";
055            configLines[2] = "<darkBlue>" + RIGHTL.getName(locale)    + "     : <purple>" + s.getOccurancy(RIGHTL)    + "%</purple>               (<purple>C</purple>) " + CLEARLINE.getName(locale)    + "   : " + "<purple>" + s.getOccurancy(CLEARLINE) + "%";
056            configLines[3] = "<darkBlue>" + SQUARE.getName(locale)    + "     : <purple>" + s.getOccurancy(SQUARE)    + "%</purple>               (<purple>N</purple>) " + NUKEFIELD.getName(locale)    + "   : " + "<purple>" + s.getOccurancy(NUKEFIELD) + "%";
057            configLines[4] = "<darkBlue>" + LEFTZ.getName(locale)     + "     : <purple>" + s.getOccurancy(LEFTZ)     + "%</purple>               (<purple>R</purple>) " + RANDOMCLEAR.getName(locale)  + "   : " + "<purple>" + s.getOccurancy(RANDOMCLEAR) + "%";
058            configLines[5] = "<darkBlue>" + RIGHTZ.getName(locale)    + "     : <purple>" + s.getOccurancy(RIGHTZ)    + "%</purple>               (<purple>S</purple>) " + SWITCHFIELD.getName(locale)  + "   : " + "<purple>" + s.getOccurancy(SWITCHFIELD) + "%";
059            configLines[6] = "<darkBlue>" + HALFCROSS.getName(locale) + "     : <purple>" + s.getOccurancy(HALFCROSS) + "%</purple>               (<purple>B</purple>) " + CLEARSPECIAL.getName(locale) + "   : " + "<purple>" + s.getOccurancy(CLEARSPECIAL) + "%";
060            configLines[7] = "<darkBlue>" + LINE.getName(locale)      + "     : <purple>" + s.getOccurancy(LINE)      + "%</purple>               (<purple>G</purple>) " + GRAVITY.getName(locale)      + "   : " + "<purple>" + s.getOccurancy(GRAVITY) + "%";
061            configLines[8] = "<darkBlue>" + "                 (<purple>Q</purple>) " + QUAKEFIELD.getName(locale) + "     : <purple>" + s.getOccurancy(QUAKEFIELD) + "%";
062            configLines[9] = "<darkBlue>" + "<b>" + Language.getText("command.config.rules", locale) + "<b>" + "                  (<purple>O<purple>) " + BLOCKBOMB.getName(locale) + "       : <purple>" + s.getOccurancy(BLOCKBOMB) + "%";
063            configLines[10] = "<darkBlue>" + Language.getText("command.config.rules.starting_level", locale)    + "   : " + "<blue>" + s.getStartingLevel();
064            configLines[11] = "<darkBlue>" + Language.getText("command.config.rules.lines_per_level", locale)   + "   : " + "<blue>" + s.getLinesPerLevel();
065            configLines[12] = "<darkBlue>" + Language.getText("command.config.rules.level_increase", locale)    + "   : " + "<blue>" + s.getLevelIncrease();
066            configLines[13] = "<darkBlue>" + Language.getText("command.config.rules.lines_per_special", locale) + "   : " + "<blue>" + s.getLinesPerSpecial();
067            configLines[14] = "<darkBlue>" + Language.getText("command.config.rules.special_added", locale)     + "   : " + "<blue>" + s.getSpecialAdded();
068            configLines[15] = "<darkBlue>" + Language.getText("command.config.rules.special_capacity", locale)  + "   : " + "<blue>" + s.getSpecialCapacity();
069            configLines[16] = "<darkBlue>" + Language.getText("command.config.rules.classic_rules", locale)     + "   : " + "<blue>" + (s.getClassicRules() ? Language.getText("common.yes", locale) : Language.getText("common.no", locale));
070            configLines[17] = "<darkBlue>" + Language.getText("command.config.rules.average_levels", locale)    + "   : " + "<blue>" + (s.getAverageLevels() ? Language.getText("common.yes", locale) : Language.getText("common.no", locale));
071            configLines[18] = "<darkBlue>" + Language.getText("command.config.rules.same_blocks", locale)       + "   : " + "<blue>" + (s.getSameBlocks() ? Language.getText("common.yes", locale) : Language.getText("common.no", locale));
072            //configLines[18] = "";
073            //configLines[19] = "<darkBlue>" + "<b>" + "Filters" + "<b>" + "  (type <red>/filter</red> for details)";
074            //configLines[20] = "<darkBlue>" + "start, flood, amplifier";
075    
076            for (int i = 0; i < configLines.length; i++)
077            {
078                Message configMessage = new PlineMessage(configLines[i]);
079                client.send(configMessage);
080            }
081        }
082    }