From 33f663facf7a6d8ea9cb637f9f1bdd5809ba99d3 Mon Sep 17 00:00:00 2001 From: n15421 <119112174+n15421@users.noreply.github.com> Date: Tue, 28 Jan 2025 07:29:14 +0000 Subject: [PATCH 1/2] adapt: adapt to GMLIB v0.13.10 --- manifest.json | 2 +- src/Config.h | 4 +- src/DeathMessage.cpp | 105 +++++++++++++++++++++++-------------------- src/Entry.cpp | 30 +++++++------ src/Entry.h | 12 ++--- src/Global.h | 8 ++-- src/Language.h | 6 +++ tooth.json | 6 +-- xmake.lua | 42 ++++------------- 9 files changed, 104 insertions(+), 111 deletions(-) diff --git a/manifest.json b/manifest.json index 439dae2..f937351 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "name": "${modName}", "entry": "${modFile}", "type": "native", - "version": "0.13.1", + "version": "0.13.2", "author": "GroupMountain", "description": "Better Death Messages", "dependencies": [ diff --git a/src/Config.h b/src/Config.h index e4f1158..6b1992e 100644 --- a/src/Config.h +++ b/src/Config.h @@ -1,6 +1,7 @@ #pragma once #include +namespace DeathMessages { struct Config { int version = 1; @@ -19,4 +20,5 @@ struct Config { bool Enabled = false; std::string Language = "zh_CN"; } ServerSideTranslation; -}; \ No newline at end of file +}; +} // namespace DeathMessages \ No newline at end of file diff --git a/src/DeathMessage.cpp b/src/DeathMessage.cpp index 4f63604..f55d6c0 100644 --- a/src/DeathMessage.cpp +++ b/src/DeathMessage.cpp @@ -1,108 +1,111 @@ #include "Entry.h" +#include "GMLIB/Mod/Addons/CustomDamageCause.h" #include "Global.h" +#include "ll/api/event/player/PlayerConnectEvent.h" +#include "ll/api/event/player/PlayerDisconnectEvent.h" void RegisterDamageDefinition() { - gmlib::mod::damage::DamageCauseRegistry::setCustomDamageCauseEnabled(); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Anvil, "anvil"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::EntityAttack, "mob"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::RamAttack, "mob"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Drowning, "drown"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::FallingBlock, "fallingBlock"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Fire, "inFire"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::FireTick, "onFire"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Fireworks, "fireworks"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::FlyIntoWall, "flyIntoWall"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Freezing, "freeze"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Lava, "lava"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Lightning, "lightningBolt"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Wither, "wither"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Magic, "indirectMagic"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Magma, "hotFloor"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Stalactite, "stalactite"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Stalagmite, "stalagmite"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Starve, "starve"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Suffocation, "inWall"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::SonicBoom, "sonicBoom"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Void, "outOfWorld"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::SelfDestruct, "genericKill"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Projectile, "thrown"); - gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Thorns, "thorns"); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::setCustomDamageCauseEnabled(); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Anvil, "anvil"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::EntityAttack, "mob"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::RamAttack, "mob"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Drowning, "drown"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::FallingBlock, "fallingBlock"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Fire, "inFire"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::FireTick, "onFire"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Fireworks, "fireworks"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::FlyIntoWall, "flyIntoWall"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Freezing, "freeze"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Lava, "lava"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Lightning, "lightningBolt"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Wither, "wither"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Magic, "indirectMagic"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Magma, "hotFloor"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Stalactite, "stalactite"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Stalagmite, "stalagmite"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Starve, "starve"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Suffocation, "inWall"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::SonicBoom, "sonicBoom"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Void, "outOfWorld"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::SelfDestruct, "genericKill"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Projectile, "thrown"); + GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Thorns, "thorns"); + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::Projectile, "death.attack.fireball.item", "minecraft:small_fireball" ); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::Projectile, "death.attack.trident.item", "minecraft:thrown_trident" ); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::Projectile, "death.attack.spit", "minecraft:llama_spit" ); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::Projectile, "death.attack.bullet", "minecraft:shulker_bullet" ); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::Projectile, "death.attack.arrow.item", "minecraft:arrow" ); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::Projectile, "death.attack.explosion.player", "minecraft:fireball" ); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::Projectile, "death.attack.mob", "minecraft:breeze_wind_charge_projectile" ); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::Magic, "death.attack.magic", "empty" ); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::SonicBoom, "death.attack.sonicBoom", "minecraft:warden" ); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::Thorns, "death.attack.generic", "empty" ); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::EntityExplosion, "death.attack.explosion.player", "all" ); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::EntityExplosion, "minecraft:wither_skull", "death.attack.witherSkull.item" ); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::EntityExplosion, "minecraft:wither_skull_dangerous", "death.attack.witherSkull.item" ); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::EntityAttack, "minecraft:player", "death.attack.player.item" ); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::EntityAttack, "minecraft:bee", "death.attack.sting.item" ); - gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( + GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage( ActorDamageCause::RamAttack, "minecraft:player", "death.attack.player.item" @@ -110,25 +113,29 @@ void RegisterDamageDefinition() { } void ListenEvents() { - auto& config = DeathMessages::Entry::getInstance()->getConfig(); + auto& config = DeathMessages::Entry::getInstance().getConfig(); auto& eventBus = ll::event::EventBus::getInstance(); if (config.ConsoleLog.JoinMessage) { eventBus.emplaceListener([](ll::event::player::PlayerConnectEvent& ev) { - infoLogger.info(fmt::format(fg(fmt::color::yellow), tr("multiplayer.player.joined", {ev.self().getName()})) + infoLogger->info(fmt::format(fg(fmt::color::yellow), tr("multiplayer.player.joined", {ev.self().getName()})) ); }); } if (config.ConsoleLog.LeftMessage) { - eventBus.emplaceListener([](ll::event::player::PlayerLeaveEvent& ev) { - infoLogger.info(fmt::format(fg(fmt::color::yellow), tr("multiplayer.player.left", {ev.self().getName()}))); - }); + eventBus.emplaceListener( + [](ll::event::player::PlayerDisconnectEvent& ev) { + infoLogger->info( + fmt::format(fg(fmt::color::yellow), tr("multiplayer.player.left", {ev.self().getName()})) + ); + } + ); } if (config.ConsoleLog.DeathMessage) { - eventBus.emplaceListener( - [](gmlib::event::entity::DeathMessageAfterEvent& ev) { + eventBus.emplaceListener( + [](GMLIB::Event::EntityEvent::DeathMessageAfterEvent& ev) { auto msg = ev.getDeathMessage(); auto info = tr(msg.first, msg.second); - deathLogger.info(info); + deathLogger->info(info); ev.getDeathMessage() = {info, msg.second}; } ); diff --git a/src/Entry.cpp b/src/Entry.cpp index bbf8115..8f04364 100644 --- a/src/Entry.cpp +++ b/src/Entry.cpp @@ -2,14 +2,16 @@ #include "Global.h" #include "Language.h" -ll::Logger logger(MOD_NAME); -ll::Logger deathLogger("Death"); -ll::Logger infoLogger("Server"); +ll::io::LoggerRegistry& loggerRegistry = ll::io::LoggerRegistry::getInstance(); +std::shared_ptr logger = loggerRegistry.getOrCreate(MOD_NAME); +std::shared_ptr deathLogger = loggerRegistry.getOrCreate("Death"); +std::shared_ptr infoLogger = loggerRegistry.getOrCreate("Server"); + namespace DeathMessages { -std::unique_ptr& Entry::getInstance() { - static std::unique_ptr instance; +Entry& Entry::getInstance() { + static Entry instance; return instance; } @@ -24,8 +26,10 @@ bool Entry::load() { loadResourcePack(); } if (getConfig().FileLog.Enabled) { - auto& path = getConfig().FileLog.Path; - deathLogger.setFile(path); + auto& path = getConfig().FileLog.Path; + ll::Polymorphic polymorphicFormatter = + ll::makePolymorphic("[{3:.3%F %T.} {2}][{1}] {0}", false); + deathLogger->addSink(std::make_shared(path, polymorphicFormatter)); } return true; } @@ -41,13 +45,13 @@ bool Entry::disable() { return true; } bool Entry::unload() { mConfig.reset(); mI18n.reset(); - getInstance().reset(); + // getInstance().reset(); return true; } Config& Entry::getConfig() { return mConfig.value(); } -std::optional Entry::getI18n() { return mI18n; } +std::optional Entry::getI18n() { return mI18n; } void Entry::loadI18n() { mI18n.emplace(getSelf().getLangDir(), getConfig().ServerSideTranslation.Language); @@ -58,8 +62,8 @@ void Entry::loadI18n() { } void Entry::loadResourcePack() { - gmlib::tools::VanillaFix::setFixI18nEnabled(); - auto resource = gmlib::i18n::ResourceI18n(getSelf().getModDir() / u8"resource", MOD_NAME, 0, 8, 0); + GMLIB::Mod::VanillaFix::setFixI18nEnabled(); + auto resource = GMLIB::Files::ResourceLanguage(getSelf().getModDir() / u8"resource", MOD_NAME, 0, 8, 0); resource.addLanguage("en_US", en_US); resource.addLanguage("zh_CN", zh_CN); } @@ -69,8 +73,8 @@ void Entry::loadResourcePack() { LL_REGISTER_MOD(DeathMessages::Entry, DeathMessages::Entry::getInstance()); std::string tr(std::string const& key, std::vector const& params) { - if (auto i18n = DeathMessages::Entry::getInstance()->getI18n()) { + if (auto i18n = DeathMessages::Entry::getInstance().getI18n()) { return i18n->get(key, params); } - return gmlib::world::I18nAPI::get(key, params); + return ::I18nAPI::get(key, params); } \ No newline at end of file diff --git a/src/Entry.h b/src/Entry.h index 16731c9..2ba2001 100644 --- a/src/Entry.h +++ b/src/Entry.h @@ -7,9 +7,9 @@ namespace DeathMessages { class Entry { public: - static std::unique_ptr& getInstance(); + static Entry& getInstance(); - Entry(ll::mod::NativeMod& self) : mSelf(self) {} + Entry() : mSelf(*ll::mod::NativeMod::current()) {} [[nodiscard]] ll::mod::NativeMod& getSelf() const { return mSelf; } @@ -27,16 +27,16 @@ public: Config& getConfig(); - std::optional getI18n(); + std::optional getI18n(); void loadI18n(); void loadResourcePack(); private: - ll::mod::NativeMod& mSelf; - std::optional mConfig; - std::optional mI18n; + ll::mod::NativeMod& mSelf; + std::optional mConfig; + std::optional mI18n; }; } // namespace DeathMessages diff --git a/src/Global.h b/src/Global.h index 81a336f..4df6d70 100644 --- a/src/Global.h +++ b/src/Global.h @@ -1,11 +1,11 @@ #pragma once -#include +#include #define MOD_NAME "DeathMessages" -extern ll::Logger logger; -extern ll::Logger deathLogger; -extern ll::Logger infoLogger; +extern std::shared_ptr logger; +extern std::shared_ptr deathLogger; +extern std::shared_ptr infoLogger; extern std::string tr(std::string const& key, std::vector const& data = {}); diff --git a/src/Language.h b/src/Language.h index 687ccfb..33c4632 100644 --- a/src/Language.h +++ b/src/Language.h @@ -243,6 +243,11 @@ entity.warden.name=Warden entity.allay.name=Allay entity.camel.name=Camel entity.chest_raft.name=Raft with Chest +entity.bogged.name=Bogged +entity.wind_charge_projectile.name=Wind Charge +entity.breeze_wind_charge_projectile.name=Wind Charge +entity.breeze.name=Breeze +entity.creaking.name=Creaking multiplayer.player.joined=%s joined the game multiplayer.player.left=%s left the game )"; @@ -494,6 +499,7 @@ entity.bogged.name=沼骸 entity.wind_charge_projectile.name=风弹 entity.breeze_wind_charge_projectile.name=风弹 entity.breeze.name=旋风人 +entity.creaking.name=嘎枝 multiplayer.player.joined=%s加入了游戏 multiplayer.player.left=%s退出了游戏 )"; \ No newline at end of file diff --git a/tooth.json b/tooth.json index 8176e88..7e7b2f8 100644 --- a/tooth.json +++ b/tooth.json @@ -1,7 +1,7 @@ { "format_version": 2, "tooth": "github.com/GroupMountain/DeathMessages", - "version": "0.13.1", + "version": "0.13.2", "info": { "name": "DeathMessages", "description": "Better Death Messages on MCBE", @@ -11,9 +11,9 @@ "DeathMessages" ] }, - "asset_url": "https://github.com/GroupMountain/DeathMessages/releases/download/v0.13.1/DeathMessages-windows-x64.zip", + "asset_url": "https://github.com/GroupMountain/DeathMessages/releases/download/v0.13.2/DeathMessages-windows-x64.zip", "dependencies": { - "github.com/GroupMountain/GMLIB": ">=0.13.8" + "github.com/GroupMountain/GMLIB": ">=0.13.10" }, "files": { "place": [ diff --git a/xmake.lua b/xmake.lua index c950500..fd7161e 100644 --- a/xmake.lua +++ b/xmake.lua @@ -7,41 +7,10 @@ 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") +add_requires("levibuildscript") add_requires("gmlib") --- Option 2: Use a specific version of LeviLamina released on GitHub. --- add_requires("levilamina x.x.x") - --- Option 3: Use the latest commit of LeviLamina on GitHub. --- -- Here, "develop" is the branch name. You can change it to any branch name you want. --- add_requires("levilamina develop") --- -- You can also use debug build of LeviLamina. --- -- add_requires("levilamina develop", {debug = true}) --- package("levilamina") --- add_urls("https://github.com/LiteLDev/LeviLamina.git") - --- add_deps("ctre 3.8.1") --- add_deps("entt 3.12.2") --- add_deps("fmt 10.1.1") --- add_deps("gsl 4.0.0") --- add_deps("leveldb 1.23") --- add_deps("magic_enum 0.9.0") --- add_deps("nlohmann_json 3.11.2") --- add_deps("rapidjson 1.1.0") --- add_deps("pcg_cpp 1.0.0") --- add_deps("pfr 2.1.1") --- add_deps("preloader 1.4.0") --- add_deps("symbolprovider 1.1.0") - --- -- You may need to change this to the target BDS version of your choice. --- add_deps("bdslibrary 1.20.50.03") - --- on_install(function (package) --- import("package.tools.xmake").install(package) --- end) - target("DeathMessages") -- Change this to your mod name. add_cxflags( "/EHa", @@ -60,9 +29,14 @@ target("DeathMessages") -- Change this to your mod name. "levilamina", "gmlib" ) - add_shflags( - "/DELAYLOAD:bedrock_server.dll" -- Magic to import symbols from BDS + add_defines( + "NOMINMAX", + "UNICODE", + "_HAS_CXX17", + "_HAS_CXX20", + "_HAS_CXX23" ) + add_rules("@levibuildscript/linkrule") set_exceptions("none") -- To avoid conflicts with /EHa set_kind("shared") set_languages("cxx23") From 09a01e1b37d0540f53324f4e24cf5d3cdfe63108 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=90=E6=B2=90=E5=91=80?= <163636894+zimuya4153@users.noreply.github.com> Date: Tue, 28 Jan 2025 15:53:38 +0800 Subject: [PATCH 2/2] fix: fix version --- manifest.json | 2 +- tooth.json | 4 ++-- xmake.lua | 13 +++++-------- 3 files changed, 8 insertions(+), 11 deletions(-) diff --git a/manifest.json b/manifest.json index f937351..439dae2 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "name": "${modName}", "entry": "${modFile}", "type": "native", - "version": "0.13.2", + "version": "0.13.1", "author": "GroupMountain", "description": "Better Death Messages", "dependencies": [ diff --git a/tooth.json b/tooth.json index 7e7b2f8..97824ea 100644 --- a/tooth.json +++ b/tooth.json @@ -1,7 +1,7 @@ { "format_version": 2, "tooth": "github.com/GroupMountain/DeathMessages", - "version": "0.13.2", + "version": "0.13.1", "info": { "name": "DeathMessages", "description": "Better Death Messages on MCBE", @@ -11,7 +11,7 @@ "DeathMessages" ] }, - "asset_url": "https://github.com/GroupMountain/DeathMessages/releases/download/v0.13.2/DeathMessages-windows-x64.zip", + "asset_url": "https://github.com/GroupMountain/DeathMessages/releases/download/v0.13.1/DeathMessages-windows-x64.zip", "dependencies": { "github.com/GroupMountain/GMLIB": ">=0.13.10" }, diff --git a/xmake.lua b/xmake.lua index fd7161e..841da63 100644 --- a/xmake.lua +++ b/xmake.lua @@ -7,18 +7,15 @@ if not has_config("vs_runtime") then set_runtimes("MD") end -add_requires("levilamina") -add_requires("levibuildscript") -add_requires("gmlib") +add_requires("levilamina 1.0.0") +add_requires("levibuildscript 0.3.0") +add_requires("gmlib 0.13.10") target("DeathMessages") -- Change this to your mod name. add_cxflags( "/EHa", "/utf-8" ) - add_defines( - "_HAS_CXX23=1" -- To enable C++23 features - ) add_files( "src/**.cpp" ) @@ -37,9 +34,9 @@ target("DeathMessages") -- Change this to your mod name. "_HAS_CXX23" ) add_rules("@levibuildscript/linkrule") - set_exceptions("none") -- To avoid conflicts with /EHa + set_exceptions("none") set_kind("shared") - set_languages("cxx23") + set_languages("cxx20") set_symbols("debug") after_build(function (target)