Hi thanks very much for the library having a lot of fun ! Whilst browsing the code I noticed the following and it struck a chord as I have made this same mistake in the past.
The following code is from PacketReader from the static inner class ListenerWrapper.
public boolean equals(Object object) {
if (object == null) {
return false;
}
if (object instanceof ListenerWrapper) {
return ((ListenerWrapper)object).packetListener.equals(this.packetListener);
}
else if (object instanceof PacketListener) {
return object.equals(this.packetListener);
}
return false;
}
The problem is that this implementation is not necessarily symmetric i.e. a.equals(b) does not imply b.equals(a), which is a requisite for equals().
Do you plan to write code to support the new multi user chat?