adapt: adapt GMLIB v0.9.8
This commit is contained in:
@@ -17,11 +17,7 @@ bool isMatch(std::string& A, std::string& B) {
|
||||
|
||||
bool shouldIgnore(GMLIB_Actor* ac) {
|
||||
if (ac->isMob() || ac->isItemActor()) {
|
||||
if (ac->isTame() || ac->isTrusting() || ac->getNameTag() != "") {
|
||||
return true;
|
||||
}
|
||||
auto nbt = ac->getNbt();
|
||||
if (nbt->getByte("ShowBottom") == 1) { // End Crystal Used Only, if has this tag 1b, it is modified by cleaner.
|
||||
if (ac->isTame() || ac->isTrusting() || ac->getNameTag() != "" || ac->hasTag("cleaner:ignore")) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -35,8 +31,7 @@ bool ShouldClean(Actor* actor) {
|
||||
return false;
|
||||
}
|
||||
auto type = en->getTypeName();
|
||||
auto tags = Config->getValue<std::vector<std::string>>({"IgnoreTags"}, {});
|
||||
for (auto& tag : tags) {
|
||||
for (auto& tag : ConfigFile::mIgnoreTags) {
|
||||
if (en->hasTag(tag)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2,9 +2,10 @@
|
||||
|
||||
namespace ConfigFile {
|
||||
|
||||
bool mConsoleLog = true;
|
||||
bool mAnnounce = true;
|
||||
bool mSendToast = true;
|
||||
bool mConsoleLog = true;
|
||||
bool mAnnounce = true;
|
||||
bool mSendToast = true;
|
||||
std::vector<std::string> mIgnoreTags = {};
|
||||
|
||||
} // namespace ConfigFile
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ void loadCleaner() {
|
||||
ConfigFile::mAnnounce = Config->getValue<bool>({"Basic", "SendBroadcast"}, true);
|
||||
ConfigFile::mConsoleLog = Config->getValue<bool>({"Basic", "ConsoleLog"}, true);
|
||||
ConfigFile::mSendToast = Config->getValue<bool>({"Basic", "SendToast"}, true);
|
||||
ConfigFile::mIgnoreTags = Config->getValue<std::vector<std::string>>({"IgnoreTags"}, {});
|
||||
}
|
||||
|
||||
void unloadCleaner() { stopAllTasks(); }
|
||||
|
||||
@@ -9,11 +9,7 @@ int mItemDespawnTicks = 3000;
|
||||
|
||||
namespace Cleaner {
|
||||
|
||||
void setShouldIgnore(GMLIB_Actor* ac) {
|
||||
auto nbt = ac->getNbt();
|
||||
nbt->put("ShowBottom", ByteTag(1));
|
||||
ac->setNbt(*nbt);
|
||||
}
|
||||
void setShouldIgnore(GMLIB_Actor* ac) { ac->addTag("cleaner:ignore"); }
|
||||
|
||||
void ListenEvents() {
|
||||
auto& eventBus = ll::event::EventBus::getInstance();
|
||||
@@ -21,8 +17,8 @@ void ListenEvents() {
|
||||
eventBus.emplaceListener<GMLIB::Event::EntityEvent::ItemActorSpawnAfterEvent>(
|
||||
[](GMLIB::Event::EntityEvent::ItemActorSpawnAfterEvent& event) {
|
||||
auto& item = event.getItemActor();
|
||||
auto pl = (GMLIB_Player*)event.getSpawner();
|
||||
if (pl) {
|
||||
if (event.getSpawner().has_value()) {
|
||||
auto pl = (GMLIB_Player*)event.getSpawner().as_ptr();
|
||||
if (pl->isPlayer() && !pl->isAlive()) { // Death Drop
|
||||
auto ac = (GMLIB_Actor*)&item;
|
||||
setShouldIgnore(ac);
|
||||
|
||||
@@ -18,6 +18,7 @@ extern int mItemDespawnTicks;
|
||||
extern bool mConsoleLog;
|
||||
extern bool mAnnounce;
|
||||
extern bool mSendToast;
|
||||
extern std::vector<std::string> mIgnoreTags;
|
||||
} // namespace ConfigFile
|
||||
|
||||
namespace Helper {
|
||||
|
||||
Reference in New Issue
Block a user