protocolListFor(final Direction direction) {
return Collections.unmodifiableList(direction == Direction.SERVERBOUND ? protocolList : reversedProtocolList);
}
private void logPacket(Direction direction, State state, PacketWrapper packetWrapper, int originalID) {
String actualUsername = packetWrapper.user().getProtocolInfo().getUsername();
String username = actualUsername != null ? actualUsername + " " : "";
Via.getPlatform().getLogger().log(Level.INFO, "{0}{1} {2}: {3} ({4}) -> {5} ({6}) [{7}] {8}",
new Object[]{
username,
direction,
state,
originalID,
AbstractSimpleProtocol.toNiceHex(originalID),
packetWrapper.getId(),
AbstractSimpleProtocol.toNiceHex(packetWrapper.getId()),
Integer.toString(userConnection.getProtocolInfo().getProtocolVersion()),
packetWrapper
});
}
@Override
public boolean contains(Class extends Protocol> protocolClass) {
return protocolSet.contains(protocolClass);
}
@Override
public @Nullable P getProtocol(Class
pipeClass) {
for (Protocol protocol : protocolList) {
if (protocol.getClass() == pipeClass) {
return (P) protocol;
}
}
return null;
}
@Override
public List pipes() {
return Collections.unmodifiableList(protocolList);
}
@Override
public List reversedPipes() {
return Collections.unmodifiableList(reversedProtocolList);
}
@Override
public boolean hasNonBaseProtocols() {
for (Protocol protocol : protocolList) {
if (!protocol.isBaseProtocol()) {
return true;
}
}
return false;
}
@Override
public synchronized void cleanPipes() {
protocolList.clear();
reversedProtocolList.clear();
protocolSet.clear();
baseProtocols = 0;
registerPackets();
}
@Override
public String toString() {
return "ProtocolPipelineImpl{" +
"protocolList=" + protocolList +
'}';
}
}