Изменение домена с rosetta-im.com на rosetta.im
This commit is contained in:
71
src/main/java/im/rosetta/ServerAdapter.java
Normal file
71
src/main/java/im/rosetta/ServerAdapter.java
Normal file
@@ -0,0 +1,71 @@
|
||||
package im.rosetta;
|
||||
|
||||
import im.rosetta.event.EventManager;
|
||||
import im.rosetta.event.events.ConnectEvent;
|
||||
import im.rosetta.event.events.DisconnectEvent;
|
||||
import im.rosetta.event.events.PacketInputEvent;
|
||||
import im.rosetta.event.events.ServerErrorEvent;
|
||||
import im.rosetta.event.events.ServerStartEvent;
|
||||
import im.rosetta.event.events.ServerStopEvent;
|
||||
|
||||
import io.orprotocol.Server;
|
||||
import io.orprotocol.ServerListener;
|
||||
import io.orprotocol.client.Client;
|
||||
import io.orprotocol.packet.Packet;
|
||||
|
||||
/**
|
||||
* Адаптер нужный для трансляции событий протокола в события приложения (EventManager)
|
||||
*/
|
||||
public class ServerAdapter implements ServerListener {
|
||||
|
||||
private EventManager eventManager;
|
||||
|
||||
public ServerAdapter(EventManager eventManager) {
|
||||
this.eventManager = eventManager;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServerStart(Server server) {
|
||||
this.eventManager.callEvent(new ServerStartEvent(server));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onServerStop(Server server) {
|
||||
this.eventManager.callEvent(new ServerStopEvent(server));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onClientConnect(Server server, Client client) {
|
||||
boolean cancelled = this.eventManager.callEvent(new ConnectEvent(server, client));
|
||||
/**
|
||||
* Если событие отменено (true), то подключение клиента будет отклонено,
|
||||
* иначе (false) клиент будет успешно подключен.
|
||||
* Инверсия нужна для того чтобы соответствовать логике отмены событий в ServerListener,
|
||||
* который требует чтобы мы возвращали true если подключение должно быть разрешено.
|
||||
*/
|
||||
return !cancelled;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClientDisconnect(Server server, Client client) {
|
||||
this.eventManager.callEvent(new DisconnectEvent(server, client));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Server server, Exception exception) {
|
||||
this.eventManager.callEvent(new ServerErrorEvent(server, exception));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPacketReceived(Server server, Client client, Packet packet) {
|
||||
boolean cancelled = this.eventManager.callEvent(new PacketInputEvent(server, client, packet));
|
||||
/**
|
||||
* Если событие отменено (true), то пакет не будет обработан дальше,
|
||||
* иначе (false) будет продолжена его обработка.
|
||||
* Инверсия нужна для того чтобы соответствовать логике отмены событий в ServerListener,
|
||||
* который требует чтобы мы возвращали true если пакет должен быть обработан дальше.
|
||||
*/
|
||||
return !cancelled;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user