rendered paste body public void removeListener (Listener listener) { if (listener == null) throw new IllegalArgumentException("listener cannot be null."); synchronized (listenerLock) { if(this.listeners.length == 0) return; int listenerId = -1; for(int i=0; i<this.listeners.length; i++) { if(this.listeners[i] == listener) { listenerId = i; break; } } if(listenerId == -1) { // listener not found return; } else { Listener[] newListeners = new Listener[this.listeners.length - 1]; if(listenerId > 0) System.arraycopy(this.listeners, 0, newListeners, 0, listenerId); if(listenerId < this.listeners.length - 1) System.arraycopy(this.listeners, listenerId+1, newListeners, listenerId, this.listeners.length-listenerId-1); this.listeners = newListeners; } } if (TRACE) trace("kryonet", "Connection listener removed: " + listener.getClass().getName()); }