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": [
{
"name": "GMLIB"
},
{
"name": "ModAPI"
}
]
}
+27 -2
View File
@@ -12,7 +12,8 @@
#include "mc/world/actor/ActorDamageByChildActorSource.h"
#include "ll/api/service/Bedrock.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"
phmap::flat_hash_map<int64, float> mFallHeightMap;
@@ -176,7 +177,7 @@ DeathMessageResult makeDeathMessage(
}
auto weaponname = killer->getCarriedItem().getCustomName();
if (!weaponname.empty()) {
weaponname = "[" + weaponname + "§r]";
weaponname = "[§b§o" + weaponname + "§r]";
res.second.push_back(weaponname);
} else {
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);
}
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(
DeathMessageHook1,
HookPriority::Lowest,
+4 -3
View File
@@ -45,8 +45,8 @@ bool Entry::load() {
}
bool Entry::enable() {
/* RegisterDamageDefinition();
ListenEvents();*/
RegisterDamageDefinition();
/* ListenEvents();*/
return true;
}
@@ -72,9 +72,10 @@ void Entry::loadI18n() {
}
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("zh_CN", zh_CN);
resource.loadAllLanguages();
}
} // 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> infoLogger;
/*extern std::string tr(std::string const& key, std::vector<std::string> const& data = {});
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"(
death.attack.anvil=%1$s被坠落的铁砧压扁了
death.attack.anvil.player=%1$sz在与%2$s战斗时被坠落的铁砧压扁了
death.attack.anvil.item=%1$s在与持有%3$s的%2$s战斗时被坠落的铁砧压扁了
death.attack.arrow=%1$s被%2$s射杀
death.attack.arrow.item=%1$s被%2$s用%3$s射杀
death.attack.bullet=%1$s被%2$s狙击了
death.attack.cactus=%1$s被戳死了
death.attack.cactus.player=%1$s在试图逃离%2$s时撞上了仙人掌
death.attack.cactus.item=%1$s在试图逃离持有%3$s的%2$s时撞上了仙人掌
death.attack.drown=%1$s淹死了
death.attack.drown.player=%1$s在试图逃离%2$s时淹死了
death.attack.drown.item=%1$s在试图逃离持有%3$s的%2$s时淹死了
death.attack.explosion=%1$s爆炸了
death.attack.explosion.player=%1$s被%2$s炸死了
death.attack.explosion.item=%1$s被%2$s使用%3$s炸死了
death.attack.badRespawnPoint.message=%1$s被[]
death.attack.fall=%1$s落地过猛
death.attack.fall.player=%1$s在试图逃离%2$s时落地过猛
death.attack.fall.item=%1$s在试图逃离持有%3$s的%2$s时落地过猛
death.attack.fallingBlock=%1$s被坠落的方块压扁了
death.attack.fallingBlock.player=%1$sz在与%2$s战斗时被坠落的方块压扁了
death.attack.fallingBlock.item=%1$s在与持有%3$s的%2$s战斗时被坠落的方块压扁了
death.attack.fireball=%1$s被%2$s用火球烧死了
death.attack.fireball.item=%1$s被%2$s用%3$s发射的火球烧死了
death.attack.fireworks=%1$s随着一声巨响消失了
death.attack.fireworks.player=%1$s在与%2$s战斗时随着一声巨响消失了
death.attack.fireworks.item=%1$s随着%2$s用%3$s发射的烟花发出的巨响消失了
death.attack.flyIntoWall=%1$s感受到了动能
death.attack.flyIntoWall.player=%1$s在试图逃离%2$s时感受到了动能
death.attack.flyIntoWall.item=%1$s在试图逃离持有%3$s的%2$s时感受到了动能
death.attack.generic=%1$s死了
death.attack.generic.player=%1$s死于%2$s
death.attack.indirectMagic=%1$s被%2$s使用的魔法杀死了
death.attack.indirectMagic.item=%1$s被%2$s用%3$s杀死了
death.attack.inFire=%1$s浴火焚身
death.attack.inFire.player=%1$s在与%2$s战斗时不慎走入了火中
death.attack.inFire.item=%1$s在与持有%3$s的%2$s战斗时不慎走入了火中
death.attack.inWall=%1$s在墙里窒息而亡
death.attack.inWall.player=%1$s在与%2$s战斗时在墙里窒息而亡
death.attack.inWall.item=%1$s在与持有%3$s的%2$s战斗时在墙里窒息而亡
death.attack.lava=%1$s试图在熔岩里游泳
death.attack.lava.player=%1$s在试图逃离%2$s时试图在熔岩里游泳
death.attack.lava.item=%1$s在试图逃离持有%3$s的%2$s时试图在熔岩里游泳
death.attack.lightningBolt=%1$s被闪电击中
death.attack.lightningBolt.player=%1$s在与%2$s战斗时被闪电击中
death.attack.lightningBolt.item=%1$s在与持有%3$s的%2$s战斗时被闪电击中
death.attack.magic=%1$s被魔法杀死了
death.attack.hotFloor=%1$s发现地板是熔岩做的
death.attack.hotFloor.player=%1$s因%2$s而步入危险之地
death.attack.hotFloor.item=%1$s因持有%3$s的%2$s而步入危险之地
death.attack.mob=%1$s被%2$s杀死了
death.attack.mob.item=%1$s被%2$s用%3$s杀死了
death.attack.sting=%1$s被%2$s蛰死了
death.attack.sting.item=%1$s被%2$s用%3$s蛰死了
death.attack.onFire=%1$s被烧死了
death.attack.onFire.player=%1$s在与%2$s战斗时被烤的酥脆
death.attack.onFire.item=%1$s在与持有%3$s的%2$s战斗时被烤的酥脆
death.attack.outOfWorld=%1$s掉出了这个世界
death.attack.outOfWorld.player=%1$s与%2$s不共戴天
death.attack.outOfWorld.item=%1$s与持有%3$s的%2$s不共戴天
death.attack.player=%1$s被%2$s杀死了
death.attack.player.item=%1$s被%2$s用%3$s杀死了
death.attack.spit=%1$s被%2$s的口水淹死了
death.attack.starve=%1$s饿死了
death.attack.starve.player=%1$s在与%2$s战斗时饿死了
death.attack.starve.item=%1$s在与持有%3$s的%2$s战斗时饿死了
death.attack.sweetBerry=%1$s被甜浆果丛刺死了
death.attack.sweetBerry.player=%1$s在试图逃离%2$s时被甜浆果丛刺死了
death.attack.sweetBerry.item=%1$s在试图逃离持有%3$s的%2$s时被甜浆果丛刺死了
death.attack.thorns=%1$s在试图伤害%2$s时被杀
death.attack.thorns.item=%1$s在试图伤害%2$s时被%3$s杀死
death.attack.thrown=%1$s被%2$s给砸死了
death.attack.thrown.item=%1$s被%2$s用%3$s给砸死了
death.attack.trident=%1$s被%2$s刺穿了
death.attack.trident.item=%1$s被%2$s使用%3$s刺穿了
death.attack.wither=%1$s凋零了
death.attack.wither.player=%1$s在与%2$s战斗时凋零了
death.attack.wither.item=%1$s在与持有%3$s的%2$s战斗时凋零了
death.attack.freeze=%1$s被冻死了
death.attack.freeze.player=%1$s被%2$s冻死了
death.attack.freeze.item=%1$s被持有%3$s的%2$s冻死了
death.attack.sonicBoom=%1$s被一道音波尖啸抹除了
death.attack.sonicBoom.player=%1$s在试图逃离%2$s时被一道音波尖啸抹除了
death.attack.stalactite=%1$s被坠落的钟乳石刺穿了
death.attack.stalactite.player=%1$s在与%2$s战斗时被坠落的钟乳石刺穿了
death.attack.stalactite.item=%1$s在与持有%3$s的%2$s战斗时被坠落的钟乳石刺穿了
death.attack.stalagmite=%1$s被石笋刺穿了
death.attack.stalagmite.player=%1$s在与%2$s战斗时被石笋刺穿了
death.attack.stalagmite.item=%1$s在与持有%3$s的%2$s战斗时被石笋刺穿了
death.attack.witherSkull=%1$s被%2$s发射的头颅射杀
death.attack.witherSkull.item=%1$s被%2$s用%3$s发射的头颅射杀
death.attack.even_more_magic=%1$s被不为人知的魔法杀死了
death.attack.genericKill=%1$s被杀死了
death.attack.genericKill.player=%1$s在与%2$s战斗时被杀死了
death.attack.genericKill.item=%1$s在与持有%3$s的%2$s战斗时被杀死了
death.attack.dragonBreath=%1$s被龙息烤熟了
death.attack.dragonBreath.player=%1$s被%2$s的龙息烤熟了
death.attack.dryout=%1$s因脱水而死
death.attack.dryout.player=%1$s在试图逃离%2$s时因脱水而死
death.attack.outsideBorder=%1$s脱离了这个世界
death.attack.outsideBorder.player=%1$s在与%2$s战斗时脱离了这个世界
death.fell.accident.generic=%1$s从高处摔了下来
death.fell.assist=%1$s因为%2$s注定要摔死
death.fell.assist.item=%1$s因为%2$s使用了%3$s注定要摔死
death.fell.finish=%1$s摔伤得太重并被%2$s完结了生命
death.fell.finish.item=%1$s摔伤得太重并被%2$s用%3$s完结了生命
death.fell.killer=%1$s注定要摔死
death.attack.anvil=%1$s
death.attack.anvil.player=%1$s %2$s
death.attack.anvil.item=%1$s %3$s %2$s
death.attack.arrow=%1$s被 %2$s
death.attack.arrow.item=%1$s %2$s %3$s
death.attack.bullet=%1$s被 %2$s
death.attack.cactus=%1$s
death.attack.cactus.player=%1$s %2$s
death.attack.cactus.item=%1$s %3$s %2$s
death.attack.drown=%1$s
death.attack.drown.player=%1$s %2$s
death.attack.drown.item=%1$s %3$s %2$s
death.attack.explosion=%1$s
death.attack.explosion.player=%1$s %2$s
death.attack.explosion.item=%1$s %2$s 使 %3$s
death.attack.badRespawnPoint.message= %1$s []
death.attack.fall=%1$s
death.attack.fall.player=%1$s %2$s
death.attack.fall.item=%1$s %3$s %2$s
death.attack.fallingBlock=%1$s
death.attack.fallingBlock.player=%1$sz %2$s
death.attack.fallingBlock.item=%1$s %3$s %2$s
death.attack.fireball=%1$s被 %2$s
death.attack.fireball.item=%1$s被 %2$s %3$s
death.attack.fireworks=%1$s
death.attack.fireworks.player=%1$s %2$s
death.attack.fireworks.item=%1$s %2$s %3$s
death.attack.flyIntoWall=%1$s
death.attack.flyIntoWall.player=%1$s %2$s
death.attack.flyIntoWall.item=%1$s %3$s %2$s
death.attack.generic=%1$s
death.attack.generic.player=%1$s %2$s
death.attack.indirectMagic=%1$s %2$s 使
death.attack.indirectMagic.item=%1$s %2$s %3$s
death.attack.inFire=%1$s
death.attack.inFire.player=%1$s %2$s
death.attack.inFire.item=%1$s %3$s %2$s
death.attack.inWall=%1$s
death.attack.inWall.player=%1$s %2$s
death.attack.inWall.item=%1$s %3$s %2$s
death.attack.lava=%1$s
death.attack.lava.player=%1$s %2$s
death.attack.lava.item=%1$s %3$s %2$s
death.attack.lightningBolt=%1$s
death.attack.lightningBolt.player=%1$s %2$s
death.attack.lightningBolt.item=%1$s %3$s %2$s
death.attack.magic=%1$s
death.attack.hotFloor=%1$s
death.attack.hotFloor.player=%1$s %2$s
death.attack.hotFloor.item=%1$s %3$s %2$s
death.attack.mob=%1$s %2$s
death.attack.mob.item=%1$s %2$s %3$s
death.attack.sting=%1$s %2$s
death.attack.sting.item=%1$s %2$s %3$s
death.attack.onFire=%1$s
death.attack.onFire.player=%1$s %2$s
death.attack.onFire.item=%1$s %3$s %2$s
death.attack.outOfWorld=%1$s
death.attack.outOfWorld.player=%1$s %2$s
death.attack.outOfWorld.item=%1$s %3$s %2$s
death.attack.player=%1$s %2$s
death.attack.player.item=%1$s %2$s %3$s
death.attack.spit=%1$s %2$s
death.attack.starve=%1$s 饿
death.attack.starve.player=%1$s %2$s 饿
death.attack.starve.item=%1$s %3$s %2$s 饿
death.attack.sweetBerry=%1$s
death.attack.sweetBerry.player=%1$s %2$s
death.attack.sweetBerry.item=%1$s %3$s %2$s
death.attack.thorns=%1$s %2$s
death.attack.thorns.item=%1$s %2$s %3$s
death.attack.thrown=%1$s %2$s
death.attack.thrown.item=%1$s %2$s %3$s
death.attack.trident=%1$s %2$s 穿
death.attack.trident.item=%1$s %2$s 使 %3$s 穿
death.attack.wither=%1$s
death.attack.wither.player=%1$s %2$s
death.attack.wither.item=%1$s %3$s %2$s
death.attack.freeze=%1$s
death.attack.freeze.player=%1$s %2$s
death.attack.freeze.item=%1$s %3$s %2$s
death.attack.sonicBoom=%1$s
death.attack.sonicBoom.player=%1$s %2$s
death.attack.stalactite=%1$s 穿
death.attack.stalactite.player=%1$s %2$s 穿
death.attack.stalactite.item=%1$s %3$s %2$s 穿
death.attack.stalagmite=%1$s 穿
death.attack.stalagmite.player=%1$s %2$s 穿
death.attack.stalagmite.item=%1$s %3$s %2$s 穿
death.attack.witherSkull=%1$s %2$s
death.attack.witherSkull.item=%1$s %2$s %3$s
death.attack.even_more_magic=%1$s
death.attack.genericKill=%1$s
death.attack.genericKill.player=%1$s %2$s
death.attack.genericKill.item=%1$s %3$s %2$s
death.attack.dragonBreath=%1$s
death.attack.dragonBreath.player=%1$s %2$s
death.attack.dryout=%1$s
death.attack.dryout.player=%1$s %2$s
death.attack.outsideBorder=%1$s
death.attack.outsideBorder.player=%1$s %2$s
death.fell.accident.generic=%1$s
death.fell.assist=%1$s %2$s
death.fell.assist.item=%1$s %2$s 使 %3$s
death.fell.finish=%1$s %2$s
death.fell.finish.item=%1$s %2$s %3$s
death.fell.killer=%1$s
entity.area_effect_cloud.name=
entity.armor_stand.name=
entity.arrow.name=
@@ -500,6 +501,6 @@ 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退出了游戏
multiplayer.player.joined=%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("levibuildscript")
add_requires("gmlib 26.10.0")
add_requires("modapi 26.10.0")
target("DeathMessages") -- Change this to your mod name.
add_rules("@levibuildscript/linkrule")
add_rules("@levibuildscript/modpacker")
add_cxflags( "/EHa", "/utf-8", "/W4", "/w44265", "/w44289", "/w44296", "/w45263", "/w44738", "/w45204")
add_defines("NOMINMAX", "UNICODE")
add_packages("levilamina","gmlib")
add_packages("levilamina","gmlib","modapi")
set_exceptions("none") -- To avoid conflicts with /EHa.
set_kind("shared")
set_languages("c++23")