Skip to content

Commit 85059f3

Browse files
[1.4.1]修复了因为原版死亡消息翻译键某些情况下存在_分隔符导致无法正确识别的问题,补充了一些缺少的死亡消息
1 parent c16b6ce commit 85059f3

File tree

9 files changed

+157
-349
lines changed

9 files changed

+157
-349
lines changed

README.md

Lines changed: 14 additions & 217 deletions
Original file line numberDiff line numberDiff line change
@@ -3,241 +3,38 @@
33
<h6>自定义玩家死亡消息</h6>
44
</div>
55

6-
## 效果说明
6+
## 插件简介
77

8-
服主自定义玩家的死亡消息,支持颜色代码
8+
Paper服务端自定义玩家死亡消息插件, 支持颜色代码, 可跨服.
99

1010
## 效果展示
1111

1212
![a.png](a.png)
1313

1414
## 使用方法
1515

16-
在配置文件中修改对应死亡类型的消息即可,`%dead_player%`代表死者,如果有击杀者则`%killer%`代表击杀者,如果击杀者使用物品击败则`%kill_item%`代表该物品。
16+
### 安装
17+
18+
环境: 1.17以上版本Paper及其fork, Folia可用
19+
20+
方式: 放入plugins文件夹, 重启服务器
21+
22+
### 修改死亡消息
23+
24+
在配置文件中修改对应死亡类型的消息后重载即可, `%dead_player%`代表死者, 如果有击杀者则`%killer%`代表击杀者, 如果击杀者使用物品击败则`%kill_item%`代表该物品。
1725

1826
### 跨服
1927

2028
在需要跨服的服务器安装本插件,并打开`config.yml`中的`proxy`即可
2129

2230
### 指令
2331

24-
`/deathmessagereload`简写`/dmrl`作用是重新加载配置文件
32+
`/deathmessagereload`简写`/dmrl`, 作用是重新加载配置文件
2533

2634
权限节点`deathmessage.command.reload`
2735

28-
`/deathmessagefilter`简写`/dmf`作用是开启/关闭死亡消息屏蔽参数`on/off`
36+
`/deathmessagefilter`简写`/dmf`, 作用是开启/关闭死亡消息屏蔽, 参数`on/off`
2937

3038
无权限节点
3139

