@Override
    public void updateParty(MapleParty party, PartyOperation operation, MaplePartyCharacter target) throws RemoteException {
	for (MaplePartyCharacter partychar : party.getMembers()) {
	    if (partychar.getChannel() == server.getChannel()) {
		final MapleCharacter chr = server.getPlayerStorage().getCharacterByName(partychar.getName());
		if (chr != null) {
		    if (operation == PartyOperation.DISBAND) {
			chr.setParty(null);
		    } else {
			chr.setParty(party);
		    }
		    chr.getClient().getSession().write(MaplePacketCreator.updateParty(chr.getClient().getChannel(), party, operation, target));
		}
	    }
	}
	switch (operation) {
	    case LEAVE:
	    case EXPEL:
		if (target.getChannel() == server.getChannel()) {
		    final MapleCharacter chr = server.getPlayerStorage().getCharacterByName(target.getName());
		    if (chr != null) {
			chr.getClient().getSession().write(MaplePacketCreator.updateParty(chr.getClient().getChannel(), party, operation, target));
			chr.setParty(null);
		    }
		}
	}
    }