#include #include #include #include #include #include #include #include #include #include #include "Client/ServerSession.hpp" #include "Common/Net.hpp" #include "Common/Packets.hpp" #include "Server/GameServer.hpp" #include namespace LV { using namespace TOS; std::unique_ptr session; coro<> runClient(asio::io_context &ioc, uint16_t port) { try { tcp::socket sock = co_await Net::asyncConnectTo("localhost:"+std::to_string(port)); co_await Client::ServerSession::asyncAuthorizeWithServer(sock, "DrSocalkwe3n", "1password2", 1); std::unique_ptr asock = co_await Client::ServerSession::asyncInitGameProtocol(ioc, std::move(sock)); session = std::make_unique(ioc, std::move(asock), nullptr); } catch(const std::exception &exc) { std::cout << exc.what() << std::endl; } } int main() { // LuaVox asio::io_context ioc; LV::Client::VK::Vulkan vkInst(ioc); ioc.run(); // Server::GameServer gs(ioc, ""); // Net::Server server(ioc, [&](tcp::socket sock) -> coro<> { // server.stop(); // co_await gs.pushSocketConnect(std::move(sock)); // }, 6666); // std::cout << server.getPort() << std::endl; // asio::co_spawn(ioc, runClient(ioc, server.getPort()), asio::detached); // auto ot = std::async([&](){ // VkInst.start([&](VK::Vulkan *instance, int subpass, VkCommandBuffer &renderCmd) // { // if(glfwWindowShouldClose(VkInst.Graphics.Window) || (session && !session->isConnected())) { // VkInst.shutdown(); // if(glfwWindowShouldClose(VkInst.Graphics.Window) && session) // session->shutdown(EnumDisconnect::ByInterface); // } // }); // session = nullptr; // }); // ioc.run(); // VkInst.shutdown(); return 0; } } int main() { TOS::Logger::addLogOutput(".*", TOS::EnumLogType::All); std::cout << "Hello world!" << std::endl; return LV::main(); }