Skip to content

Commit

Permalink
test
Browse files Browse the repository at this point in the history
  • Loading branch information
KobeBryant114514 committed Sep 19, 2023
1 parent 886012b commit 1107725
Show file tree
Hide file tree
Showing 8 changed files with 349 additions and 11 deletions.
3 changes: 1 addition & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.21)

project(ZombieSceptor)
project(DeathMessages)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_BUILD_TYPE Release)
Expand Down Expand Up @@ -72,7 +72,6 @@ target_link_libraries(${CMAKE_PROJECT_NAME}
"${CMAKE_SOURCE_DIR}/SDK-cpp/lib/bedrock_server_api.lib"
"${CMAKE_SOURCE_DIR}/SDK-cpp/lib/bedrock_server_var.lib"
"${CMAKE_SOURCE_DIR}/SDK-cpp/lib/SymDBHelper.lib"
"${CMAKE_SOURCE_DIR}/lib/plhook.lib"
"${CMAKE_SOURCE_DIR}/lib/GMLib.lib"
)

Expand Down
18 changes: 18 additions & 0 deletions resource/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"format_version": 2,
"header": {
"description": "Resource Pack for Death Messages",
"name": "Death Messages Pack",
"uuid": "19ac83dc-2836-81ad-ea24-a9362d2ab10c",
"version": [5, 0, 0],
"min_engine_version": [1, 20, 10]
},
"modules": [
{
"description": "Resource Pack for Death Messages",
"type": "resources",
"uuid": "19ac83dc-2836-81ad-ea24-a9362d2ab10c",
"version": [5, 0, 0]
}
]
}
3 changes: 3 additions & 0 deletions resource/texts/languages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[
"zh_CN"
]
235 changes: 235 additions & 0 deletions resource/texts/zh_CN.lang
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
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.magma=%1$s发现地板是熔岩做的 #
death.attack.magma.player=%1$s因%2$s而步入危险之地 #
death.attack.magma.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.player=%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.suicide=%1$s被杀死了 #
death.attack.suicide.player=%1$s在与%2$s战斗时被杀死了 #
death.attack.suicide.item=%1$s在与持有%3$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=箭 #
entity.bat.name=蝙蝠 #
entity.bee.name=蜜蜂 #
entity.blaze.name=烈焰人 #
entity.boat.name=船 #
entity.cat.name=猫 #
entity.cave_spider.name=洞穴蜘蛛 #
entity.chicken.name=鸡 #
entity.cow.name=牛 #
entity.creeper.name=苦力怕 #
entity.dolphin.name=海豚 #
entity.goat.name=山羊 #
entity.panda.name=熊猫 #
entity.donkey.name=驴 #
entity.dragon_fireball.name=末影龙火球 #
entity.drowned.name=溺尸 #
entity.egg.name=鸡蛋 #
entity.elder_guardian.name=远古守卫者 #
entity.ender_crystal.name=末地水晶 #
entity.ender_dragon.name=末影龙 #
entity.enderman.name=末影人 #
entity.endermite.name=末影螨 #
entity.ender_pearl.name=末影珍珠 #
entity.evocation_illager.name=唤魔者 #
entity.evocation_fang.name=唤魔者尖牙 #
entity.eye_of_ender_signal.name=末影之眼 #
entity.falling_block.name=下落的方块 #
entity.fireball.name=火球 #
entity.fireworks_rocket.name=烟花火箭 #
entity.fishing_hook.name=鱼钩 #
entity.fish.clownfish.name=小丑鱼 #
entity.fox.name=狐狸 #
entity.cod.name=鳕鱼 #
entity.pufferfish.name=河豚 #
entity.salmon.name=鲑鱼 #
entity.tropicalfish.name=热带鱼 #
entity.axolotl.name=美西螈 #
entity.ghast.name=恶魂 #
entity.glow_squid.name=发光鱿鱼 #
entity.piglin_brute.name=猪灵蛮兵 #
entity.guardian.name=守卫者 #
entity.hoglin.name=疣猪兽 #
entity.horse.name=马 #
entity.husk.name=尸壳 #
entity.ravager.name=劫掠兽 #
entity.iron_golem.name=铁傀儡 #
entity.item.name=物品 #
entity.leash_knot.name=拴绳结 #
entity.lightning_bolt.name=闪电束 #
entity.lingering_potion.name=滞留药水 #
entity.llama.name=羊驼 #
entity.trader_llama.name=行商羊驼 #
entity.llama_spit.name=羊驼唾沫 #
entity.magma_cube.name=岩浆怪 #
entity.minecart.name=矿车 #
entity.chest_minecart.name=运输矿车 #
entity.command_block_minecart.name=命令方块矿车 #
entity.furnace_minecart.name=动力矿车 #
entity.hopper_minecart.name=漏斗矿车 #
entity.tnt_minecart.name=TNT矿车 #
entity.mule.name=骡 #
entity.mooshroom.name=哞菇 #
entity.moving_block.name=移动中的方块 #
entity.ocelot.name=豹猫 #
entity.painting.name=画 #
entity.parrot.name=鹦鹉 #
entity.phantom.name=幻翼 #
entity.pig.name=猪 #
entity.piglin.name=猪灵 #
entity.pillager.name=掠夺者 #
entity.polar_bear.name=北极熊 #
entity.rabbit.name=兔子 #
entity.sheep.name=绵羊 #
entity.shulker.name=潜影贝 #
entity.shulker_bullet.name=潜影弹 #
entity.silverfish.name=蠹虫 #
entity.skeleton.name=骷髅 #
entity.skeleton_horse.name=骷髅马 #
entity.stray.name=流浪者 #
entity.slime.name=史莱姆 #
entity.small_fireball.name=小火球 #
entity.sniffer.name=嗅探兽 #
entity.snowball.name=雪球 #
entity.snow_golem.name=雪傀儡 #
entity.spider.name=蜘蛛 #
entity.splash_potion.name=药水 #
entity.squid.name=鱿鱼 #
entity.strider.name=炽足兽 #
entity.tnt.name=TNT #
entity.thrown_trident.name=三叉戟 #
entity.tripod_camera.name=相机 #
entity.turtle.name=海龟 #
entity.unknown.name=未知 #
entity.vex.name=恼鬼 #
entity.villager.name=村民 #
entity.villager.armor=盔甲匠 #
entity.villager.butcher=屠夫 #
entity.villager.cartographer=制图师 #
entity.villager.cleric=牧师 #
entity.villager.farmer=农民 #
entity.villager.fisherman=渔夫 #
entity.villager.fletcher=制箭师 #
entity.villager.leather=皮匠 #
entity.villager.librarian=图书管理员 #
entity.villager.shepherd=牧羊人 #
entity.villager.tool=工具匠 #
entity.villager.weapon=武器匠 #
entity.villager.mason=石匠 #
entity.villager.unskilled=傻子 #
entity.villager_v2.name=村民 #
entity.vindicator.name=卫道士 #
entity.wandering_trader.name=流浪商人 #
entity.witch.name=女巫 #
entity.wither.name=凋灵 #
entity.wither_skeleton.name=凋灵骷髅 #
entity.wither_skull.name=凋灵之首 #
entity.wither_skull_dangerous.name=凋灵之首 #
entity.wolf.name=狼 #
entity.xp_orb.name=经验球 #
entity.xp_bottle.name=附魔之瓶 #
entity.zoglin.name=僵尸疣猪兽 #
entity.zombie.name=僵尸 #
entity.zombie_horse.name=僵尸马 #
entity.zombie_pigman.name=僵尸猪灵 #
entity.zombie_villager.name=僵尸村民 #
entity.zombie_villager_v2.name=僵尸村民 #
entity.sniffer.name=嗅探兽 #
entity.frog.name=青蛙 #
entity.tadpole.name=蝌蚪 #
entity.warden.name=监守者 #
entity.allay.name=悦灵 #
81 changes: 81 additions & 0 deletions src/DamageCause.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
#include <GMLib/GMLib_ModAPI.h>
#include <mc/ActorDamageSource.hpp>
#include <EventAPI.h>
#include <FMT/color.h>
#include <mc/Level.hpp>
#include <stdio.h>
#include <WinNls.h>
#include <mc/Player.hpp>