32-
### 配置文件
33-
34-
```yaml
35-
player_name_format: "%player_displayname%"
36-
#死亡消息展示的地方,支持chat(聊天栏)和action_bar(物品栏上方)和all(同时chat和action_bar),默认为chat
37-
death_message_type: chat
38-
proxy: false
39-
death_message:
40-
death_attack_anvil:
41-
- "%dead_player%被铁砧砸中了"
42-
death_attack_anvil_player:
43-
- "%dead_player%在与%killer%战斗时被坠落的铁砧压扁了"
44-
death_attack_arrow:
45-
- "%dead_player%被%killer%射杀"
46-
death_attack_arrow_item:
47-
- "%dead_player%被%killer%用%kill_item%射杀"
48-
death_attack_badRespawnPoint_message:
49-
- "%dead_player%被%killer%杀死了"
50-
bad_respawn_point:
51-
- "[刻意的游戏设计]"
52-
death_attack_cactus:
53-
- "%dead_player%被戳死了"
54-
death_attack_cactus_player:
55-
- "%dead_player%在试图逃离%killer%时撞上了仙人掌"
56-
death_attack_cramming:
57-
- "%dead_player%因被过度挤压而死"
58-
death_attack_cramming_player:
59-
- "%dead_player%被%killer%挤扁了"
60-
death_attack_dragonBreath:
61-
- "%dead_player%被龙息烤熟了"
62-
death_attack_dragonBreath_player:
63-
- "%dead_player%被%killer%的龙息烤熟了"
64-
death_attack_drown:
65-
- "%dead_player%淹死了"
66-
death_attack_drown_player:
67-
- "%dead_player%在试图逃离%killer%时淹死了"
68-
death_attack_dryout:
69-
- "%dead_player%因脱水而死"
70-
death_attack_dryout_player:
71-
- "%dead_player%在试图逃离%killer%时因脱水而死"
72-
death_attack_even_more_magic:
73-
- "%dead_player%被不为人知的魔法杀死了"
74-
death_attack_explosion:
75-
- "%dead_player%爆炸了"
76-
death_attack_explosion_player:
77-
- "%dead_player%被%killer%炸死了"
78-
death_attack_explosion_player_item:
79-
- "%dead_player%被%killer%用%kill_item%炸死了"
80-
death_attack_fall:
81-
- "%dead_player%落地过猛"
82-
death_attack_fall_player:
83-
- "%dead_player%在试图逃离%killer%时落地过猛"
84-
death_attack_fallingBlock:
85-
- "%dead_player%被下落的方块压扁了"
86-
death_attack_fallingBlock_player:
87-
- "%dead_player%在与%killer%战斗时被下落的方块压扁了"
88-
death_attack_fallingStalactite:
89-
- "%dead_player%被坠落的钟乳石刺穿了"
90-
death_attack_fallingStalactite_player:
91-
- "%dead_player%在与%killer%战斗时被坠落的钟乳石刺穿了"
92-
death_attack_fireball:
93-
- "%dead_player%被%killer%用火球烧死了"
94-
death_attack_fireball_item:
95-
- "%dead_player%被%killer%用%kill_item%发射的火球烧死了"
96-
death_attack_fireworks:
97-
- "%dead_player%随着一声巨响消失了"
98-
death_attack_fireworks_item:
99-
- "%dead_player%随着%killer%用%kill_item%发射的烟花发出的巨响消失了"
100-
death_attack_fireworks_player:
101-
- "%dead_player%在与%killer%战斗时随着一声巨响中消失了"
102-
death_attack_flyIntoWall:
103-
- "%dead_player%感受到了动能"
104-
death_attack_flyIntoWall_player:
105-
- "%dead_player%在试图逃离%killer%时感受到了动能"
106-
death_attack_freeze:
107-
- "%dead_player%被冻死了"
108-
death_attack_freeze_player:
109-
- "%dead_player%被%killer%冻死了"
110-
death_attack_generic:
111-
- "%dead_player%死了"
112-
death_attack_generic_player:
113-
- "%dead_player%死于%killer%"
114-
death_attack_genericKill:
115-
- "%dead_player%被杀死了"
116-
death_attack_genericKill_player:
117-
- "%dead_player%在与%killer%战斗时被杀死了"
118-
death_attack_hotFloor:
119-
- "%dead_player%发现了地板是熔岩做的"
120-
death_attack_hotFloor_player:
121-
- "%dead_player%因%killer%而步入危险之地"
122-
death_attack_inFire:
123-
- "%dead_player%浴火焚身"
124-
death_attack_inFire_player:
125-
- "%dead_player%在与%killer%战斗时踏入了火中"
126-
death_attack_inWall:
127-
- "%dead_player%在墙里窒息而亡"
128-
death_attack_inWall_player:
129-
- "%dead_player%在与%killer%战斗时在墙里窒息而亡"
130-
death_attack_indirectMagic:
131-
- "%dead_player%被%killer%使用的魔法杀死了"
132-
death_attack_indirectMagic_item:
133-
- "%dead_player%被%killer%用%kill_item%杀死了"
134-
death_attack_lava:
135-
- "%dead_player%试图在熔岩里游泳"
136-
death_attack_lava_player:
137-
- "%dead_player%在逃离%killer%时试图在熔岩里游泳"
138-
death_attack_lightningBolt:
139-
- "%dead_player%被闪电击中"
140-
death_attack_lightningBolt_player:
141-
- "%dead_player%在与%killer%战斗时被闪电击中"
142-
death_attack_magic:
143-
- "%dead_player%被魔法杀死了"
144-
death_attack_magic_player:
145-
- "%dead_player%在试图逃离%killer%时被魔法杀死了"
146-
death_attack_message_too_long:
147-
- "死亡文本过长,原文:%s"
148-
death_attack_mob:
149-
- "%dead_player%被%killer%杀死了"
150-
death_attack_mob_item:
151-
- "%dead_player%被%killer%用%kill_item%杀死了"
152-
death_attack_onFire:
153-
- "%dead_player%被烧死了"
154-
death_attack_onFire_player:
155-
- "%dead_player%在与%killer%战斗时被烤得酥脆"
156-
death_attack_onFire_item:
157-
- "%dead_player%在与持有%kill_item%的%killer%战斗时被烤得酥脆"
158-
death_attack_outOfWorld:
159-
- "%dead_player%掉出了这个世界"
160-
death_attack_outOfWorld_player:
161-
- "%dead_player%与%killer%不共戴天"
162-
death_attack_outsideBorder:
163-
- "%dead_player%脱离了这个世界"
164-
death_attack_outsideBorder_player:
165-
- "%dead_player%在与%killer%战斗时脱离了这个世界"
166-
death_attack_player:
167-
- "%dead_player%被%killer%杀死了"
168-
death_attack_player_item:
169-
- "%dead_player%被%killer%用%kill_item%杀死了"
170-
death_attack_sonic_boom:
171-
- "%dead_player%被一道音波尖啸抹除了"
172-
death_attack_sonic_boom_item:
173-
- "%dead_player%在试图逃离持有%killer%的%kill_item%时被一道音波尖啸抹除了"
174-
death_attack_sonic_boom_player:
175-
- "%dead_player%在试图逃离%killer%时被一道音波尖啸抹除了"
176-
death_attack_stalagmite:
177-
- "%dead_player%被石笋刺穿了"
178-
death_attack_stalagmite_player:
179-
- "%dead_player%在与%killer%战斗时被石笋刺穿了"
180-
death_attack_starve:
181-
- "%dead_player%饿死了"
182-
death_attack_starve_player:
183-
- "%dead_player%在与%killer%战斗时饿死了"
184-
death_attack_sting:
185-
- "%dead_player%被蛰死了"
186-
death_attack_sting_item:
187-
- "%dead_player%被%killer%使用%kill_item%蛰死了"
188-
death_attack_sting_player:
189-
- "%dead_player%被%killer%蛰死了"
190-
death_attack_sweetBerryBush:
191-
- "%dead_player%被甜浆果丛刺死了"
192-
death_attack_sweetBerryBush_player:
193-
- "%dead_player%在试图逃离%killer%时被甜浆果丛刺死了"
194-
death_attack_thorns:
195-
- "%dead_player%在试图伤害%killer%时被杀"
196-
death_attack_thorns_item:
197-
- "%dead_player%在试图伤害%killer%时被%kill_item%杀死"
198-
death_attack_thrown:
199-
- "%dead_player%被%killer%给砸死了"
200-
death_attack_thrown_item:
201-
- "%dead_player%被%killer%用%kill_item%给砸死了"
202-
death_attack_trident:
203-
- "%dead_player%被%killer%刺穿了"
204-
death_attack_trident_item:
205-
- "%dead_player%被%killer%用%kill_item%刺穿了"
206-
death_attack_wither:
207-
- "%dead_player%凋零了"
208-
death_attack_wither_player:
209-
- "%dead_player%在与%killer%战斗时凋零了"
210-
death_attack_witherSkull:
211-
- "%dead_player%被%killer%发射的头颅射杀"
212-
death_attack_witherSkull_item:
213-
- "%dead_player%被%killer%使用%kill_item%发射的头颅射杀"
214-
death_fell_accident_generic:
215-
- "%dead_player%从高处摔了下来"
216-
death_fell_accident_ladder:
217-
- "%dead_player%从梯子上摔了下来"
218-
death_fell_accident_other_climbable:
219-
- "%dead_player%在攀爬时摔了下来"
220-
death_fell_accident_scaffolding:
221-
- "%dead_player%从脚手架上摔了下来"
222-
death_fell_accident_twisting_vines:
223-
- "%dead_player%从缠怨藤上摔了下来"
224-
death_fell_accident_vines:
225-
- "%dead_player%从藤蔓上摔了下来"
226-
death_fell_accident_weeping_vines:
227-
- "%dead_player%从垂泪藤上摔了下来"
228-
death_fell_assist:
229-
- "%dead_player%因为%killer%注定要摔死"
230-
death_fell_assist_item:
231-
- "%dead_player%因为%killer%使用了%kill_item%注定要摔死"
232-
death_fell_finish:
233-
- "%dead_player%摔伤得太重并被%killer%完结了生命"
234-
death_fell_finish_item:
235-
- "%dead_player%摔伤得太重并被%killer%用%kill_item%完结了生命"
236-
death_fell_killer:
237-
- "%dead_player%注定要摔死"
238-
plugin_message:
239-
command_reload: "&a插件重载完毕"
240-
only_player: "&c只有玩家才能使用此命令"
241-
filter_on: "&a已开启死亡消息屏蔽"
242-
filter_off: "&a已关闭死亡消息屏蔽"
243-
```
40+

