public void dispatch(Message m) {
		
		if (this.isSilenced()) {
			return;
		}
		
		if (m.getTarget() != null) {
			if (this.clients.contains(m.getTarget())) {
				m.getTarget().send(m);
				return;
			}
		}
		
		synchronized(this.clients) {
			int l = this.clients.size();
			for (int i = 0; i < l; i++) {
				this.clients.get(i).send(m);
			}
		}
	}