diff --git a/src/hooks/profile_page.cpp b/src/hooks/profile_page.cpp new file mode 100644 index 00000000..46776e68 --- /dev/null +++ b/src/hooks/profile_page.cpp @@ -0,0 +1,33 @@ +#include "profile_page.hpp" + +#include + +using namespace geode::prelude; + +void GlobedProfilePage::loadPageFromUserInfo(GJUserScore* score) { + ProfilePage::loadPageFromUserInfo(score); + + if (!AdminManager::get().canModerate()) return; + + if (!this->getChildByIDRecursive("left-menu")) return; + + auto leftMenu = static_cast(this->getChildByIDRecursive("left-menu")); + + auto iconData = PlayerIconData {}; + auto player = PlayerAccountData { + score->m_accountID, + score->m_userID, + score->m_userName, + iconData + }; + + Build::createSpriteName("GJ_reportBtn_001.png") + .scale(.7f) + .intoMenuItem([player](auto) { + AdminManager::get().openUserPopup(player.makeRoomPreview(0)); + }) + .parent(leftMenu) + .id("admin-button"_spr); + + leftMenu->updateLayout(); +} \ No newline at end of file diff --git a/src/hooks/profile_page.hpp b/src/hooks/profile_page.hpp new file mode 100644 index 00000000..70e99c0f --- /dev/null +++ b/src/hooks/profile_page.hpp @@ -0,0 +1,8 @@ +#pragma once +#include + +#include + +struct GLOBED_DLL GlobedProfilePage : geode::Modify { + void loadPageFromUserInfo(GJUserScore*); +};