adapt: adapt to GMLIB v0.13.10

This commit is contained in:
n15421
2025-01-28 07:29:14 +00:00
Unverified
parent a3dfdb615f
commit 33f663facf
9 changed files with 104 additions and 111 deletions
+1 -1
View File
@@ -2,7 +2,7 @@
"name": "${modName}", "name": "${modName}",
"entry": "${modFile}", "entry": "${modFile}",
"type": "native", "type": "native",
"version": "0.13.1", "version": "0.13.2",
"author": "GroupMountain", "author": "GroupMountain",
"description": "Better Death Messages", "description": "Better Death Messages",
"dependencies": [ "dependencies": [
+2
View File
@@ -1,6 +1,7 @@
#pragma once #pragma once
#include <iostream> #include <iostream>
namespace DeathMessages {
struct Config { struct Config {
int version = 1; int version = 1;
@@ -20,3 +21,4 @@ struct Config {
std::string Language = "zh_CN"; std::string Language = "zh_CN";
} ServerSideTranslation; } ServerSideTranslation;
}; };
} // namespace DeathMessages
+56 -49
View File
@@ -1,108 +1,111 @@
#include "Entry.h" #include "Entry.h"
#include "GMLIB/Mod/Addons/CustomDamageCause.h"
#include "Global.h" #include "Global.h"
#include "ll/api/event/player/PlayerConnectEvent.h"
#include "ll/api/event/player/PlayerDisconnectEvent.h"
void RegisterDamageDefinition() { void RegisterDamageDefinition() {
gmlib::mod::damage::DamageCauseRegistry::setCustomDamageCauseEnabled(); GMLIB::Mod::DamageCause::DamageCause::setCustomDamageCauseEnabled();
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Anvil, "anvil"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Anvil, "anvil");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::EntityAttack, "mob"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::EntityAttack, "mob");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::RamAttack, "mob"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::RamAttack, "mob");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Drowning, "drown"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Drowning, "drown");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::FallingBlock, "fallingBlock"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::FallingBlock, "fallingBlock");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Fire, "inFire"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Fire, "inFire");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::FireTick, "onFire"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::FireTick, "onFire");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Fireworks, "fireworks"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Fireworks, "fireworks");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::FlyIntoWall, "flyIntoWall"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::FlyIntoWall, "flyIntoWall");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Freezing, "freeze"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Freezing, "freeze");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Lava, "lava"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Lava, "lava");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Lightning, "lightningBolt"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Lightning, "lightningBolt");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Wither, "wither"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Wither, "wither");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Magic, "indirectMagic"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Magic, "indirectMagic");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Magma, "hotFloor"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Magma, "hotFloor");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Stalactite, "stalactite"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Stalactite, "stalactite");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Stalagmite, "stalagmite"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Stalagmite, "stalagmite");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Starve, "starve"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Starve, "starve");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Suffocation, "inWall"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Suffocation, "inWall");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::SonicBoom, "sonicBoom"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::SonicBoom, "sonicBoom");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Void, "outOfWorld"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Void, "outOfWorld");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::SelfDestruct, "genericKill"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::SelfDestruct, "genericKill");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Projectile, "thrown"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Projectile, "thrown");
gmlib::mod::damage::DamageCauseRegistry::setVanillaCauseMessage(ActorDamageCause::Thorns, "thorns"); GMLIB::Mod::DamageCause::DamageCause::setVanillaCauseMessage(ActorDamageCause::Thorns, "thorns");
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::Projectile, ActorDamageCause::Projectile,
"death.attack.fireball.item", "death.attack.fireball.item",
"minecraft:small_fireball" "minecraft:small_fireball"
); );
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::Projectile, ActorDamageCause::Projectile,
"death.attack.trident.item", "death.attack.trident.item",
"minecraft:thrown_trident" "minecraft:thrown_trident"
); );
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::Projectile, ActorDamageCause::Projectile,
"death.attack.spit", "death.attack.spit",
"minecraft:llama_spit" "minecraft:llama_spit"
); );
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::Projectile, ActorDamageCause::Projectile,
"death.attack.bullet", "death.attack.bullet",
"minecraft:shulker_bullet" "minecraft:shulker_bullet"
); );
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::Projectile, ActorDamageCause::Projectile,
"death.attack.arrow.item", "death.attack.arrow.item",
"minecraft:arrow" "minecraft:arrow"
); );
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::Projectile, ActorDamageCause::Projectile,
"death.attack.explosion.player", "death.attack.explosion.player",
"minecraft:fireball" "minecraft:fireball"
); );
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::Projectile, ActorDamageCause::Projectile,
"death.attack.mob", "death.attack.mob",
"minecraft:breeze_wind_charge_projectile" "minecraft:breeze_wind_charge_projectile"
); );
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::Magic, ActorDamageCause::Magic,
"death.attack.magic", "death.attack.magic",
"empty" "empty"
); );
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::SonicBoom, ActorDamageCause::SonicBoom,
"death.attack.sonicBoom", "death.attack.sonicBoom",
"minecraft:warden" "minecraft:warden"
); );
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::Thorns, ActorDamageCause::Thorns,
"death.attack.generic", "death.attack.generic",
"empty" "empty"
); );
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::EntityExplosion, ActorDamageCause::EntityExplosion,
"death.attack.explosion.player", "death.attack.explosion.player",
"all" "all"
); );
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::EntityExplosion, ActorDamageCause::EntityExplosion,
"minecraft:wither_skull", "minecraft:wither_skull",
"death.attack.witherSkull.item" "death.attack.witherSkull.item"
); );
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::EntityExplosion, ActorDamageCause::EntityExplosion,
"minecraft:wither_skull_dangerous", "minecraft:wither_skull_dangerous",
"death.attack.witherSkull.item" "death.attack.witherSkull.item"
); );
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::EntityAttack, ActorDamageCause::EntityAttack,
"minecraft:player", "minecraft:player",
"death.attack.player.item" "death.attack.player.item"
); );
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::EntityAttack, ActorDamageCause::EntityAttack,
"minecraft:bee", "minecraft:bee",
"death.attack.sting.item" "death.attack.sting.item"
); );
gmlib::mod::damage::DamageCauseRegistry::registerCustomDeathMessage( GMLIB::Mod::DamageCause::DamageCause::registerCustomDeathMessage(
ActorDamageCause::RamAttack, ActorDamageCause::RamAttack,
"minecraft:player", "minecraft:player",
"death.attack.player.item" "death.attack.player.item"
@@ -110,25 +113,29 @@ void RegisterDamageDefinition() {
} }
void ListenEvents() { void ListenEvents() {
auto& config = DeathMessages::Entry::getInstance()->getConfig(); auto& config = DeathMessages::Entry::getInstance().getConfig();
auto& eventBus = ll::event::EventBus::getInstance(); auto& eventBus = ll::event::EventBus::getInstance();
if (config.ConsoleLog.JoinMessage) { if (config.ConsoleLog.JoinMessage) {
eventBus.emplaceListener<ll::event::player::PlayerConnectEvent>([](ll::event::player::PlayerConnectEvent& ev) { eventBus.emplaceListener<ll::event::player::PlayerConnectEvent>([](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) { if (config.ConsoleLog.LeftMessage) {
eventBus.emplaceListener<ll::event::player::PlayerLeaveEvent>([](ll::event::player::PlayerLeaveEvent& ev) { eventBus.emplaceListener<ll::event::player::PlayerDisconnectEvent>(
infoLogger.info(fmt::format(fg(fmt::color::yellow), tr("multiplayer.player.left", {ev.self().getName()}))); [](ll::event::player::PlayerDisconnectEvent& ev) {
}); infoLogger->info(
fmt::format(fg(fmt::color::yellow), tr("multiplayer.player.left", {ev.self().getName()}))
);
}
);
} }
if (config.ConsoleLog.DeathMessage) { if (config.ConsoleLog.DeathMessage) {
eventBus.emplaceListener<gmlib::event::entity::DeathMessageAfterEvent>( eventBus.emplaceListener<GMLIB::Event::EntityEvent::DeathMessageAfterEvent>(
[](gmlib::event::entity::DeathMessageAfterEvent& ev) { [](GMLIB::Event::EntityEvent::DeathMessageAfterEvent& ev) {
auto msg = ev.getDeathMessage(); auto msg = ev.getDeathMessage();
auto info = tr(msg.first, msg.second); auto info = tr(msg.first, msg.second);
deathLogger.info(info); deathLogger->info(info);
ev.getDeathMessage() = {info, msg.second}; ev.getDeathMessage() = {info, msg.second};
} }
); );
+17 -13
View File
@@ -2,14 +2,16 @@
#include "Global.h" #include "Global.h"
#include "Language.h" #include "Language.h"
ll::Logger logger(MOD_NAME); ll::io::LoggerRegistry& loggerRegistry = ll::io::LoggerRegistry::getInstance();
ll::Logger deathLogger("Death"); std::shared_ptr<ll::io::Logger> logger = loggerRegistry.getOrCreate(MOD_NAME);
ll::Logger infoLogger("Server"); std::shared_ptr<ll::io::Logger> deathLogger = loggerRegistry.getOrCreate("Death");
std::shared_ptr<ll::io::Logger> infoLogger = loggerRegistry.getOrCreate("Server");
namespace DeathMessages { namespace DeathMessages {
std::unique_ptr<Entry>& Entry::getInstance() { Entry& Entry::getInstance() {
static std::unique_ptr<Entry> instance; static Entry instance;
return instance; return instance;
} }
@@ -24,8 +26,10 @@ bool Entry::load() {
loadResourcePack(); loadResourcePack();
} }
if (getConfig().FileLog.Enabled) { if (getConfig().FileLog.Enabled) {
auto& path = getConfig().FileLog.Path; auto& path = getConfig().FileLog.Path;
deathLogger.setFile(path); ll::Polymorphic<ll::io::PatternFormatter> polymorphicFormatter =
ll::makePolymorphic<ll::io::PatternFormatter>("[{3:.3%F %T.} {2}][{1}] {0}", false);
deathLogger->addSink(std::make_shared<ll::io::FileSink>(path, polymorphicFormatter));
} }
return true; return true;
} }
@@ -41,13 +45,13 @@ bool Entry::disable() { return true; }
bool Entry::unload() { bool Entry::unload() {
mConfig.reset(); mConfig.reset();
mI18n.reset(); mI18n.reset();
getInstance().reset(); // getInstance().reset();
return true; return true;
} }
Config& Entry::getConfig() { return mConfig.value(); } Config& Entry::getConfig() { return mConfig.value(); }
std::optional<gmlib::i18n::LangI18n> Entry::getI18n() { return mI18n; } std::optional<GMLIB::Files::I18n::LangI18n> Entry::getI18n() { return mI18n; }
void Entry::loadI18n() { void Entry::loadI18n() {
mI18n.emplace(getSelf().getLangDir(), getConfig().ServerSideTranslation.Language); mI18n.emplace(getSelf().getLangDir(), getConfig().ServerSideTranslation.Language);
@@ -58,8 +62,8 @@ void Entry::loadI18n() {
} }
void Entry::loadResourcePack() { void Entry::loadResourcePack() {
gmlib::tools::VanillaFix::setFixI18nEnabled(); GMLIB::Mod::VanillaFix::setFixI18nEnabled();
auto resource = gmlib::i18n::ResourceI18n(getSelf().getModDir() / u8"resource", MOD_NAME, 0, 8, 0); auto resource = GMLIB::Files::ResourceLanguage(getSelf().getModDir() / u8"resource", MOD_NAME, 0, 8, 0);
resource.addLanguage("en_US", en_US); resource.addLanguage("en_US", en_US);
resource.addLanguage("zh_CN", zh_CN); resource.addLanguage("zh_CN", zh_CN);
} }
@@ -69,8 +73,8 @@ void Entry::loadResourcePack() {
LL_REGISTER_MOD(DeathMessages::Entry, DeathMessages::Entry::getInstance()); LL_REGISTER_MOD(DeathMessages::Entry, DeathMessages::Entry::getInstance());
std::string tr(std::string const& key, std::vector<std::string> const& params) { std::string tr(std::string const& key, std::vector<std::string> const& params) {
if (auto i18n = DeathMessages::Entry::getInstance()->getI18n()) { if (auto i18n = DeathMessages::Entry::getInstance().getI18n()) {
return i18n->get(key, params); return i18n->get(key, params);
} }
return gmlib::world::I18nAPI::get(key, params); return ::I18nAPI::get(key, params);
} }
+6 -6
View File
@@ -7,9 +7,9 @@ namespace DeathMessages {
class Entry { class Entry {
public: public:
static std::unique_ptr<Entry>& 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; } [[nodiscard]] ll::mod::NativeMod& getSelf() const { return mSelf; }
@@ -27,16 +27,16 @@ public:
Config& getConfig(); Config& getConfig();
std::optional<gmlib::i18n::LangI18n> getI18n(); std::optional<GMLIB::Files::I18n::LangI18n> getI18n();
void loadI18n(); void loadI18n();
void loadResourcePack(); void loadResourcePack();
private: private:
ll::mod::NativeMod& mSelf; ll::mod::NativeMod& mSelf;
std::optional<Config> mConfig; std::optional<Config> mConfig;
std::optional<gmlib::i18n::LangI18n> mI18n; std::optional<GMLIB::Files::I18n::LangI18n> mI18n;
}; };
} // namespace DeathMessages } // namespace DeathMessages
+4 -4
View File
@@ -1,11 +1,11 @@
#pragma once #pragma once
#include <headers/include_all.h> #include <include_all.h>
#define MOD_NAME "DeathMessages" #define MOD_NAME "DeathMessages"
extern ll::Logger logger; extern std::shared_ptr<ll::io::Logger> logger;
extern ll::Logger deathLogger; extern std::shared_ptr<ll::io::Logger> deathLogger;
extern ll::Logger infoLogger; extern std::shared_ptr<ll::io::Logger> infoLogger;
extern std::string tr(std::string const& key, std::vector<std::string> const& data = {}); extern std::string tr(std::string const& key, std::vector<std::string> const& data = {});
+6
View File
@@ -243,6 +243,11 @@ entity.warden.name=Warden
entity.allay.name=Allay entity.allay.name=Allay
entity.camel.name=Camel entity.camel.name=Camel
entity.chest_raft.name=Raft with Chest 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.joined=%s joined the game
multiplayer.player.left=%s left the game multiplayer.player.left=%s left the game
)"; )";
@@ -494,6 +499,7 @@ entity.bogged.name=沼骸
entity.wind_charge_projectile.name= entity.wind_charge_projectile.name=
entity.breeze_wind_charge_projectile.name= entity.breeze_wind_charge_projectile.name=
entity.breeze.name= entity.breeze.name=
entity.creaking.name=
multiplayer.player.joined=%s加入了游戏 multiplayer.player.joined=%s加入了游戏
multiplayer.player.left=%s退出了游戏 multiplayer.player.left=%s退出了游戏
)"; )";
+3 -3
View File
@@ -1,7 +1,7 @@
{ {
"format_version": 2, "format_version": 2,
"tooth": "github.com/GroupMountain/DeathMessages", "tooth": "github.com/GroupMountain/DeathMessages",
"version": "0.13.1", "version": "0.13.2",
"info": { "info": {
"name": "DeathMessages", "name": "DeathMessages",
"description": "Better Death Messages on MCBE", "description": "Better Death Messages on MCBE",
@@ -11,9 +11,9 @@
"DeathMessages" "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": { "dependencies": {
"github.com/GroupMountain/GMLIB": ">=0.13.8" "github.com/GroupMountain/GMLIB": ">=0.13.10"
}, },
"files": { "files": {
"place": [ "place": [
+8 -34
View File
@@ -7,41 +7,10 @@ if not has_config("vs_runtime") then
set_runtimes("MD") set_runtimes("MD")
end end
-- Option 1: Use the latest version of LeviLamina released on GitHub.
add_requires("levilamina") add_requires("levilamina")
add_requires("levibuildscript")
add_requires("gmlib") 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. target("DeathMessages") -- Change this to your mod name.
add_cxflags( add_cxflags(
"/EHa", "/EHa",
@@ -60,9 +29,14 @@ target("DeathMessages") -- Change this to your mod name.
"levilamina", "levilamina",
"gmlib" "gmlib"
) )
add_shflags( add_defines(
"/DELAYLOAD:bedrock_server.dll" -- Magic to import symbols from BDS "NOMINMAX",
"UNICODE",
"_HAS_CXX17",
"_HAS_CXX20",
"_HAS_CXX23"
) )
add_rules("@levibuildscript/linkrule")
set_exceptions("none") -- To avoid conflicts with /EHa set_exceptions("none") -- To avoid conflicts with /EHa
set_kind("shared") set_kind("shared")
set_languages("cxx23") set_languages("cxx23")