feat: merge to main #1
@@ -91,5 +91,10 @@ struct Config {
|
|||||||
int CheckDelay = 30;
|
int CheckDelay = 30;
|
||||||
int Percentage = 50;
|
int Percentage = 50;
|
||||||
} VoteClean;
|
} VoteClean;
|
||||||
|
|
||||||
|
struct Unload_Actor_Clean {
|
||||||
|
bool Enabled = false;
|
||||||
|
std::vector<std::string> CleanList = {"minecraft:iron_golem", "minecraft:zombie_pigman"};
|
||||||
|
} UnloadActorClean;
|
||||||
};
|
};
|
||||||
} // namespace Cleaner
|
} // namespace Cleaner
|
||||||
@@ -4,6 +4,9 @@ namespace Cleaner {
|
|||||||
|
|
||||||
void loadCleaner() {
|
void loadCleaner() {
|
||||||
auto& config = Cleaner::Entry::getInstance().getConfig();
|
auto& config = Cleaner::Entry::getInstance().getConfig();
|
||||||
|
if(config.UnloadActorClean.Enabled){
|
||||||
|
UnloadActorClean::cleanUnloadActor();
|
||||||
|
}
|
||||||
if (config.ScheduleClean.Enabled) {
|
if (config.ScheduleClean.Enabled) {
|
||||||
Cleaner::AutoCleanTask(config.ScheduleClean.CleanInterval);
|
Cleaner::AutoCleanTask(config.ScheduleClean.CleanInterval);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,3 +27,9 @@ namespace VoteClean {
|
|||||||
extern void voteCommandExecute(Player* pl);
|
extern void voteCommandExecute(Player* pl);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace UnloadActorClean {
|
||||||
|
|
||||||
|
extern void cleanUnloadActor();
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
#include "Cleaner.h"
|
||||||
|
#include "Global.h"
|
||||||
|
#include "gmlib/mc/world/actor/UnloadedActor.h"
|
||||||
|
|
||||||
|
namespace UnloadActorClean {
|
||||||
|
void cleanUnloadActor() {
|
||||||
|
auto& config = Cleaner::Entry::getInstance().getConfig();
|
||||||
|
gmlib::world::actor::UnloadedActor::foreachUnloadedActor(
|
||||||
|
[config](gmlib::world::actor::UnloadedActor& actor) -> bool {
|
||||||
|
for (auto& actorname : config.UnloadActorClean.CleanList) {
|
||||||
|
if (actor.getTypeName() == actorname) {
|
||||||
|
actor.remove();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
} // namespace UnloadActorClean
|
||||||
@@ -15,6 +15,7 @@ bool Entry::load() { return true; }
|
|||||||
bool Entry::enable() {
|
bool Entry::enable() {
|
||||||
mConfig.emplace();
|
mConfig.emplace();
|
||||||
ll::config::loadConfig(*mConfig, getSelf().getConfigDir() / "config.json");
|
ll::config::loadConfig(*mConfig, getSelf().getConfigDir() / "config.json");
|
||||||
|
|
||||||
saveConfig();
|
saveConfig();
|
||||||
gmlib::locale::I18nAPI::updateOrCreateLanguageFile(getSelf().getLangDir(), "en_US", en_US);
|
gmlib::locale::I18nAPI::updateOrCreateLanguageFile(getSelf().getLangDir(), "en_US", en_US);
|
||||||
gmlib::locale::I18nAPI::updateOrCreateLanguageFile(getSelf().getLangDir(), "zh_CN", zh_CN);
|
gmlib::locale::I18nAPI::updateOrCreateLanguageFile(getSelf().getLangDir(), "zh_CN", zh_CN);
|
||||||
|
|||||||
Reference in New Issue
Block a user