001package net.minecraft.command;
002
003import java.util.Iterator;
004import net.minecraft.entity.player.EntityPlayerMP;
005import net.minecraft.server.MinecraftServer;
006import net.minecraft.tileentity.TileEntityCommandBlock;
007
008public class ServerCommandManager extends CommandHandler implements IAdminCommand
009{
010    public ServerCommandManager()
011    {
012        this.registerCommand(new CommandTime());
013        this.registerCommand(new CommandGameMode());
014        this.registerCommand(new CommandDifficulty());
015        this.registerCommand(new CommandDefaultGameMode());
016        this.registerCommand(new CommandKill());
017        this.registerCommand(new CommandToggleDownfall());
018        this.registerCommand(new CommandWeather());
019        this.registerCommand(new CommandXP());
020        this.registerCommand(new CommandServerTp());
021        this.registerCommand(new CommandGive());
022        this.registerCommand(new CommandEnchant());
023        this.registerCommand(new CommandServerEmote());
024        this.registerCommand(new CommandShowSeed());
025        this.registerCommand(new CommandHelp());
026        this.registerCommand(new CommandDebug());
027        this.registerCommand(new CommandServerMessage());
028        this.registerCommand(new CommandServerSay());
029        this.registerCommand(new CommandSetSpawnpoint());
030        this.registerCommand(new CommandGameRule());
031        this.registerCommand(new CommandClearInventory());
032
033        if (MinecraftServer.getServer().isDedicatedServer())
034        {
035            this.registerCommand(new CommandServerOp());
036            this.registerCommand(new CommandServerDeop());
037            this.registerCommand(new CommandServerStop());
038            this.registerCommand(new CommandServerSaveAll());
039            this.registerCommand(new CommandServerSaveOff());
040            this.registerCommand(new CommandServerSaveOn());
041            this.registerCommand(new CommandServerBanIp());
042            this.registerCommand(new CommandServerPardonIp());
043            this.registerCommand(new CommandServerBan());
044            this.registerCommand(new CommandServerBanlist());
045            this.registerCommand(new CommandServerPardon());
046            this.registerCommand(new CommandServerKick());
047            this.registerCommand(new CommandServerList());
048            this.registerCommand(new CommandServerWhitelist());
049        }
050        else
051        {
052            this.registerCommand(new CommandServerPublishLocal());
053        }
054
055        CommandBase.setAdminCommander(this);
056    }
057
058    /**
059     * Sends a message to the admins of the server from a given CommandSender with the given resource string and given
060     * extra srings. If the int par2 is even or zero, the original sender is also notified.
061     */
062    public void notifyAdmins(ICommandSender par1ICommandSender, int par2, String par3Str, Object ... par4ArrayOfObj)
063    {
064        boolean var5 = true;
065
066        if (par1ICommandSender instanceof TileEntityCommandBlock && !MinecraftServer.getServer().worldServers[0].getGameRules().getGameRuleBooleanValue("commandBlockOutput"))
067        {
068            var5 = false;
069        }
070
071        if (var5)
072        {
073            Iterator var6 = MinecraftServer.getServer().getConfigurationManager().playerEntityList.iterator();
074
075            while (var6.hasNext())
076            {
077                EntityPlayerMP var7 = (EntityPlayerMP)var6.next();
078
079                if (var7 != par1ICommandSender && MinecraftServer.getServer().getConfigurationManager().areCommandsAllowed(var7.username))
080                {
081                    var7.sendChatToPlayer("\u00a77\u00a7o[" + par1ICommandSender.getCommandSenderName() + ": " + var7.translateString(par3Str, par4ArrayOfObj) + "]");
082                }
083            }
084        }
085
086        if (par1ICommandSender != MinecraftServer.getServer())
087        {
088            MinecraftServer.logger.info("[" + par1ICommandSender.getCommandSenderName() + ": " + MinecraftServer.getServer().translateString(par3Str, par4ArrayOfObj) + "]");
089        }
090
091        if ((par2 & 1) != 1)
092        {
093            par1ICommandSender.sendChatToPlayer(par1ICommandSender.translateString(par3Str, par4ArrayOfObj));
094        }
095    }
096}