build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ plugins {
88
}
99

1010
group = "pers.yufiria"
11-
version = "1.4.0"
11+
version = "1.4.1"
1212

1313
repositories {
1414
mavenLocal()
@@ -32,7 +32,7 @@ dependencies {
3232
compileOnly("me.clip:placeholderapi:2.11.6")
3333
compileOnly("io.lumine:Mythic-Dist:5.3.5")
3434
compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT")
35-
implementation("com.crypticlib:bukkit:1.1.5")
35+
implementation("com.crypticlib:bukkit:1.10.7")
3636
implementation(kotlin("stdlib-jdk8"))
3737
}
3838

src/main/kotlin/pers/yufiria/deathmsg/DeathMessage.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,8 @@
11
package pers.yufiria.deathmsg
22

3-
import pers.yufiria.deathmsg.config.DeathMessages
43
import crypticlib.BukkitPlugin
54
import crypticlib.chat.BukkitMsgSender
65
import org.bukkit.Bukkit
7-
import org.bukkit.NamespacedKey
8-
import org.bukkit.entity.Player
9-
import org.bukkit.persistence.PersistentDataType
106

117
class DeathMessage: BukkitPlugin() {
128

src/main/kotlin/pers/yufiria/deathmsg/commands/DeathMessageReloadCommand.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,13 @@ import pers.yufiria.deathmsg.DEATH_MESSAGE
1111
import pers.yufiria.deathmsg.config.Configs
1212

1313
@Command
14-
object DeathMessageReloadCommand : BukkitCommand(CommandInfo("deathmessagereload", PermInfo("deathmessage.command.reload"), mutableListOf("dmrl"))) {
14+
object DeathMessageReloadCommand : BukkitCommand(
15+
CommandInfo(
16+
"deathmessagereload",
17+
PermInfo("deathmessage.command.reload"),
18+
mutableListOf("dmrl")
19+
)
20+
) {
1521

1622
override fun execute(sender: CommandSender, args: MutableList<String>) {
1723
if (args.isNotEmpty()) {

src/main/kotlin/pers/yufiria/deathmsg/commands/FilterDeathMessageCmd.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@ import pers.yufiria.deathmsg.config.Configs
1111
import pers.yufiria.deathmsg.util.PlayerUtil
1212

1313
@Command
14-
object FilterDeathMessageCmd : BukkitCommand(CommandInfo("deathmessagefilter", PermInfo("deathmessage.command.filter"), mutableListOf("dmf"))) {
14+
object FilterDeathMessageCmd : BukkitCommand(
15+
CommandInfo(
16+
"deathmessagefilter",
17+
PermInfo("deathmessage.command.filter"), mutableListOf("dmf")
18+
)
19+
) {
1520

1621
override fun execute(sender: CommandSender, args: MutableList<String>) {
1722
if (sender !is Player) {

src/main/kotlin/pers/yufiria/deathmsg/config/DeathMessages.kt

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,25 @@
11
package pers.yufiria.deathmsg.config
22

3-
import crypticlib.lifecycle.BukkitEnabler
4-
import crypticlib.lifecycle.BukkitReloader
5-
import crypticlib.lifecycle.annotation.OnEnable
6-
import crypticlib.lifecycle.annotation.OnReload
3+
import crypticlib.lifecycle.*
74
import crypticlib.util.YamlConfigHelper
85
import org.bukkit.entity.Player
96
import org.bukkit.plugin.Plugin
107
import java.util.*
118
import java.util.concurrent.ConcurrentHashMap
129

13-
@OnEnable
14-
@OnReload
15-
object DeathMessages: BukkitReloader, BukkitEnabler {
10+
@AutoTask(
11+
rules = [
12+
TaskRule(lifeCycle = LifeCycle.ENABLE),
13+
TaskRule(lifeCycle = LifeCycle.RELOAD)
14+
]
15+
)
16+
object DeathMessages: BukkitLifeCycleTask {
1617

1718
private val deathMsgMap: MutableMap<String, List<*>> = ConcurrentHashMap()
1819
private var random: Random = Random()
1920

2021
fun addDeathMessage(deathCause: String, deathMessages: MutableList<String>) {
21-
val saveKey: String = deathCause.replace(".", "_")
22+
val saveKey: String = deathCause.replace(".", "-")
2223
deathMsgMap[deathCause] = deathMessages
2324
Configs.deathMessages.value().set(saveKey, deathMessages)
2425
Configs.deathMessages.configContainer().configWrapper().saveConfig()
@@ -49,20 +50,16 @@ object DeathMessages: BukkitReloader, BukkitEnabler {
4950
return null
5051
}
5152

52-
override fun reload(plugin: Plugin) {
53+
override fun run(plugin: Plugin?, lifeCycle: LifeCycle?) {
5354
deathMsgMap.clear()
5455
val deathMessagesConfig = Configs.deathMessages.value()
5556
for (key in deathMessagesConfig.getKeys(false)) {
56-
deathMsgMap[key.replace("_", ".")] = YamlConfigHelper.configList2List(
57+
deathMsgMap[key.replace("-", ".")] = YamlConfigHelper.configList2List(
5758
deathMessagesConfig.getList(
5859
key, ArrayList<Any>()
5960
)
6061
)
6162
}
6263
}
6364

64-
override fun enable(plugin: Plugin) {
65-
reload(plugin)
66-
}
67-
6865
}

0 commit comments

Comments
 (0)