void regesterDamageCause() {
GMLib_Mod::addDamageCause(ActorDamageCause::Anvil, "anvil", "null");
GMLib_Mod::addDamageCauseWithMessage(ActorDamageCause::BlockExplosion, "explosion", "death.attack.explosion", "crystal");
GMLib_Mod::addDamageCauseWithMessage(ActorDamageCause::BlockExplosion, "badRespawnPoint", "death.attack.badRespawnPoint.message", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::EntityAttack, "player", "minecraft:player");
GMLib_Mod::addDamageCause(ActorDamageCause::EntityAttack, "sting", "minecraft:bee");
GMLib_Mod::addDamageCause(ActorDamageCause::EntityAttack, "mob");
//GMLib_Mod::addDamageCause(ActorDamageCause::EntityAttack, "generic", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::EntityExplosion, "witherSkull", "minecraft:wither_skull");
GMLib_Mod::addDamageCause(ActorDamageCause::EntityExplosion, "witherSkull", "minecraft:wither_skull_dangerous");
GMLib_Mod::addDamageCauseWithMessage(ActorDamageCause::EntityExplosion, "explosion", "death.attack.explosion.player");
GMLib_Mod::addDamageCauseWithMessage(ActorDamageCause::EntityExplosion, "explosion", "death.attack.explosion", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::Contact, "cactus", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::Contact, "sweetBerry", "null");
//GMLib_Mod::addDamageCause(ActorDamageCause::Contact, "generic");
GMLib_Mod::addDamageCause(ActorDamageCause::Drowning, "drown", "null");
GMLib_Mod::addDamageCauseWithMessage(ActorDamageCause::Fall, "fall", "death.fell.finish.item");
GMLib_Mod::addDamageCauseWithMessage(ActorDamageCause::Fall, "fall", "death.attack.fall.item", "low");
GMLib_Mod::addDamageCauseWithMessage(ActorDamageCause::Fall, "fall", "death.fell.assist.item", "escaping_high_weapon");
GMLib_Mod::addDamageCauseWithMessage(ActorDamageCause::Fall, "fall", "death.fell.assist", "escaping_high");
GMLib_Mod::addDamageCauseWithMessage(ActorDamageCause::Fall, "fall", "death.fell.killer", "high");
GMLib_Mod::addDamageCauseWithMessage(ActorDamageCause::Fall, "fall", "death.fell.accident.generic", "mid");
//GMLib_Mod::addDamageCause(ActorDamageCause::Fall, "generic", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::FallingBlock, "fallingBlock", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::Fire, "inFire", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::FireTick, "onFire", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::Fireworks, "fireworks", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::FlyIntoWall, "flyIntoWall", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::Freezing, "freeze", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::Lava, "lava", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::Lightning, "lightningBolt", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::Wither, "wither", "null");
GMLib_Mod::addDamageCauseWithMessage(ActorDamageCause::Magic, "magic", "death.attack.magic", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::Magic, "indirectMagic");
GMLib_Mod::addDamageCause(ActorDamageCause::Magma, "magma", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::Stalactite, "stalactite", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::Stalagmite, "stalagmite", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::Starve, "starve", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::Suffocation, "inWall", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::SonicBoom, "sonicBoom", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::SonicBoom, "sonicBoom");
GMLib_Mod::addDamageCauseWithMessage(ActorDamageCause::SonicBoom, "sonicBoom", "death.attack.sonicBoom", "minecraft:warden");
GMLib_Mod::addDamageCauseWithMessage(ActorDamageCause::Thorns, "thorns", "death.attack.thorns.item");
GMLib_Mod::addDamageCause(ActorDamageCause::Void, "outOfWorld", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::Suicide, "suicide", "null");
GMLib_Mod::addDamageCause(ActorDamageCause::Projectile, "fireball", "minecraft:small_fireball");
GMLib_Mod::addDamageCause(ActorDamageCause::Projectile, "trident", "minecraft:thrown_trident");
GMLib_Mod::addDamageCauseWithMessage(ActorDamageCause::Projectile, "spit", "death.attack.spit", "minecraft:llama_spit");
GMLib_Mod::addDamageCauseWithMessage(ActorDamageCause::Projectile, "bullet", "death.attack.bullet", "minecraft:shulker_bullet");
GMLib_Mod::addDamageCause(ActorDamageCause::Projectile, "arrow", "minecraft:arrow");
GMLib_Mod::addDamageCause(ActorDamageCause::Projectile, "thrown");
//GMLib_Mod::addDamageCause(ActorDamageCause::Projectile, "generic", "null");
}

