/*
Copyright (C) 2005 David Green <green@couchpotato.net>
All Rights Reserved.

This file is part of Aelfengard.

Aelfengard is proprietary software. You may not redistribute it without
prior written permission from the copyright holder.
*/

package server.command;

import server.AdminFlag;
import server.Player;
import server.RoomEntity;
import server.SyntaxException;

public class InfoCommand extends Command {

    public InfoCommand() {
        super(CommandCategory.GENERAL, "Shows detail on something.");
    }
    
    @Override
    public void run(Player player) throws SyntaxException {
        String token = CommandProcessor.nextToken();
        if (token == null || CommandProcessor.nextToken() != null) {
            throw new SyntaxException();
        }
        RoomEntity target;
        if (player.getAdminFlags().contains(AdminFlag.ADMIN_VIEWS)) {
            target = player.matchGlobalRoomEntity(token);
        }
        else {
            target = player.getPlayerByNickname(token);
            if (target == null) {
                target = player.matchLocalRoomEntity(token);
            }
        }
        if (target == null) {
            player.sendText(true, "There's nothing here by that name.");
            return;
        }
        target.sendInfo(player);
    }

    @Override
    public String[] getSyntax(Player player) {
        return new String[] { "<player|npc|item>" };
    }

}