This commit is contained in:
fluttershy 2025-01-26 17:34:10 +05:00
parent 99cf38cf12
commit a32954453b
5 changed files with 26 additions and 11 deletions

View File

@ -1,5 +1,5 @@
#ifndef INCLUDE_NET_HPP_
#define INCLUDE_NET_HPP_
#include <gateway/Websocket.hpp>
#include <network/Network.hpp>
#include <gateway/websocket.hpp>
#include <network/network.hpp>
#endif

View File

@ -6,7 +6,7 @@
class EventEmitter {
private:
using eventHandlers = std::function<void(const nlohmann::json&)>;
std::unordered_map<std::string, std::list<eventHandlers>> handlers;
std::unordered_map<std::string, std::vector<eventHandlers>> handlers;
protected:
void emit(const std::string& event, const nlohmann::json& data) {
if (handlers.find(event) != handlers.end()) {
@ -80,8 +80,8 @@ private:
case ix::WebSocketMessageType::Message:
res = nlohmann::json::parse(msg->str);
Log::create(INFO, WEBSOCKET, res["op"].dump() + " " + res["t"].dump());
switch (res["op"].get<int>()) {
case 10:
switch (res["op"].get<GatewayOpcodes>()) {
case GatewayOpcodes::Hello:
heartbeat_interval = res["d"]["heartbeat_interval"].get<int>();
!connected ? connected = true, webSocket.send(id.dump()) : 0;
std::thread([this, &heartbeat_interval, &connected]() {
@ -92,7 +92,11 @@ private:
}
}).detach();
break;
case 0: emit(res["t"].get<std::string>(), res); break;
case GatewayOpcodes::Dispatch:
emit(res["t"].get<std::string>(), res);
break;
default:
break;
}
break;
case ix::WebSocketMessageType::Error:

View File

@ -1,7 +1,7 @@
#ifndef TLS_NETWORK_HPP_
#define TLS_NETWORK_HPP_
#include <includes.hpp>
#include <gateway/Websocket.hpp>
#include <gateway/websocket.hpp>
#include <curl/curl.h>
class NetworkManager {
private:

View File

@ -140,4 +140,18 @@ enum UserStatus {
enum DiscordTime {
Epoch = 1420070400000,
};
enum GatewayOpcodes {
Dispatch,
Heartbeat,
Identify,
PresenceUpdate,
VoiceStateUpdate,
Resume = 6,
Reconnect,
RequestGuildMembers,
InvalidSession,
Hello,
HeartbeatACK,
RequestSoundboardSounds = 31,
};
#endif

View File

@ -39,10 +39,7 @@ int main(int argc, char* argv[]) {
message->send("939957962972229634", message->pack("content", author->channel_id));
}
});
bot->on(GatewayEvents::MESSAGE_REACTION_ADD, [](const Discord<Message>& msg) {
const auto& [message] = msg.ctx();
message->send("939957962972229634", message->pack("content", "test"));
});
bot->start();
return 0;
}