void buildResourcePack() {
//GMLib_Mod::addResourcePack();
}

void LoadPlugin() {
GMLib_Mod::setEnableDeathLog(true);
GMLib_Mod::setFixWeaponName();
buildResourcePack();
regesterDamageCause();
Event::PlayerJoinEvent::subscribe([](const Event::PlayerJoinEvent& ev) {
Logger("Server").info("{}",fmt::format(fg(fmt::color::yellow),ev.mPlayer->getName() + "加入了游戏"));
return true;
});
Event::PlayerLeftEvent::subscribe([](const Event::PlayerLeftEvent& ev) {
Logger("Server").info("{}",fmt::format(fg(fmt::color::yellow),ev.mPlayer->getName() + "退出了游戏"));
return true;
});
}
5 changes: 5 additions & 0 deletions src/Main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,9 @@
#include <mc/ActorDamageSource.hpp>

extern Logger logger;
extern void LoadPlugin();

void PluginInit() {
Logger(PLUGIN_NAME).info("当前版本 {}", PLUGIN_FILE_VERSION_STRING);
Logger(PLUGIN_NAME).info("插件作者 Tsubasa6848");
}
2 changes: 0 additions & 2 deletions src/dllmain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
#include "version.h"

void PluginInit();
bool CanLoad = false;

Logger logger(PLUGIN_NAME);

Expand All @@ -14,7 +13,6 @@ void CheckProtocolVersion() {
logger.error("This may result in crash. Please switch to the version matching the BDS version!");
}
else {
CanLoad = true;
PluginInit();
}
}
Expand Down
Loading

0 comments on commit 1107725

Please sign in to comment.