Add more spoofing options and added clang-format (#1020)

* feat(Spoofing): add spoofing
* feat(Spoofing): prepare code for player attach
* remove(PlayerAttach): isn't going to work due to netsync architecture
* fix(GUI): fix scaling
* feat(Project): add clang-format file
* feat(Classes): update classes
* fix(BlackHole): remove unnecessary cleanup
* fix(Formatting): fix formatting for initializer lists
* feat(clang-format): Set tab width and 1 space before comment

Co-authored-by: Yimura <24669514+Yimura@users.noreply.github.com>
This commit is contained in:
maybegreat48
2023-03-01 21:27:15 +00:00
committed by GitHub
parent 6a2cd866c0
commit 9ccb77e8eb
467 changed files with 55742 additions and 36204 deletions

View File

@ -1,14 +1,16 @@
#include "player.hpp"
#include "gta_util.hpp"
#include "network/CNetGamePlayer.hpp"
#include "services/friends/friends_service.hpp"
#include "gta_util.hpp"
#include <network/Network.hpp>
#include <network/RemoteGamerInfoMsg.hpp>
namespace big
{
player::player(CNetGamePlayer* net_game_player)
: m_net_game_player(net_game_player)
player::player(CNetGamePlayer* net_game_player) :
m_net_game_player(net_game_player)
{
m_is_friend = friends_service::is_friend(net_game_player);
}
@ -71,7 +73,8 @@ namespace big
{
for (std::uint32_t i = 0; i < gta_util::get_network()->m_game_session_ptr->m_peer_count; i++)
{
if (gta_util::get_network()->m_game_session_ptr->m_peers[i]->m_peer_data.m_gamer_handle.m_rockstar_id == get_net_data()->m_gamer_handle.m_rockstar_id)
if (gta_util::get_network()->m_game_session_ptr->m_peers[i]->m_peer_data.m_gamer_handle.m_rockstar_id
== get_net_data()->m_gamer_handle.m_rockstar_id)
{
return gta_util::get_network()->m_game_session_ptr->m_peers[i];
}
@ -86,10 +89,11 @@ namespace big
return get_net_data()->m_external_ip;
if (auto session_player = get_session_player())
if (auto peer = g_pointers->m_get_connection_peer(gta_util::get_network()->m_game_session_ptr->m_net_connection_mgr, (int)get_session_player()->m_player_data.m_peer_id_2))
return netAddress{ ((netConnectionPeer*)peer)->m_external_ip };
if (auto peer = g_pointers->m_get_connection_peer(gta_util::get_network()->m_game_session_ptr->m_net_connection_mgr,
(int)get_session_player()->m_player_data.m_peer_id_2))
return netAddress{((netConnectionPeer*)peer)->m_external_ip};
return { 0 };
return {0};
}
uint16_t player::get_port()
@ -98,7 +102,8 @@ namespace big
return get_net_data()->m_external_port;
if (auto session_player = get_session_player())
if (auto peer = g_pointers->m_get_connection_peer(gta_util::get_network()->m_game_session_ptr->m_net_connection_mgr, (int)get_session_player()->m_player_data.m_peer_id_2))
if (auto peer = g_pointers->m_get_connection_peer(gta_util::get_network()->m_game_session_ptr->m_net_connection_mgr,
(int)get_session_player()->m_player_data.m_peer_id_2))
return ((netConnectionPeer*)peer)->m_external_port;
return 0;

View File

@ -28,9 +28,9 @@ namespace big
explicit player(CNetGamePlayer* net_game_player);
~player() = default;
player(const player&) = default;
player(player&&) noexcept = default;
player& operator=(const player&) = default;
player(const player&) = default;
player(player&&) noexcept = default;
player& operator=(const player&) = default;
player& operator=(player&&) noexcept = default;
float screen_position_x = -1.f;
@ -46,7 +46,7 @@ namespace big
[[nodiscard]] class rage::snPeer* get_session_peer();
[[nodiscard]] netAddress get_ip_address();
[[nodiscard]] uint16_t get_port();
[[nodiscard]] uint8_t id() const;
[[nodiscard]] bool is_friend() const;
@ -55,28 +55,28 @@ namespace big
std::optional<CommandAccessLevel> command_access_level = std::nullopt;
bool off_radar = false;
bool off_radar = false;
bool never_wanted = false;
bool semi_godmode = false;
bool kill_loop = false;
bool explosion_loop = false;
bool freeze_loop = false;
bool ragdoll_loop = false;
bool kill_loop = false;
bool explosion_loop = false;
bool freeze_loop = false;
bool ragdoll_loop = false;
bool rotate_cam_loop = false;
rate_limiter m_host_migration_rate_limit{ 2s, 15 };
rate_limiter m_play_sound_rate_limit{ 1s, 10 };
rate_limiter m_invites_rate_limit{ 10s, 2 };
rate_limiter m_host_migration_rate_limit{2s, 15};
rate_limiter m_play_sound_rate_limit{1s, 10};
rate_limiter m_invites_rate_limit{10s, 2};
int m_num_spawned_permanent_vehicles = 0;
bool m_block_permanent_vehicles = false;
bool exposed_desync_protection = false;
bool is_modder = false;
bool block_join = false;
int block_join_reason = 0;
bool is_spammer = false;
bool is_modder = false;
bool block_join = false;
int block_join_reason = 0;
bool is_spammer = false;
std::optional<std::uint32_t> player_time_value;
std::optional<std::chrono::time_point<std::chrono::system_clock, std::chrono::milliseconds>> player_time_value_received_time;
@ -87,6 +87,5 @@ namespace big
bool equals(const CNetGamePlayer* net_game_player) const;
[[nodiscard]] std::string to_lowercase_identifier() const;
};
}

View File

@ -1,11 +1,14 @@
#include "gta_util.hpp"
#include "player_service.hpp"
#include "gta_util.hpp"
#include <network/CNetworkPlayerMgr.hpp>
namespace big
{
player_service::player_service()
: m_self(), m_selected_player(m_dummy)
player_service::player_service() :
m_self(),
m_selected_player(m_dummy)
{
g_player_service = this;
@ -65,7 +68,7 @@ namespace big
{
if (!m_self_ptr || !m_self_ptr->equals(*m_self))
{
m_self_ptr = std::make_shared<player>(*m_self);
m_self_ptr = std::make_shared<player>(*m_self);
m_self_ptr->command_access_level = CommandAccessLevel::ADMIN;
}
@ -74,24 +77,27 @@ namespace big
void player_service::player_join(CNetGamePlayer* net_game_player)
{
if (net_game_player == nullptr || net_game_player == *m_self) return;
if (net_game_player == nullptr || net_game_player == *m_self)
return;
auto plyr = std::make_shared<player>(net_game_player);
m_players.insert({
plyr->get_name(),
std::move(plyr)
});
m_players.insert({plyr->get_name(), std::move(plyr)});
}
void player_service::player_leave(CNetGamePlayer* net_game_player)
{
if (net_game_player == nullptr)
if (net_game_player == nullptr)
return;
if (m_selected_player && m_selected_player->equals(net_game_player))
m_selected_player = m_dummy;
if (auto it = std::find_if(m_players.begin(), m_players.end(), [net_game_player](const auto& p) { return p.second->id() == net_game_player->m_player_id; }); it != m_players.end())
if (auto it = std::find_if(m_players.begin(),
m_players.end(),
[net_game_player](const auto& p) {
return p.second->id() == net_game_player->m_player_id;
});
it != m_players.end())
{
if (m_player_to_use_end_session_kick == it->second)
m_player_to_use_end_session_kick = std::nullopt;

View File

@ -5,9 +5,9 @@ namespace big
{
class player;
using player_ptr = std::shared_ptr<player>;
using player_ptr = std::shared_ptr<player>;
using player_entry = std::pair<std::string, player_ptr>;
using players = std::multimap<std::string, player_ptr>;
using players = std::multimap<std::string, player_ptr>;
class player_service final
{
@ -19,13 +19,14 @@ namespace big
player_ptr m_dummy = std::make_shared<player>(nullptr);
player_ptr m_selected_player;
public:
player_service();
~player_service();
player_service(const player_service&) = delete;
player_service(player_service&&) noexcept = delete;
player_service& operator=(const player_service&) = delete;
player_service(const player_service&) = delete;
player_service(player_service&&) noexcept = delete;
player_service& operator=(const player_service&) = delete;
player_service& operator=(player_service&&) noexcept = delete;
void do_cleanup();
@ -41,15 +42,20 @@ namespace big
void player_leave(CNetGamePlayer* net_game_player);
players& players()
{ return m_players; }
{
return m_players;
}
void iterate(const std::function< void(const player_entry &entry)> func)
{ for (const auto &iter : m_players) func(iter); }
void iterate(const std::function<void(const player_entry& entry)> func)
{
for (const auto& iter : m_players)
func(iter);
}
void set_selected(player_ptr plyr);
std::optional<player_ptr> m_player_to_use_end_session_kick = std::nullopt;
std::optional<player_ptr> m_player_to_use_complaint_kick = std::nullopt;
std::optional<player_ptr> m_player_to_use_complaint_kick = std::nullopt;
};
inline player_service* g_player_service{};

View File

@ -8,10 +8,11 @@ namespace big
std::chrono::milliseconds m_time_period;
std::chrono::system_clock::time_point m_last_event_time{};
std::uint32_t m_num_attempts_allowed = 0;
public:
rate_limiter(std::chrono::milliseconds time_period, std::uint32_t num_allowed_attempts) :
m_attempts_allowed_in_time_period(num_allowed_attempts),
m_time_period(time_period)
m_attempts_allowed_in_time_period(num_allowed_attempts),
m_time_period(time_period)
{
}
@ -25,7 +26,7 @@ namespace big
}
else
{
m_last_event_time = std::chrono::system_clock::now();
m_last_event_time = std::chrono::system_clock::now();
m_num_attempts_allowed = 1;
}
return false;