public synchronized boolean canTrade(int p1, int p2, Trade t) {
		catanui.BoardObject.type[] ins = t.getIns();
		catanui.BoardObject.type[] outs = t.getOuts();
		
		
		// player 1 has ins and player 2 has outs
		for(int i=0; i<ins.length; i++) {
			if(ins[i] != null && !_players.get(p1).getHand().contains(ins[i])) {
				return false;
			}
		}
		for(int i=0; i<outs.length; i++) {
			if(outs[i] != null && !_players.get(p2).getHand().contains(outs[i])) {
				return false;
			}
		}
		notifyAITrade(t);
		makeTrade(p1,p2, ins, outs);
		return true;
	}