diff --git a/README.md b/README.md index 4cb22b6..6b3f3ca 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # FakeGDMod -This is where she makes a mod. +This is where he makes a mod. the mod's logo diff --git a/changelog.md b/changelog.md index 2190ea8..b9456f8 100644 --- a/changelog.md +++ b/changelog.md @@ -1,7 +1,9 @@ # FakeGDMod Changelog +## v1.0.2 (2025-07-30) +- Comments are now displayed as moderators ## v1.0.1 (2025-01-08) - Geode v4.1.0 support - Geometry Dash 2.207 support - macOS support! ## v1.0.0 (2024-09-08) -- Initial release \ No newline at end of file +- Initial release diff --git a/mod.json b/mod.json index 3e7b9ab..3c71060 100644 --- a/mod.json +++ b/mod.json @@ -1,5 +1,5 @@ { - "geode": "4.1.2", + "geode": "4.6.3", "gd": { "win": "2.2074", "android": "2.2074", @@ -14,11 +14,11 @@ "settings": { "modType": { "name": "Moderator Type", - "description": "you can choose 1 = Moderator, 2 = Elder Moderator, 3 = Leaderboard Moderator", + "description": "you can choose 1 = Moderator, 2 = Elder Moderator, 3 = Leaderboard Moderator, 4 = No Moderator", "type": "int", - "default": 1, + "default": 4, "min": 1, - "max": 3 + "max": 4 } }, "links": { @@ -26,7 +26,7 @@ "community": "https://discord.gg/gXg8w4xJDA" }, "name": "FakeGDMod", - "version": "v1.0.1", + "version": "v1.0.2", "developer": "BitZ", "description": "A cool mod that make you a fake moderator" } diff --git a/src/main.cpp b/src/main.cpp index 801d183..83bda52 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -6,6 +6,12 @@ using namespace geode::prelude; #include #include #include +#include +#include +#include +#include +#include + template inline bool instanceof(const T* ptr) { @@ -33,10 +39,12 @@ class modCheck if (Mod::get()->getSettingValue("modType") == 1) { Check->showSuccessMessage("Success! Moderator access granted."); + Mod::get()->setSavedValue("alreadyHasMod", true); } if (Mod::get()->getSettingValue("modType") == 2) { Check->showSuccessMessage("Success! Elder Moderator \n access granted."); + Mod::get()->setSavedValue("alreadyHasMod", true); } } } @@ -71,36 +79,61 @@ class $modify(SupportLayer) { void onRequestAccess(CCObject* sender) { auto GM = GameManager::sharedState(); - if (Mod::get()->getSettingValue("modType") == 3) + if (Mod::get()->getSavedValue("alreadyHasMod", false)) { + FLAlertLayer::create("Granted", "This account has access to the rating suggestion system.", "OK")->show(); + } else { + if (Mod::get()->getSettingValue("modType") >= 3) { SupportLayer::onRequestAccess(sender); GM->m_hasRP = 0; } else - { + { UploadActionPopup* popup = UploadActionPopup::create(nullptr, "Loading..."); popup->show(); popup->runAction((CCSequence::create( - CCDelayTime::create(1), + CCDelayTime::create(0.2), CCCallFunc::create(this, callfunc_selector(modCheck::DelayMod)), nullptr ))); GM->m_hasRP = Mod::get()->getSettingValue("modType"); } + } } }; + +class $modify(CommentCell) { + void loadFromComment(GJComment* p0) { + auto commentAccID = p0->m_accountID; + if (GJAccountManager::sharedState()->m_accountID == commentAccID) { + p0->m_modBadge = Mod::get()->getSettingValue("modType"); + } + CommentCell::loadFromComment(p0); + } + virtual void draw() { + auto commentAccID = this->m_comment->m_accountID; + if (GJAccountManager::sharedState()->m_accountID == commentAccID) { + this->m_comment->m_modBadge = Mod::get()->getSettingValue("modType"); + } + CommentCell::draw(); + } +}; + class $modify(ProfilePage) { void loadPageFromUserInfo(GJUserScore* p0) { int type = Mod::get()->getSettingValue("modType"); - if (this->m_ownProfile) - { - switch(type) { - case 1: p0->m_modBadge = type; break; - case 2: p0->m_modBadge = type; break; - case 3: p0->m_modBadge = type; break; + if (Mod::get()->getSavedValue("alreadyHasMod", false)) { + if ((this->m_ownProfile) || (this->m_score && this->m_score->m_userID == p0->m_userID)) + { + switch(type) { + case 1: p0->m_modBadge = type; break; + case 2: p0->m_modBadge = type; break; + case 3: p0->m_modBadge = type; break; + default: p0->m_modBadge = 0; break; + } } } ProfilePage::loadPageFromUserInfo(p0); @@ -117,7 +150,7 @@ class $modify(RateStarsLayer) UploadActionPopup* popup = UploadActionPopup::create(nullptr, "Sending rating..."); popup->show(); popup->runAction((CCSequence::create( - CCDelayTime::create(1), + CCDelayTime::create(0.1), CCCallFunc::create(this, callfunc_selector(modCheck::DelayRate)), nullptr ))); @@ -135,7 +168,7 @@ class $modify(RateDemonLayer) UploadActionPopup* popup = UploadActionPopup::create(nullptr, "Sending rating..."); popup->show(); popup->runAction((CCSequence::create( - CCDelayTime::create(1), + CCDelayTime::create(0.1), CCCallFunc::create(this, callfunc_selector(modCheck::DelayRate)), nullptr )));