I have done;

Replace your RequestTrade() in TradeAndDuel.java, with this:

Code:
	public void requestTrade(int id){
		try {
			Client o = (Client) Server.playerHandler.players[id];
			if (o.isBanking)
			{
				c.sendMessage("You can't request a trade while the other person is banking.");
				return;
			}
			if (id == c.playerId)
				return;
			c.tradeWith = id;
			if(!c.inTrade && o.tradeRequested && o.tradeWith == c.playerId) {
				c.getTradeAndDuel().openTrade();
				o.getTradeAndDuel().openTrade();			
			} else if(!c.inTrade) {
				
				c.tradeRequested = true;
				c.sendMessage("Sending trade request...");
				o.sendMessage(Misc.optimizeText(c.playerName) + ":tradereq:");
			}
		} 
		catch (Exception e) {
			Misc.println("Error requesting trade.");
		}
	}
After i added that the error i got was;
[/QUOTE]


this should fix the isBanking problem

in PlayerAssistant.java find..

public void closeAllWindows() {

replace that method with...

Code:
	public void closeAllWindows() {
		synchronized(c) {
			if(c.getOutStream() != null && c != null) {
				c.getOutStream().createFrame(219);
				c.flushOutStream();
				c.isBanking = false;
			}
		}
	}
now find

public void openUpBank(){
replace that method with...
Code:
	public void openUpBank(){
		synchronized(c) {
			if(c.getOutStream() != null && c != null) {
				c.isBanking = true;
				c.getItems().resetItems(5064);
				c.getItems().rearrangeBank();
				c.getItems().resetBank();
				c.getItems().resetTempItems();
				c.getOutStream().createFrame(248);
				c.getOutStream().writeWordA(5292);
				c.getOutStream().writeWord(5063);
				c.flushOutStream();
			}
		}
	}
now in player.java find
properLogout = false,

under it add
Code:
isBanking = false,
It works when you try to trade somebody who has his bank open, but as soon he closes it you still get the error ''you cant request a trade bla bla''

Help?