35 lines
1.2 KiB
Java
35 lines
1.2 KiB
Java
package envoy.server.processors;
|
|
|
|
import java.io.IOException;
|
|
|
|
import envoy.event.IsTyping;
|
|
import envoy.server.data.PersistenceManager;
|
|
import envoy.server.data.User;
|
|
import envoy.server.net.ConnectionManager;
|
|
import envoy.server.net.ObjectWriteProxy;
|
|
|
|
/**
|
|
* This processor handles incoming {@link IsTyping} events.
|
|
* <p>
|
|
* Project: <strong>envoy-server-standalone</strong><br>
|
|
* File: <strong>IsTypingProcessor.java</strong><br>
|
|
* Created: <strong>24.07.2020</strong><br>
|
|
*
|
|
* @author Leon Hofmeister
|
|
* @since Envoy Server v0.2-beta
|
|
*/
|
|
public class IsTypingProcessor implements ObjectProcessor<IsTyping> {
|
|
|
|
private static final ConnectionManager connectionManager = ConnectionManager.getInstance();
|
|
private static final PersistenceManager persistenceManager = PersistenceManager.getInstance();
|
|
|
|
@Override
|
|
public void process(IsTyping event, long socketID, ObjectWriteProxy writeProxy) throws IOException {
|
|
final var contact = persistenceManager.getContactByID(event.get());
|
|
if (contact instanceof User) {
|
|
final var destinationID = event.getDestinationID();
|
|
if (connectionManager.isOnline(destinationID)) writeProxy.write(connectionManager.getSocketID(destinationID), event);
|
|
} else writeProxy.writeToOnlineContacts(contact.getContacts(), event);
|
|
}
|
|
}
|