diff --git a/CMakeLists.txt b/CMakeLists.txt index 9ca2225..1643769 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,6 +10,8 @@ set(SOURCE sources/main.cpp) set(LIBS ${CMAKE_SOURCE_DIR}/libs/) set(INCLUDE ${CMAKE_SOURCE_DIR}/include/) set(TESTS ${CMAKE_SOURCE_DIR}/tests) +set(ADDITIONAL_CXX_FLAGS_DEBUG "-pipe -Wall -Wextra -O0 -fsanitize=address") +set(ADDITIONAL_CXX_FLAGS_RELEASE "-march=native -pipe -Wall -fsanitize=address -Wextra -O2 -flto") find_package(CURL REQUIRED) find_path(IXWEBSOCKET_INCLUDE_DIR ixwebsocket) @@ -31,11 +33,11 @@ endif() if(CMAKE_BUILD_TYPE) if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(CMAKE_CXX_FLAGS "-march=native -O0 -pipe -Wall -Werror") + set(CMAKE_CXX_FLAGS "${ADDITIONAL_CXX_FLAGS_DEBUG}") add_definitions(-DDEBUG) elseif(CMAKE_BUILD_TYPE STREQUAL "Release") add_definitions(-DRELEASE) - set(CMAKE_CXX_FLAGS "-march=native -O2 -pipe -Wall -Werror") + set(CMAKE_CXX_FLAGS "${ADDITIONAL_CXX_FLAGS_RELEASE}") endif() endif() diff --git a/include/net.h b/include/net.h index c989eb3..0faeee1 100644 --- a/include/net.h +++ b/include/net.h @@ -1,5 +1,5 @@ #ifndef INCLUDE_NET_H_ #define INCLUDE_NET_H_ #include -#include +#include #endif \ No newline at end of file diff --git a/libs/api/Author.hpp b/libs/api/Author.hpp index 80100d1..1270d44 100644 --- a/libs/api/Author.hpp +++ b/libs/api/Author.hpp @@ -20,14 +20,14 @@ public: global_name(functions::isNull(d["author"]["global_name"])), id(d["author"]["id"]), content(d["content"]), - avatar(data["d"]["author"]["avatar"]), - guild_id(data["d"]["guild_id"]), - discriminator(data["d"]["author"]["discriminator"]), - message_id(data["d"]["id"]), - isPinned(data["d"]["pinned"]), + avatar(d["author"]["avatar"]), + guild_id(d["guild_id"]), + discriminator(d["author"]["discriminator"]), + message_id(d["id"]), + isPinned(d["pinned"]), isBot(d["author"].contains("bot") ? d["author"]["bot"].get() : false) {}; std::string send(const nlohmann::json& msg) { - return req.request(HttpMethods::POST, DiscordEndpoints::details::latest + "/channels/" + data["d"]["channel_id"].get() + "/messages", msg.dump()); + return req.request(HttpMethods::POST, DiscordEndpoints::details::latest + "/channels/" + d["channel_id"].get() + "/messages", msg.dump()); } }; #endif \ No newline at end of file diff --git a/libs/gateway/Websocket.hpp b/libs/gateway/Websocket.hpp index ffb574c..359821a 100644 --- a/libs/gateway/Websocket.hpp +++ b/libs/gateway/Websocket.hpp @@ -104,12 +104,14 @@ public: int getIntents() const { return WebSocket::intents; } - void on(const std::string&& event, std::function handler) { + void on(const std::string& event, std::function handler = nullptr) { eventHandlers[event] = [handler](const nlohmann::json& message) { - handler(message.get()); + if (handler) { + handler(message.get()); + } }; } - void once(const std::string&& event, std::function handler) { + void once(const std::string& event, std::function handler) { eventHandlers[event] = [event, handler, isCalled = false](const nlohmann::json& message) mutable { isCalled == false ? isCalled = true : 0, handler(message.get()); }; diff --git a/libs/tls/Network.hpp b/libs/network/Network.hpp similarity index 100% rename from libs/tls/Network.hpp rename to libs/network/Network.hpp diff --git a/libs/utils/log.hpp b/libs/utils/log.hpp index 373ab0a..b3e22d3 100644 --- a/libs/utils/log.hpp +++ b/libs/utils/log.hpp @@ -9,7 +9,7 @@ enum level { INFO, WARNING, ERROR, CRITICAL }; enum type { WEBSOCKET, NETWORK, API }; class Log { public: - static void create(level lvl, type t, const std::string& message) { + static void create([[maybe_unused]] const level& lvl, [[maybe_unused]] const type& t, [[maybe_unused]] const std::string& message) { #ifdef DEBUG std::string color; switch (lvl) { diff --git a/sources/main.cpp b/sources/main.cpp index 91870d3..3f8d0fd 100644 --- a/sources/main.cpp +++ b/sources/main.cpp @@ -3,7 +3,7 @@ int main(int argc, char* argv[]) { if (argc != 3) return -1; WebSocket* bot = &WebSocket::getInstance(argv[2], GatewayIntents::AllIntents); - bot->on(GatewayEvents::READY, [](const Discord& a) { + bot->on(GatewayEvents::READY, [](const nlohmann::json&) { std::cout << DiscordEndpoints::details::latest << std::endl; }); bot->on(GatewayEvents::MESSAGE_CREATE, [](const Discord& msg) {