fix: fix resource lang

This commit is contained in:
2026-06-20 20:56:56 +08:00
Unverified
parent ce09c29431
commit f4727eb09b
6 changed files with 150 additions and 117 deletions
+3
View File
@@ -8,6 +8,9 @@
"dependencies": [ "dependencies": [
{ {
"name": "GMLIB" "name": "GMLIB"
},
{
"name": "ModAPI"
} }
] ]
} }
+27 -2
View File
@@ -12,7 +12,8 @@
#include "mc/world/actor/ActorDamageByChildActorSource.h" #include "mc/world/actor/ActorDamageByChildActorSource.h"
#include "ll/api/service/Bedrock.h" #include "ll/api/service/Bedrock.h"
#include "mc/world/level/Level.h" #include "mc/world/level/Level.h"
#include "mc/world/actor/monster/EnderCrystal.h"
#include "mc/world/actor/ActorHurtResult.h"
#include "mc/world/actor/Actor.h" #include "mc/world/actor/Actor.h"
phmap::flat_hash_map<int64, float> mFallHeightMap; phmap::flat_hash_map<int64, float> mFallHeightMap;
@@ -176,7 +177,7 @@ DeathMessageResult makeDeathMessage(
} }
auto weaponname = killer->getCarriedItem().getCustomName(); auto weaponname = killer->getCarriedItem().getCustomName();
if (!weaponname.empty()) { if (!weaponname.empty()) {
weaponname = "[" + weaponname + "§r]"; weaponname = "[§b§o" + weaponname + "§r]";
res.second.push_back(weaponname); res.second.push_back(weaponname);
} else { } else {
ll::utils::string_utils::replaceAll(res.first, ".item", ""); ll::utils::string_utils::replaceAll(res.first, ".item", "");
@@ -327,6 +328,30 @@ DeathMessageResult translateDeathMessage(DeathMessageResult origin, std::string
return makeDeathMessage((int)damageCause, origin, name, killer, weaponName, isEscaping); return makeDeathMessage((int)damageCause, origin, name, killer, weaponName, isEscaping);
} }
LL_AUTO_TYPE_INSTANCE_HOOK(
CryatslHurtHook,
HookPriority::Normal,
EnderCrystal,
&EnderCrystal::$_hurt,
::ActorHurtResult,
ActorDamageSource const& a1,
float a2,
bool a3,
bool a4
) {
auto res = origin(a1, a2, a3, a4);
isCrystal = true;
auto& executor = ll::thread::ThreadPoolExecutor::getDefault();
auto callback = executor.executeAfter(
[] {
isCrystal = false;
},
ll::chrono::game::ticks(1)
);
return res;
}
LL_AUTO_TYPE_INSTANCE_HOOK( LL_AUTO_TYPE_INSTANCE_HOOK(
DeathMessageHook1, DeathMessageHook1,
HookPriority::Lowest, HookPriority::Lowest,
+4 -3
View File
@@ -45,8 +45,8 @@ bool Entry::load() {
} }
bool Entry::enable() { bool Entry::enable() {
/* RegisterDamageDefinition(); RegisterDamageDefinition();
ListenEvents();*/ /* ListenEvents();*/
return true; return true;
} }
@@ -72,9 +72,10 @@ void Entry::loadI18n() {
} }
void Entry::loadResourcePack() { void Entry::loadResourcePack() {
auto resource = gmlib::i18n::ResourceI18n(getSelf().getModDir() / u8"resource", MOD_NAME, 0, 8, 0); auto resource = gmlib::i18n::ResourceI18n{getSelf().getModDir() / u8"lang", 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);
resource.loadAllLanguages();
} }
} // namespace DeathMessages } // namespace DeathMessages
+4 -2
View File
@@ -7,7 +7,9 @@ extern std::shared_ptr<ll::io::Logger> logger;
extern std::shared_ptr<ll::io::Logger> deathLogger; extern std::shared_ptr<ll::io::Logger> deathLogger;
extern std::shared_ptr<ll::io::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 void RegisterDamageDefinition(); extern void RegisterDamageDefinition();
extern void ListenEvents();*/ /*
*extern std::string tr(std::string const& key, std::vector<std::string> const& data = {});
*extern void ListenEvents();*/
+110 -109
View File
@@ -253,113 +253,114 @@ multiplayer.player.left=%s left the game
)"; )";
std::string zh_CN = R"( std::string zh_CN = R"(
death.attack.anvil=%1$s被坠落的铁砧压扁了 death.attack.anvil=%1$s
death.attack.anvil.player=%1$sz在与%2$s战斗时被坠落的铁砧压扁了 death.attack.anvil.player=%1$s %2$s
death.attack.anvil.item=%1$s在与持有%3$s的%2$s战斗时被坠落的铁砧压扁了 death.attack.anvil.item=%1$s %3$s %2$s
death.attack.arrow=%1$s被%2$s射杀 death.attack.arrow=%1$s被 %2$s
death.attack.arrow.item=%1$s被%2$s用%3$s射杀 death.attack.arrow.item=%1$s %2$s %3$s
death.attack.bullet=%1$s被%2$s狙击了 death.attack.bullet=%1$s被 %2$s
death.attack.cactus=%1$s被戳死了 death.attack.cactus=%1$s
death.attack.cactus.player=%1$s在试图逃离%2$s时撞上了仙人掌 death.attack.cactus.player=%1$s %2$s
death.attack.cactus.item=%1$s在试图逃离持有%3$s的%2$s时撞上了仙人掌 death.attack.cactus.item=%1$s %3$s %2$s
death.attack.drown=%1$s淹死了 death.attack.drown=%1$s
death.attack.drown.player=%1$s在试图逃离%2$s时淹死了 death.attack.drown.player=%1$s %2$s
death.attack.drown.item=%1$s在试图逃离持有%3$s的%2$s时淹死了 death.attack.drown.item=%1$s %3$s %2$s
death.attack.explosion=%1$s爆炸了 death.attack.explosion=%1$s
death.attack.explosion.player=%1$s被%2$s炸死了 death.attack.explosion.player=%1$s %2$s
death.attack.explosion.item=%1$s被%2$s使用%3$s炸死了 death.attack.explosion.item=%1$s %2$s 使 %3$s
death.attack.badRespawnPoint.message=%1$s被[] death.attack.badRespawnPoint.message= %1$s []
death.attack.fall=%1$s落地过猛 death.attack.fall=%1$s
death.attack.fall.player=%1$s在试图逃离%2$s时落地过猛 death.attack.fall.player=%1$s %2$s
death.attack.fall.item=%1$s在试图逃离持有%3$s的%2$s时落地过猛 death.attack.fall.item=%1$s %3$s %2$s
death.attack.fallingBlock=%1$s被坠落的方块压扁了 death.attack.fallingBlock=%1$s
death.attack.fallingBlock.player=%1$sz在与%2$s战斗时被坠落的方块压扁了 death.attack.fallingBlock.player=%1$sz %2$s
death.attack.fallingBlock.item=%1$s在与持有%3$s的%2$s战斗时被坠落的方块压扁了 death.attack.fallingBlock.item=%1$s %3$s %2$s
death.attack.fireball=%1$s被%2$s用火球烧死了 death.attack.fireball=%1$s被 %2$s
death.attack.fireball.item=%1$s被%2$s用%3$s发射的火球烧死了 death.attack.fireball.item=%1$s被 %2$s %3$s
death.attack.fireworks=%1$s随着一声巨响消失了 death.attack.fireworks=%1$s
death.attack.fireworks.player=%1$s在与%2$s战斗时随着一声巨响消失了 death.attack.fireworks.player=%1$s %2$s
death.attack.fireworks.item=%1$s随着%2$s用%3$s发射的烟花发出的巨响消失了 death.attack.fireworks.item=%1$s %2$s %3$s
death.attack.flyIntoWall=%1$s感受到了动能 death.attack.flyIntoWall=%1$s
death.attack.flyIntoWall.player=%1$s在试图逃离%2$s时感受到了动能 death.attack.flyIntoWall.player=%1$s %2$s
death.attack.flyIntoWall.item=%1$s在试图逃离持有%3$s的%2$s时感受到了动能 death.attack.flyIntoWall.item=%1$s %3$s %2$s
death.attack.generic=%1$s死了 death.attack.generic=%1$s
death.attack.generic.player=%1$s死于%2$s death.attack.generic.player=%1$s %2$s
death.attack.indirectMagic=%1$s被%2$s使用的魔法杀死了 death.attack.indirectMagic=%1$s %2$s 使
death.attack.indirectMagic.item=%1$s被%2$s用%3$s杀死了 death.attack.indirectMagic.item=%1$s %2$s %3$s
death.attack.inFire=%1$s浴火焚身 death.attack.inFire=%1$s
death.attack.inFire.player=%1$s在与%2$s战斗时不慎走入了火中 death.attack.inFire.player=%1$s %2$s
death.attack.inFire.item=%1$s在与持有%3$s的%2$s战斗时不慎走入了火中 death.attack.inFire.item=%1$s %3$s %2$s
death.attack.inWall=%1$s在墙里窒息而亡 death.attack.inWall=%1$s
death.attack.inWall.player=%1$s在与%2$s战斗时在墙里窒息而亡 death.attack.inWall.player=%1$s %2$s
death.attack.inWall.item=%1$s在与持有%3$s的%2$s战斗时在墙里窒息而亡 death.attack.inWall.item=%1$s %3$s %2$s
death.attack.lava=%1$s试图在熔岩里游泳 death.attack.lava=%1$s
death.attack.lava.player=%1$s在试图逃离%2$s时试图在熔岩里游泳 death.attack.lava.player=%1$s %2$s
death.attack.lava.item=%1$s在试图逃离持有%3$s的%2$s时试图在熔岩里游泳 death.attack.lava.item=%1$s %3$s %2$s
death.attack.lightningBolt=%1$s被闪电击中 death.attack.lightningBolt=%1$s
death.attack.lightningBolt.player=%1$s在与%2$s战斗时被闪电击中 death.attack.lightningBolt.player=%1$s %2$s
death.attack.lightningBolt.item=%1$s在与持有%3$s的%2$s战斗时被闪电击中 death.attack.lightningBolt.item=%1$s %3$s %2$s
death.attack.magic=%1$s被魔法杀死了 death.attack.magic=%1$s
death.attack.hotFloor=%1$s发现地板是熔岩做的 death.attack.hotFloor=%1$s
death.attack.hotFloor.player=%1$s因%2$s而步入危险之地 death.attack.hotFloor.player=%1$s %2$s
death.attack.hotFloor.item=%1$s因持有%3$s的%2$s而步入危险之地 death.attack.hotFloor.item=%1$s %3$s %2$s
death.attack.mob=%1$s被%2$s杀死了 death.attack.mob=%1$s %2$s
death.attack.mob.item=%1$s被%2$s用%3$s杀死了 death.attack.mob.item=%1$s %2$s %3$s
death.attack.sting=%1$s被%2$s蛰死了 death.attack.sting=%1$s %2$s
death.attack.sting.item=%1$s被%2$s用%3$s蛰死了 death.attack.sting.item=%1$s %2$s %3$s
death.attack.onFire=%1$s被烧死了 death.attack.onFire=%1$s
death.attack.onFire.player=%1$s在与%2$s战斗时被烤的酥脆 death.attack.onFire.player=%1$s %2$s
death.attack.onFire.item=%1$s在与持有%3$s的%2$s战斗时被烤的酥脆 death.attack.onFire.item=%1$s %3$s %2$s
death.attack.outOfWorld=%1$s掉出了这个世界 death.attack.outOfWorld=%1$s
death.attack.outOfWorld.player=%1$s与%2$s不共戴天 death.attack.outOfWorld.player=%1$s %2$s
death.attack.outOfWorld.item=%1$s与持有%3$s的%2$s不共戴天 death.attack.outOfWorld.item=%1$s %3$s %2$s
death.attack.player=%1$s被%2$s杀死了 death.attack.player=%1$s %2$s
death.attack.player.item=%1$s被%2$s用%3$s杀死了 death.attack.player.item=%1$s %2$s %3$s
death.attack.spit=%1$s被%2$s的口水淹死了 death.attack.spit=%1$s %2$s
death.attack.starve=%1$s饿死了 death.attack.starve=%1$s 饿
death.attack.starve.player=%1$s在与%2$s战斗时饿死了 death.attack.starve.player=%1$s %2$s 饿
death.attack.starve.item=%1$s在与持有%3$s的%2$s战斗时饿死了 death.attack.starve.item=%1$s %3$s %2$s 饿
death.attack.sweetBerry=%1$s被甜浆果丛刺死了 death.attack.sweetBerry=%1$s
death.attack.sweetBerry.player=%1$s在试图逃离%2$s时被甜浆果丛刺死了 death.attack.sweetBerry.player=%1$s %2$s
death.attack.sweetBerry.item=%1$s在试图逃离持有%3$s的%2$s时被甜浆果丛刺死了 death.attack.sweetBerry.item=%1$s %3$s %2$s
death.attack.thorns=%1$s在试图伤害%2$s时被杀 death.attack.thorns=%1$s %2$s
death.attack.thorns.item=%1$s在试图伤害%2$s时被%3$s杀死 death.attack.thorns.item=%1$s %2$s %3$s
death.attack.thrown=%1$s被%2$s给砸死了 death.attack.thrown=%1$s %2$s
death.attack.thrown.item=%1$s被%2$s用%3$s给砸死了 death.attack.thrown.item=%1$s %2$s %3$s
death.attack.trident=%1$s被%2$s刺穿了 death.attack.trident=%1$s %2$s 穿
death.attack.trident.item=%1$s被%2$s使用%3$s刺穿了 death.attack.trident.item=%1$s %2$s 使 %3$s 穿
death.attack.wither=%1$s凋零了 death.attack.wither=%1$s
death.attack.wither.player=%1$s在与%2$s战斗时凋零了 death.attack.wither.player=%1$s %2$s
death.attack.wither.item=%1$s在与持有%3$s的%2$s战斗时凋零了 death.attack.wither.item=%1$s %3$s %2$s
death.attack.freeze=%1$s被冻死了 death.attack.freeze=%1$s
death.attack.freeze.player=%1$s被%2$s冻死了 death.attack.freeze.player=%1$s %2$s
death.attack.freeze.item=%1$s被持有%3$s的%2$s冻死了 death.attack.freeze.item=%1$s %3$s %2$s
death.attack.sonicBoom=%1$s被一道音波尖啸抹除了 death.attack.sonicBoom=%1$s
death.attack.sonicBoom.player=%1$s在试图逃离%2$s时被一道音波尖啸抹除了 death.attack.sonicBoom.player=%1$s %2$s
death.attack.stalactite=%1$s被坠落的钟乳石刺穿了 death.attack.stalactite=%1$s 穿
death.attack.stalactite.player=%1$s在与%2$s战斗时被坠落的钟乳石刺穿了 death.attack.stalactite.player=%1$s %2$s 穿
death.attack.stalactite.item=%1$s在与持有%3$s的%2$s战斗时被坠落的钟乳石刺穿了 death.attack.stalactite.item=%1$s %3$s %2$s 穿
death.attack.stalagmite=%1$s被石笋刺穿了 death.attack.stalagmite=%1$s 穿
death.attack.stalagmite.player=%1$s在与%2$s战斗时被石笋刺穿了 death.attack.stalagmite.player=%1$s %2$s 穿
death.attack.stalagmite.item=%1$s在与持有%3$s的%2$s战斗时被石笋刺穿了 death.attack.stalagmite.item=%1$s %3$s %2$s 穿
death.attack.witherSkull=%1$s被%2$s发射的头颅射杀 death.attack.witherSkull=%1$s %2$s
death.attack.witherSkull.item=%1$s被%2$s用%3$s发射的头颅射杀 death.attack.witherSkull.item=%1$s %2$s %3$s
death.attack.even_more_magic=%1$s被不为人知的魔法杀死了 death.attack.even_more_magic=%1$s
death.attack.genericKill=%1$s被杀死了 death.attack.genericKill=%1$s
death.attack.genericKill.player=%1$s在与%2$s战斗时被杀死了 death.attack.genericKill.player=%1$s %2$s
death.attack.genericKill.item=%1$s在与持有%3$s的%2$s战斗时被杀死了 death.attack.genericKill.item=%1$s %3$s %2$s
death.attack.dragonBreath=%1$s被龙息烤熟了 death.attack.dragonBreath=%1$s
death.attack.dragonBreath.player=%1$s被%2$s的龙息烤熟了 death.attack.dragonBreath.player=%1$s %2$s
death.attack.dryout=%1$s因脱水而死 death.attack.dryout=%1$s
death.attack.dryout.player=%1$s在试图逃离%2$s时因脱水而死 death.attack.dryout.player=%1$s %2$s
death.attack.outsideBorder=%1$s脱离了这个世界 death.attack.outsideBorder=%1$s
death.attack.outsideBorder.player=%1$s在与%2$s战斗时脱离了这个世界 death.attack.outsideBorder.player=%1$s %2$s
death.fell.accident.generic=%1$s从高处摔了下来 death.fell.accident.generic=%1$s
death.fell.assist=%1$s因为%2$s注定要摔死 death.fell.assist=%1$s %2$s
death.fell.assist.item=%1$s因为%2$s使用了%3$s注定要摔死 death.fell.assist.item=%1$s %2$s 使 %3$s
death.fell.finish=%1$s摔伤得太重并被%2$s完结了生命 death.fell.finish=%1$s %2$s
death.fell.finish.item=%1$s摔伤得太重并被%2$s用%3$s完结了生命 death.fell.finish.item=%1$s %2$s %3$s
death.fell.killer=%1$s注定要摔死 death.fell.killer=%1$s
entity.area_effect_cloud.name= entity.area_effect_cloud.name=
entity.armor_stand.name= entity.armor_stand.name=
entity.arrow.name= entity.arrow.name=
@@ -500,6 +501,6 @@ 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= entity.creaking.name=
multiplayer.player.joined=%s加入了游戏 multiplayer.player.joined=%s
multiplayer.player.left=%s退出了游戏 multiplayer.player.left=%s 退
)"; )";
+2 -1
View File
@@ -10,13 +10,14 @@ end
add_requires("levilamina 26.10.5",{configs = {target_type = "server"}}) add_requires("levilamina 26.10.5",{configs = {target_type = "server"}})
add_requires("levibuildscript") add_requires("levibuildscript")
add_requires("gmlib 26.10.0") add_requires("gmlib 26.10.0")
add_requires("modapi 26.10.0")
target("DeathMessages") -- Change this to your mod name. target("DeathMessages") -- Change this to your mod name.
add_rules("@levibuildscript/linkrule") add_rules("@levibuildscript/linkrule")
add_rules("@levibuildscript/modpacker") add_rules("@levibuildscript/modpacker")
add_cxflags( "/EHa", "/utf-8", "/W4", "/w44265", "/w44289", "/w44296", "/w45263", "/w44738", "/w45204") add_cxflags( "/EHa", "/utf-8", "/W4", "/w44265", "/w44289", "/w44296", "/w45263", "/w44738", "/w45204")
add_defines("NOMINMAX", "UNICODE") add_defines("NOMINMAX", "UNICODE")
add_packages("levilamina","gmlib") add_packages("levilamina","gmlib","modapi")
set_exceptions("none") -- To avoid conflicts with /EHa. set_exceptions("none") -- To avoid conflicts with /EHa.
set_kind("shared") set_kind("shared")
set_languages("c++23") set_languages("c++23")