Статусы онлайн/оффлайн и подписки на них

This commit is contained in:
RoyceDa
2026-02-05 18:05:03 +02:00
parent 4a4cd81891
commit 7766afa984
13 changed files with 426 additions and 5 deletions

View File

@@ -1,11 +1,15 @@
package com.rosetta.im;
import com.rosetta.im.client.ClientManager;
import com.rosetta.im.client.OnlineManager;
import com.rosetta.im.event.EventManager;
import com.rosetta.im.executors.Executor0Handshake;
import com.rosetta.im.executors.Executor1UserInfo;
import com.rosetta.im.executors.Executor3Search;
import com.rosetta.im.executors.Executor4OnlineState;
import com.rosetta.im.listeners.HandshakeCompleteListener;
import com.rosetta.im.listeners.OnlineStatusDisconnectListener;
import com.rosetta.im.listeners.OnlineStatusHandshakeCompleteListener;
import com.rosetta.im.listeners.ServerStopListener;
import com.rosetta.im.logger.Logger;
import com.rosetta.im.logger.enums.Color;
@@ -14,6 +18,8 @@ import com.rosetta.im.packet.Packet0Handshake;
import com.rosetta.im.packet.Packet1UserInfo;
import com.rosetta.im.packet.Packet2Result;
import com.rosetta.im.packet.Packet3Search;
import com.rosetta.im.packet.Packet4OnlineSubscribe;
import com.rosetta.im.packet.Packet5OnlineState;
import io.orprotocol.Server;
import io.orprotocol.Settings;
@@ -31,10 +37,12 @@ public class Boot {
private Server server;
private ServerAdapter serverAdapter;
private ClientManager clientManager;
private OnlineManager onlineManager;
public Boot() {
this.packetManager = new PacketManager();
this.eventManager = new EventManager();
this.onlineManager = new OnlineManager();
this.logger = new Logger(LogLevel.INFO);
this.serverAdapter = new ServerAdapter(this.eventManager);
this.server = new Server(new Settings(
@@ -92,6 +100,8 @@ public class Boot {
private void registerAllEvents() {
this.eventManager.registerListener(new ServerStopListener(this.logger));
this.eventManager.registerListener(new HandshakeCompleteListener());
this.eventManager.registerListener(new OnlineStatusHandshakeCompleteListener(this.onlineManager));
this.eventManager.registerListener(new OnlineStatusDisconnectListener(this.onlineManager));
}
private void registerAllPackets() {
@@ -99,12 +109,15 @@ public class Boot {
this.packetManager.registerPacket(1, Packet1UserInfo.class);
this.packetManager.registerPacket(2, Packet2Result.class);
this.packetManager.registerPacket(3, Packet3Search.class);
this.packetManager.registerPacket(4, Packet4OnlineSubscribe.class);
this.packetManager.registerPacket(5, Packet5OnlineState.class);
}
private void registerAllExecutors() {
this.packetManager.registerExecutor(0, new Executor0Handshake(this.eventManager));
this.packetManager.registerExecutor(1, new Executor1UserInfo());
this.packetManager.registerExecutor(3, new Executor3Search(this.clientManager));
this.packetManager.registerExecutor(4, new Executor4OnlineState(this.onlineManager));
}
private void printBootMessage() {