package net.sourceforge.pain.tinylib;
import net.sourceforge.pain.*;
import net.sourceforge.pain.network.console.*;
import net.sourceforge.pain.tinylib.data.type.*;
import java.util.*;
/**
 * mudlib specific console extention
 */ 
public final class Console extends BasicConsole {
    private static final HashMap consoleByPlayerId = new HashMap();
    private Object playerId;
    protected Console(ConsoleAdapter adapter) {
        super(adapter);
    }
    public Player getPlayer() {
        return (Player) (playerId == null ? null : Codebase.getDB().getObject(playerId));
    }
    public void setPlayer(Player newPlayer) {
        if (playerId != null && newPlayer != null) {
            throw new RuntimeException("Owner redefinition not supported!");
        }
        if (playerId == null && newPlayer == null) {
            throw new RuntimeException("BUG, newPlayer is null!");
        }
        if (newPlayer == null) {
            consoleByPlayerId.remove(playerId);
            playerId = null;
        } else {
            playerId = newPlayer.getOid();
            consoleByPlayerId.put(newPlayer.getOid(), this);
        }
    }
    public static Console getConsoleByOwner(Player player) {
        return (Console) consoleByPlayerId.get(player.getOid());
    }
}