diff --git a/manifest.json b/manifest.json index e872628..6827888 100644 --- a/manifest.json +++ b/manifest.json @@ -1,5 +1,10 @@ { - "name": "Cleaner", - "entry": "Cleaner.dll", - "type": "native" + "name": "${pluginName}", + "entry": "${pluginFile}", + "type": "native", + "dependencies": [ + { + "name": "GMLIB" + } + ] } \ No newline at end of file diff --git a/src/Cleaner.cpp b/src/Cleaner.cpp index a34730a..ec4fdcd 100644 --- a/src/Cleaner.cpp +++ b/src/Cleaner.cpp @@ -1,39 +1,42 @@ #include "Global.h" +#include +#include +#include using namespace ll::schedule; using namespace ll::chrono_literals; +int item_despawn_time = 3000; -GameTimeAsyncScheduler scheduler; -bool auto_clean_triggerred = false; +ServerTimeAsyncScheduler scheduler; +bool auto_clean_triggerred = false; namespace Cleaner { -bool isDeathDrop(ItemActor* itac) { - // - return false; -} - -bool shouldIgnoreMob(Actor* ac) { - if (ac->isTame() || ac->isTrusting() || ac->getNameTag() != "") { - return true; +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. + return true; + } } - return false; } -bool ShouldClean(Actor* en) { +bool ShouldClean(Actor* actor) { // Players - if (en->isType(ActorType::Player)) { + auto en = (GMLIB_Actor*)actor; + if (en->isPlayer() || shouldIgnore(en)) { return false; } auto type = en->getTypeName(); // Items - if (en->hasCategory(ActorCategory::Item)) { + if (en->isItemActor()) { + return true; if (true) { // Todo Config Toggle - auto itac = (ItemActor*)en; - if (isDeathDrop(itac)) { - return false; - } + auto itac = (ItemActor*)en; auto itemType = itac->item().getTypeName(); if (true) { // Todo Config WhiteList return false; @@ -43,12 +46,8 @@ bool ShouldClean(Actor* en) { return false; } // Mobs - else if (en->hasCategory(ActorCategory::Mob)) { + else if (en->isMob()) { if (true) { // Todo Config Toggle - if (shouldIgnoreMob(en)) { - return false; - } - // Test return true; if (true) { // Todo WhiteList return false; @@ -71,7 +70,7 @@ bool ShouldClean(Actor* en) { int ExecuteClean() { int clean_count = 0; - auto all_entities = ll::service::bedrock::getLevel()->getRuntimeActorList(); + auto all_entities = GMLIB_Level::getLevel()->getAllEntities(); for (auto entity : all_entities) { if (ShouldClean(entity)) { entity->despawn(); @@ -83,7 +82,7 @@ int ExecuteClean() { int CountEntities() { int clean_count = 0; - auto all_entities = ll::service::bedrock::getLevel()->getRuntimeActorList(); + auto all_entities = GMLIB_Level::getLevel()->getAllEntities(); for (auto entity : all_entities) { if (ShouldClean(entity)) { clean_count++; @@ -105,19 +104,19 @@ void CleanTask(int time, int announce_time) { } void AutoCleanTask(int seconds) { - auto time = std::chrono::seconds::duration(seconds); - auto_clean_task = scheduler.add(time, [] { CleanTask(20, 5); }); + auto time = std::chrono::seconds::duration(seconds); + mAutoCleanTask = scheduler.add(time, [] { CleanTask(20, 5); }); } void CheckCleanTask(int max_entities, float min_tps) { - check_clean_task = scheduler.add(10s, [max_entities, min_tps] { + mCheckCleanTask = scheduler.add(10s, [max_entities, min_tps] { auto count = CountEntities(); if (auto_clean_triggerred == false) { if (count >= max_entities) { auto_clean_triggerred = true; logger.warn("Too many entities! Auto started clean task!"); CleanTask(20, 5); - } else if (TPS::getAverageTps() <= min_tps) { + } else if (GMLIB_Level::getLevel()->getServerAverageTps() <= min_tps) { auto_clean_triggerred = true; logger.warn("TPS too low! Auto started clean task!"); CleanTask(20, 5); @@ -126,5 +125,46 @@ void CheckCleanTask(int max_entities, float min_tps) { }); } +void setShouldIgnore(GMLIB_Actor* ac) { + auto nbt = ac->getNbt(); + nbt->put("ShowBottom", ByteTag(1)); + ac->setNbt(*nbt); +} + +void ListenEvents() { + auto eventBus = &ll::event::EventBus::getInstance(); + // ItemSpawnEvent + eventBus->emplaceListener( + [](GMLIB::Event::EntityEvent::ItemActorSpawnAfterEvent& event) { + auto& item = event.getItemActor(); + auto pl = (GMLIB_Player*)event.getSpawner(); + if (pl) { + if (pl->isPlayer() && !pl->isAlive()) { // Death Drop + auto ac = (GMLIB_Actor*)&item; + setShouldIgnore(ac); + return; + } + } + item.lifeTime() = item_despawn_time; + } + ); + // MobTakeItemEvent + eventBus->emplaceListener( + [](GMLIB::Event::EntityEvent::MobPickupItemAfterEvent& event) { + // auto item = event.getItemActor().item().getTypeName(); + auto mob = (GMLIB_Actor*)&event.self(); + setShouldIgnore(mob); + } + ); +} + +void ReloadCleaner() { + mAutoCleanTask->cancel(); + mCheckCleanTask->cancel(); + // UnregisterCommands(); + // RegisterCommands(); + Cleaner::AutoCleanTask(600); + Cleaner::CheckCleanTask(15, 8); +} } // namespace Cleaner \ No newline at end of file diff --git a/src/Global.h b/src/Global.h index c610d84..5aa66bb 100644 --- a/src/Global.h +++ b/src/Global.h @@ -1,23 +1,23 @@ #pragma once #include "Plugin.h" #include "include_all.h" +#include +#include extern ll::Logger logger; -extern void RegisterCommands(); -extern void UnregisterCommands(); -static std::shared_ptr> auto_clean_task; -static std::shared_ptr> check_clean_task; +extern void RegisterCommands(); +extern void UnregisterCommands(); + extern int item_despawn_time; namespace Cleaner { - extern void CleanTask(int time, int announce_time); - extern void AutoCleanTask(int seconds); - extern void CheckCleanTask(int max_entities, float min_tps); -} -namespace TPS { - extern void CaculateTPS(); - extern float getCurrentTps(); - extern float getAverageTps(); - extern float getMspt(); -} \ No newline at end of file +static std::shared_ptr> mAutoCleanTask; +static std::shared_ptr> mCheckCleanTask; +extern void CleanTask(int time, int announce_time); +extern void AutoCleanTask(int seconds); +extern void CheckCleanTask(int max_entities, float min_tps); +extern void ReloadCleaner(); +extern void ListenEvents(); + +} // namespace Cleaner \ No newline at end of file diff --git a/src/ItemDespawn.cpp b/src/ItemDespawn.cpp deleted file mode 100644 index a779777..0000000 --- a/src/ItemDespawn.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include "Global.h" - -int item_despawn_time = 3000; - -LL_AUTO_TYPED_INSTANCE_HOOK( - ItemSpawnEventHook, - ll::memory::HookPriority::Normal, - Spawner, - "?spawnItem@Spawner@@QEAAPEAVItemActor@@AEAVBlockSource@@AEBVItemStack@@PEAVActor@@AEBVVec3@@H@Z", - ItemActor*, - class BlockSource& region, - class ItemStack const& item, - class Actor* spawner, - class Vec3 const& pos, - int throwTime -) { - auto itac = origin(region, item, spawner, pos, throwTime); - if (itac) { - if (spawner) { - if (spawner->isType(ActorType::Player)) { - if (!spawner->isAlive()) { - // Death Drop - return itac; - } - } - } - itac->mLifeTime = item_despawn_time; - } - return itac; -} - -LL_AUTO_TYPED_INSTANCE_HOOK( - ItemTakeEventHook, - ll::memory::HookPriority::Normal, - Actor, - "?pickUpItem@Actor@@QEAAXAEAVItemActor@@H@Z", - void, - class ItemActor& itemActor, int count -) { - logger.warn("pickup item {}", this->getTypeName()); - return origin(itemActor,count); -} \ No newline at end of file diff --git a/src/Mspt.cpp b/src/Mspt.cpp deleted file mode 100644 index 09b83dd..0000000 --- a/src/Mspt.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include "Global.h" - -typedef std::chrono::high_resolution_clock timer_clock; -#define TIMER_START auto start = timer_clock::now(); -#define TIMER_END \ - auto elapsed = timer_clock::now() - start; \ - long long timeReslut = std::chrono::duration_cast(elapsed).count(); - -uint ticks = 0; -float average_tps = 0; -double mspt = 0; -bool culculate_mspt = false; -std::list avrtps = {}; - -LL_AUTO_TYPED_INSTANCE_HOOK(LevelTickHook, ll::memory::HookPriority::Normal, Level, "?tick@Level@@UEAAXXZ", void) { - ticks++; - TIMER_START - origin(); - TIMER_END - culculate_mspt = true; - if (culculate_mspt) { - mspt = (double)timeReslut / 1000; - culculate_mspt = false; - } -} - -namespace TPS { - -void CaculateTPS() { - std::thread([] { - while (true) { - std::this_thread::sleep_for(std::chrono::seconds(1)); - culculate_mspt = true; - avrtps.push_back(ticks); - ticks = 0; - if (avrtps.size() >= 60) { - avrtps.clear(); - continue; - } - uint ticks_minute = 0; - for (auto i : avrtps) { - ticks_minute = ticks_minute + i; - } - float res = (float)ticks_minute / ((float)avrtps.size()); - average_tps = res >= 20 ? 20 : res; - } - }).detach(); -} - -float getCurrentTps() { return mspt <= 50 ? 20 : (float)(1000.0 / mspt); } - -float getAverageTps() { return average_tps; } - -float getMspt() { return mspt; } - -} // namespace TPS diff --git a/src/Plugin.cpp b/src/Plugin.cpp index dfb1ed4..2bd7b33 100644 --- a/src/Plugin.cpp +++ b/src/Plugin.cpp @@ -9,10 +9,9 @@ Plugin::Plugin(ll::plugin::NativePlugin& self) : mSelf(self) { } bool Plugin::enable() { - TPS::CaculateTPS(); + Cleaner::ListenEvents(); RegisterCommands(); - item_despawn_time = 300; - Cleaner::AutoCleanTask(60); + Cleaner::AutoCleanTask(300); Cleaner::CheckCleanTask(20, 15); logger.info("Cleaner Loaded!"); logger.info("Author: Tsubasa6848"); @@ -23,6 +22,8 @@ bool Plugin::enable() { bool Plugin::disable() { logger.info("Disabling Cleaner..."); // Code for disabling the plugin goes here. + Cleaner::mAutoCleanTask->cancel(); + Cleaner::mCheckCleanTask->cancel(); UnregisterCommands(); logger.info("Cleaner Disabled!"); return true; diff --git a/src/RegCommand.cpp b/src/RegisterCommand.cpp similarity index 92% rename from src/RegCommand.cpp rename to src/RegisterCommand.cpp index f1d8bf0..554e5c9 100644 --- a/src/RegCommand.cpp +++ b/src/RegisterCommand.cpp @@ -1,95 +1,100 @@ -#include "Global.h" - -using ParamType = DynamicCommand::ParameterType; - -void RegVoteCommand(CommandRegistry& registry) { - auto command = DynamicCommand::createCommand(registry, "voteclean", "Clean entities", CommandPermissionLevel::Any); - command->addOverload(); - command->setCallback([](DynamicCommand const& cmd, - CommandOrigin const& origin, - CommandOutput& output, - std::unordered_map& result) { - // vote clean command - }); - DynamicCommand::setup(registry, std::move(command)); -} - -void RegCleanerCommand(CommandRegistry& registry) { - auto command = DynamicCommand::createCommand( - registry, - "cleaner", - "Cleaner plugin settings", - CommandPermissionLevel::GameDirectors - ); - command->setEnum("Despawn", {"despawn"}); - command->setEnum("Action", {"tps", "clean", "reload", "mspt"}); - command->setEnum("Despawntime", {"despawntime"}); - command->mandatory("action", ParamType::Enum, "Action", CommandParameterOption::EnumAutocompleteExpansion); - command - ->mandatory("despawntime", ParamType::Enum, "Despawntime", CommandParameterOption::EnumAutocompleteExpansion); - command->mandatory("despawn", ParamType::Enum, "Despawn", CommandParameterOption::EnumAutocompleteExpansion); - command->mandatory("ticks", ParamType::Int); - command->mandatory("target", ParamType::Actor); - command->addOverload({"action"}); - command->addOverload({"despawntime", "ticks"}); - command->addOverload({"despawn", "target"}); - command->setCallback([](DynamicCommand const& cmd, - CommandOrigin const& origin, - CommandOutput& output, - std::unordered_map& result) { - if (result["despawn"].isSet && result["target"].isSet) { - auto ens = result["target"].get>(); - if (ens.size() == 0) { - return output.error("No matched targets found!"); - } - for (auto en : ens) { - en->despawn(); - } - return output.success("Successfully despawned {} entities", ens.size()); - } else if (result["action"].isSet) { - auto act = result["action"].get(); - if (act == "tps") { - return output.success("current tps {}, average tps {}", TPS::getCurrentTps(), TPS::getAverageTps()); - } else if (act == "mspt") { - return output.success("mspt {}", TPS::getMspt()); - } else if (act == "clean") { - output.success("Clean task started!"); - Cleaner::CleanTask(20, 5); // Config - return; - } else if (act == "reload") { - output.success("Reloading Cleaner ..."); - return output.success("Cleaner Reloaded!"); - } - } else if (result["despawntime"].isSet && result["ticks"].isSet) { - item_despawn_time = result["ticks"].get(); - return output.success("Successfully set deapawn time to {}", item_despawn_time); - } - }); - DynamicCommand::setup(registry, std::move(command)); -} - -void RegDespawnCommand(CommandRegistry& registry) { - auto command = DynamicCommand::createCommand(registry, "despawn", "despawn entities", CommandPermissionLevel::Any); - command->mandatory("target", ParamType::Actor); - command->addOverload({"target"}); - command->addOverload(); - command->setCallback([](DynamicCommand const& cmd, - CommandOrigin const& origin, - CommandOutput& output, - std::unordered_map& result) { - - }); - DynamicCommand::setup(registry, std::move(command)); -} - -void RegisterCommands() { - auto registry = ll::service::bedrock::getCommandRegistry(); - RegCleanerCommand(registry); - RegVoteCommand(registry); -} - -void UnregisterCommands() { - auto registry = ll::service::bedrock::getCommandRegistry(); - registry->unregisterCommand("cleaner"); - registry->unregisterCommand("voteclean"); +#include "Global.h" + +using ParamType = DynamicCommand::ParameterType; + +void RegVoteCommand(CommandRegistry& registry) { + auto command = DynamicCommand::createCommand(registry, "voteclean", "Clean entities", CommandPermissionLevel::Any); + command->addOverload(); + command->setCallback([](DynamicCommand const& cmd, + CommandOrigin const& origin, + CommandOutput& output, + std::unordered_map& result) { + // vote clean command + }); + DynamicCommand::setup(registry, std::move(command)); +} + +void RegCleanerCommand(CommandRegistry& registry) { + auto command = DynamicCommand::createCommand( + registry, + "cleaner", + "Cleaner plugin settings", + CommandPermissionLevel::GameDirectors + ); + command->setEnum("Despawn", {"despawn"}); + command->setEnum("Action", {"tps", "clean", "reload", "mspt"}); + command->setEnum("Despawntime", {"despawntime"}); + command->mandatory("action", ParamType::Enum, "Action", CommandParameterOption::EnumAutocompleteExpansion); + command + ->mandatory("despawntime", ParamType::Enum, "Despawntime", CommandParameterOption::EnumAutocompleteExpansion); + command->mandatory("despawn", ParamType::Enum, "Despawn", CommandParameterOption::EnumAutocompleteExpansion); + command->mandatory("ticks", ParamType::Int); + command->mandatory("target", ParamType::Actor); + command->addOverload({"action"}); + command->addOverload({"despawntime", "ticks"}); + command->addOverload({"despawn", "target"}); + command->setCallback([](DynamicCommand const& cmd, + CommandOrigin const& origin, + CommandOutput& output, + std::unordered_map& result) { + if (result["despawn"].isSet && result["target"].isSet) { + auto ens = result["target"].get>(); + if (ens.size() == 0) { + return output.error("No matched targets found!"); + } + for (auto en : ens) { + en->despawn(); + } + return output.success("Successfully despawned {} entities", ens.size()); + } else if (result["action"].isSet) { + auto act = result["action"].get(); + if (act == "tps") { + return output.success( + "current tps {}, average tps {}", + GMLIB_Level::getLevel()->getServerCurrentTps(), + GMLIB_Level::getLevel()->getServerAverageTps() + ); + } else if (act == "mspt") { + return output.success("mspt {}", GMLIB_Level::getLevel()->getServerMspt()); + } else if (act == "clean") { + output.success("Clean task started!"); + Cleaner::CleanTask(20, 5); // Config + return; + } else if (act == "reload") { + output.success("Reloading Cleaner ..."); + Cleaner::ReloadCleaner(); + return output.success("Cleaner Reloaded!"); + } + } else if (result["despawntime"].isSet && result["ticks"].isSet) { + item_despawn_time = result["ticks"].get(); + return output.success("Successfully set deapawn time to {}", item_despawn_time); + } + }); + DynamicCommand::setup(registry, std::move(command)); +} + +void RegDespawnCommand(CommandRegistry& registry) { + auto command = DynamicCommand::createCommand(registry, "despawn", "despawn entities", CommandPermissionLevel::Any); + command->mandatory("target", ParamType::Actor); + command->addOverload({"target"}); + command->addOverload(); + command->setCallback([](DynamicCommand const& cmd, + CommandOrigin const& origin, + CommandOutput& output, + std::unordered_map& result) { + + }); + DynamicCommand::setup(registry, std::move(command)); +} + +void RegisterCommands() { + auto registry = ll::service::bedrock::getCommandRegistry(); + RegCleanerCommand(registry); + RegVoteCommand(registry); +} + +void UnregisterCommands() { + auto registry = ll::service::bedrock::getCommandRegistry(); + registry->unregisterCommand("cleaner"); + registry->unregisterCommand("voteclean"); } \ No newline at end of file diff --git a/src/include_all.h b/src/include_all.h index 7385eee..906e4cf 100644 --- a/src/include_all.h +++ b/src/include_all.h @@ -1,11 +1,11 @@ -// This file included all levilamina api and mcapi. -// This file is automatically generated by GroupMountain Tool Chain. -// Do not edit by hand. +// This file included all levilamina api and mcapi. +// This file is automatically generated by GroupMountain Tool Chain. +// Do not edit by hand. #pragma once -#include +// #include #include -#include +// #include #include #include #include @@ -21,10 +21,11 @@ #include #include #include -#include +// #include #include #include #include +#include #include #include #include @@ -40,7 +41,7 @@ #include #include #include -#include +// #include #include #include #include @@ -62,28 +63,29 @@ #include #include #include +#include +#include +#include #include #include #include -#include -#include #include #include #include #include #include #include -#include -#include +// #include +// #include #include #include #include #include #include #include -#include +// #include #include -#include +// #include #include #include #include @@ -97,6 +99,9 @@ #include #include #include +#include +#include +#include #include #include #include @@ -105,7 +110,7 @@ #include #include #include -#include +// #include #include #include #include @@ -121,33 +126,33 @@ #include #include #include -#include #include #include -#include -#include -#include -#include -#include -#include -#include -#include #include #include -#include -#include #include #include #include #include -#include #include #include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include #include #include +#include +#include +#include +#include #include #include #include @@ -158,20 +163,19 @@ #include #include #include -#include -#include #include #include -#include -#include #include #include +#include +#include +#include +#include #include #include #include #include #include -#include #include #include #include @@ -196,12 +200,13 @@ #include #include #include +#include #include -#include #include #include #include #include +#include #include #include #include @@ -246,12 +251,11 @@ #include #include #include +#include #include #include -#include #include #include -#include #include #include #include @@ -259,22 +263,20 @@ #include #include #include -#include #include #include #include #include #include #include -#include -#include #include -#include #include #include #include +#include +#include +#include #include -#include #include #include #include @@ -301,6 +303,9 @@ #include #include #include +#include +#include +#include #include #include #include @@ -322,21 +327,19 @@ #include #include #include -#include #include #include #include #include #include -#include #include #include #include #include #include #include -#include #include +#include #include #include #include @@ -345,11 +348,13 @@ #include #include #include +#include #include #include #include #include -#include +#include +#include #include #include #include @@ -378,7 +383,6 @@ #include #include #include -#include #include #include #include @@ -402,6 +406,7 @@ #include #include #include +#include #include #include #include @@ -411,7 +416,6 @@ #include #include #include -#include #include #include #include @@ -421,6 +425,7 @@ #include #include #include +#include #include #include #include @@ -474,8 +479,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -512,10 +517,10 @@ #include #include #include +#include #include #include #include -#include #include #include #include @@ -525,9 +530,9 @@ #include #include #include +#include #include #include -#include #include #include #include @@ -558,26 +563,25 @@ #include #include #include +#include +#include +#include #include #include #include #include #include #include -#include -#include -#include #include #include #include #include #include -#include #include #include +#include #include #include -#include #include #include #include @@ -591,8 +595,10 @@ #include #include #include -#include #include +#include +#include +#include #include #include #include @@ -601,11 +607,9 @@ #include #include #include -#include #include #include #include -#include #include #include #include @@ -627,12 +631,11 @@ #include #include #include -#include #include #include #include +#include #include -#include #include #include #include @@ -645,8 +648,9 @@ #include #include #include -#include +#include #include +#include #include #include #include @@ -661,6 +665,7 @@ #include #include #include +#include #include #include #include @@ -709,10 +714,10 @@ #include #include #include -#include #include #include #include +#include #include #include #include @@ -772,8 +777,6 @@ #include #include #include -#include -#include #include #include #include @@ -821,12 +824,14 @@ #include #include #include -#include +#include +#include #include +#include #include #include #include -#include +// #include #include #include #include @@ -834,12 +839,12 @@ #include #include #include +#include #include #include -#include #include -#include #include +#include #include #include #include @@ -880,12 +885,11 @@ #include #include #include -#include #include #include -#include #include #include +#include #include #include #include @@ -896,6 +900,7 @@ #include #include #include +#include #include #include #include @@ -909,8 +914,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -933,27 +938,36 @@ #include #include #include -#include #include +#include #include -#include #include +#include #include +#include #include #include #include -#include #include #include #include +#include #include #include -#include #include #include #include #include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include @@ -968,15 +982,6 @@ #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include #include #include #include @@ -987,7 +992,6 @@ #include #include #include -#include #include #include #include @@ -995,13 +999,14 @@ #include #include #include +#include #include -#include #include -#include #include #include #include +#include +#include #include #include #include @@ -1053,9 +1058,9 @@ #include #include #include +#include #include #include -#include #include #include #include @@ -1069,9 +1074,9 @@ #include #include #include +#include #include #include -#include #include #include #include @@ -1158,9 +1163,9 @@ #include #include #include +#include #include #include -#include #include #include #include @@ -1188,6 +1193,8 @@ #include #include #include +#include +#include #include #include #include @@ -1203,8 +1210,6 @@ #include #include #include -#include -#include #include #include #include @@ -1230,8 +1235,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -1248,13 +1253,13 @@ #include #include #include +#include #include #include #include -#include +#include #include #include -#include #include #include #include @@ -1269,9 +1274,9 @@ #include #include #include -#include #include #include +#include #include #include #include @@ -1280,8 +1285,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -1392,6 +1397,7 @@ #include #include #include +#include #include #include #include @@ -1400,7 +1406,6 @@ #include #include #include -#include #include #include #include @@ -1471,11 +1476,11 @@ #include #include #include -#include #include +#include #include -#include #include +#include #include #include #include @@ -1555,8 +1560,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -1572,8 +1577,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -1673,9 +1678,12 @@ #include #include #include +#include +#include #include -#include #include +#include +#include #include #include #include @@ -1689,10 +1697,7 @@ #include #include #include -#include -#include #include -#include #include #include #include @@ -1719,10 +1724,10 @@ #include #include #include +#include #include #include #include -#include #include #include #include @@ -1740,8 +1745,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -1781,13 +1786,13 @@ #include #include #include -#include #include +#include #include #include #include -#include #include +#include #include #include #include @@ -1850,8 +1855,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -1873,8 +1878,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -1921,24 +1926,24 @@ #include #include #include -#include #include #include #include +#include #include +#include +#include #include #include #include -#include #include +#include #include #include #include #include #include #include -#include -#include #include #include #include @@ -2005,6 +2010,9 @@ #include #include #include +#include +#include +#include #include #include #include @@ -2016,9 +2024,6 @@ #include #include #include -#include -#include -#include #include #include #include @@ -2089,6 +2094,7 @@ #include #include #include +#include #include #include #include @@ -2107,7 +2113,6 @@ #include #include #include -#include #include #include #include @@ -2118,7 +2123,9 @@ #include #include #include +#include #include +#include #include #include #include @@ -2165,10 +2172,10 @@ #include #include #include -#include #include #include #include +#include #include #include #include @@ -2244,6 +2251,7 @@ #include #include #include +#include #include #include #include @@ -2254,7 +2262,6 @@ #include #include #include -#include #include #include #include @@ -2266,11 +2273,11 @@ #include #include #include -#include #include +#include #include -#include #include +#include #include #include #include @@ -2311,8 +2318,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -2340,14 +2347,14 @@ #include #include #include +#include +#include #include #include #include #include #include #include -#include -#include #include #include #include @@ -2382,6 +2389,7 @@ #include #include #include +#include #include #include #include @@ -2394,11 +2402,6 @@ #include #include #include -#include -#include -#include -#include -#include #include #include #include @@ -2406,8 +2409,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -2419,12 +2422,12 @@ #include #include #include +#include #include #include #include #include #include -#include #include #include #include @@ -2452,10 +2455,6 @@ #include #include #include -#include -#include -#include -#include #include #include #include @@ -2463,8 +2462,11 @@ #include #include #include -#include #include +#include +#include +#include +#include #include #include #include @@ -2516,8 +2518,6 @@ #include #include #include -#include -#include #include #include #include @@ -2533,21 +2533,23 @@ #include #include #include +#include +#include #include #include #include #include #include #include +#include #include #include -#include #include #include #include #include -#include #include +#include #include #include #include @@ -2563,6 +2565,7 @@ #include #include #include +#include #include #include #include @@ -2611,7 +2614,6 @@ #include #include #include -#include #include #include #include @@ -2636,8 +2638,9 @@ #include #include #include -#include #include +#include +#include #include #include #include @@ -2660,19 +2663,19 @@ #include #include #include -#include -#include -#include -#include -#include #include +#include #include #include #include #include #include -#include #include +#include +#include +#include +#include +#include #include #include #include @@ -2724,8 +2727,6 @@ #include #include #include -#include -#include #include #include #include @@ -2774,8 +2775,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -2787,6 +2788,8 @@ #include #include #include +#include +#include #include #include #include @@ -2826,12 +2829,12 @@ #include #include #include -#include -#include #include #include #include #include +#include +#include #include #include #include @@ -2853,8 +2856,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -2912,13 +2915,15 @@ #include #include #include +#include #include #include #include -#include #include #include #include +#include +#include #include #include #include @@ -2931,8 +2936,6 @@ #include #include #include -#include -#include #include #include #include @@ -2950,11 +2953,11 @@ #include #include #include -#include #include +#include #include -#include #include +#include #include #include #include @@ -2974,12 +2977,12 @@ #include #include #include -#include #include +#include #include #include -#include #include +#include #include #include #include @@ -2999,8 +3002,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -3021,8 +3024,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -3064,9 +3067,9 @@ #include #include #include +#include #include #include -#include #include #include #include @@ -3079,12 +3082,6 @@ #include #include #include -#include -#include -#include -#include -#include -#include #include #include #include @@ -3104,11 +3101,17 @@ #include #include #include +#include +#include +#include +#include +#include +#include #include #include -#include #include #include +#include #include #include #include @@ -3183,7 +3186,6 @@ #include #include #include -#include #include #include #include @@ -3195,6 +3197,7 @@ #include #include #include +#include #include #include #include @@ -3260,8 +3263,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -3309,8 +3312,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -3370,14 +3373,13 @@ #include #include #include -#include #include #include #include +#include #include #include #include -#include #include #include #include @@ -3388,6 +3390,7 @@ #include #include #include +#include #include #include #include @@ -3475,16 +3478,17 @@ #include #include #include +#include +#include #include #include #include #include -#include -#include #include #include #include #include +#include #include #include #include @@ -3493,14 +3497,13 @@ #include #include #include -#include #include #include #include #include #include -#include #include +#include #include #include #include @@ -3782,8 +3785,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -3872,8 +3875,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -3924,8 +3927,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -3961,9 +3964,9 @@ #include #include #include -#include #include #include +#include #include #include #include @@ -3996,8 +3999,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -4033,7 +4036,6 @@ #include #include #include -#include #include #include #include @@ -4041,6 +4043,7 @@ #include #include #include +#include #include #include #include @@ -4054,6 +4057,7 @@ #include #include #include +#include #include #include #include @@ -4140,8 +4144,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -4276,11 +4280,11 @@ #include #include #include -#include -#include #include #include #include +#include +#include #include #include #include @@ -4320,6 +4324,7 @@ #include #include #include +#include #include #include #include @@ -4327,7 +4332,6 @@ #include #include #include -#include #include #include #include @@ -4341,11 +4345,11 @@ #include #include #include -#include #include +#include #include -#include #include +#include #include #include #include @@ -4646,6 +4650,7 @@ #include #include #include +#include #include #include #include @@ -4658,7 +4663,6 @@ #include #include #include -#include #include #include #include @@ -4691,9 +4695,9 @@ #include #include #include +#include #include #include -#include #include #include #include @@ -4704,8 +4708,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -4732,8 +4736,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -4761,11 +4765,10 @@ #include #include #include -#include +#include #include #include #include -#include #include #include #include @@ -4773,15 +4776,16 @@ #include #include #include +#include #include #include #include #include #include #include -#include #include #include +#include #include #include #include @@ -5043,8 +5047,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -5134,11 +5138,11 @@ #include #include #include +#include #include #include #include #include -#include #include #include #include @@ -5182,7 +5186,6 @@ #include #include #include -#include #include #include #include @@ -5190,11 +5193,12 @@ #include #include #include -#include #include #include #include #include +#include +#include #include #include #include @@ -5371,10 +5375,10 @@ #include #include #include +#include #include #include #include -#include #include #include #include @@ -5543,9 +5547,9 @@ #include #include #include -#include #include #include +#include #include #include #include @@ -5597,9 +5601,9 @@ #include #include #include -#include #include #include +#include #include #include #include @@ -5635,8 +5639,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -5674,8 +5678,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -5691,10 +5695,10 @@ #include #include #include -#include #include #include #include +#include #include #include #include @@ -5782,9 +5786,9 @@ #include #include #include +#include #include #include -#include #include #include #include @@ -5842,9 +5846,9 @@ #include #include #include -#include #include #include +#include #include #include #include @@ -5873,23 +5877,22 @@ #include #include #include +#include #include #include -#include #include #include #include #include -#include #include +#include #include #include #include #include -#include #include -#include #include +#include #include #include #include @@ -5924,6 +5927,7 @@ #include #include #include +#include #include #include #include @@ -6027,12 +6031,12 @@ #include #include #include -#include #include #include #include #include #include +#include #include #include #include @@ -6095,10 +6099,10 @@ #include #include #include -#include #include #include #include +#include #include #include #include @@ -6125,11 +6129,11 @@ #include #include #include +#include +#include #include #include -#include #include -#include #include #include #include @@ -6148,9 +6152,9 @@ #include #include #include -#include #include #include +#include #include #include #include @@ -6176,11 +6180,11 @@ #include #include #include -#include #include #include #include #include +#include #include #include #include @@ -6249,9 +6253,9 @@ #include #include #include -#include #include #include +#include #include #include #include @@ -6379,8 +6383,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -6389,16 +6393,16 @@ #include #include #include -#include #include +#include #include #include #include #include #include #include -#include #include +#include #include #include #include @@ -6465,10 +6469,10 @@ #include #include #include -#include #include -#include #include +#include +#include #include #include #include @@ -6510,12 +6514,12 @@ #include #include #include -#include #include #include #include #include #include +#include #include #include #include @@ -6550,8 +6554,6 @@ #include #include #include -#include -#include #include #include #include @@ -6559,6 +6561,8 @@ #include #include #include +#include +#include #include #include #include @@ -6681,11 +6685,11 @@ #include #include #include -#include -#include -#include #include #include +#include +#include +#include #include #include #include @@ -6721,8 +6725,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -6874,14 +6878,9 @@ #include #include #include -#include -#include #include #include #include -#include -#include -#include #include #include #include @@ -6892,6 +6891,11 @@ #include #include #include +#include +#include +#include +#include +#include #include #include #include @@ -6986,8 +6990,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -7061,8 +7065,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -7093,8 +7097,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -7116,9 +7120,9 @@ #include #include #include -#include #include #include +#include #include #include #include @@ -7153,8 +7157,8 @@ #include #include #include -#include #include +#include #include #include #include @@ -7216,11 +7220,11 @@ #include #include #include +#include +#include #include #include #include -#include -#include #include #include #include diff --git a/xmake.lua b/xmake.lua index 3ef9997..23a455b 100644 --- a/xmake.lua +++ b/xmake.lua @@ -1,7 +1,13 @@ add_rules("mode.debug", "mode.release", "mode.releasedbg") add_repositories("liteldev-repo https://github.com/LiteLDev/xmake-repo.git") -add_requires("levilamina 0.3.0") -- or add_requires("levilamina x.x.x") to specify target LeviLamina version + +if not has_config("vs_runtime") then + set_runtimes("MD") +end + +-- Option 1: Use the latest version of LeviLamina released on GitHub. +add_requires("levilamina") target("Cleaner") -- Change this to your plugin name. add_cxflags( @@ -11,7 +17,11 @@ target("Cleaner") -- Change this to your plugin name. add_files( "src/**.cpp" ) + add_links( + "SDK-GMLIB/Lib/GMLIB" + ) add_includedirs( + "SDK-GMLIB", "src" ) add_packages(