We split the plugin into two versions, Leagcy version and Modern version, please choose correct version based on your server core version!
Some noteable changes:
- New | 1.21 ~ 1.21.4 Support
- New | Refactor plugin structure to split to Legacy and Modern version, for better cross version support
- New | Improved Folia compatibility
- New | SayanVanish plugin hook
- New | French & Spanish Translation
- New | Hex color support for mob name in Messages.yml
- New | Placeholder `%distance%`
- Fixed | Message & prefix display issue in message sent to Discord channel
- Fixed | Config loading, no more failed to load plugin caused by tons lines of repeat config comments issue
- Fixed | Some placeholers (e.g. %killer_type%, %entity%, %entity_display%, etc) can not work or can not get correct mob name from Messages.yml
- Fixed | Duplicated death message in BC / VC hook by don't send death message to self server
- Removed | Deprecated api `getTextComponent()`, will be removed in 1.4.21
- Removed | Un-used `Allow-Message-Color-Override` config option in Settings.yml
- Removed | Useless `deathmessages.command` permission
- ➡ See full changelogs on github
Note: please backup your DeathMessages config before updating to 1.4.16+, to prevent potential and unnecessary config lost.
- New | Added 1.20.5 ~ 1.21 Support
- Improved | Code cleanup, optimize
- ➡ See full changelogs on github
| See full changelogs on
github
| See full changelogs on
github
- New | Added messages for the new Warden mob
- Improved | Update to 1.19
- Improved | Updated dependencies
- Improved | Improved plugin logic
- Improved | Use generics instead of hard-coded values
- Improved | Relocated kotlin, should fix issues with other plugins
- Bug Fix | Fixed config loading
- Bug Fix | Added missing z-coordinate to messages
- Bug Fix | More NPE fixes from last update
- Improved | Move kotlin code to kotlin root
- Bug Fix | Fix NPE related to message replacement
- New | Updated to 1.18.2
- Improved | Removed modules causing build failures
Changes are committed to github first
Join the discord for support!
- Fixed error thrown still when mythic mobs hook is enabled. Also thrown when not installed
- Added an option to disable the mythicmob hook. Located in Settings.yml
- Fixed mythical mobs not working. Turns out, if you had a custom mob with the id that had vanilla mobs' names in it. The only reason it would work. Not something completely custom like 'n1'. This has been fixed
- Fixed %owner% placeholder in Tamed sections in EntityDeathMessages.yml
- Fixed weapon messages not showing in EntityDeathMessages
- Mythic Mobs Supported
- Fixed error is thrown when the damaging player(killer) hasn't had any damage dealt to them when killing a mob or player.
- Added PERMISSION_KILLER[] for killers that have a set permission, that message will be displayed
- To deal with mythical mobs. I added a section to both PlayerDeathMessages.yml and EntityDeathMessages.yml
at the bottom of PlayerDeathMessages.yml,
at the bottom of EntityDeathMessages.yml
- CombatLogX will be supported when v11 releases for it. It has API changes that better detect things on logout while fighting a player.
- Added Custom-Item-Material-Is-Weapon to settings.yml. You can define materials that are weapons. Like DIRT
- Removed the mandatory space in prefix. If you wanted the prefix to have a space, just add the extra space back in the messages.yml (Prefix
I know I know I know. These will be added soon
- combatlox
- mythicmobs
- %owner% placeholder in tamed mobs section.
- Fixed "pm is null" errors thrown in various events
- Fixed entity death messages throwing errors when config is set to
Code (YAML):
Entities
:
[
]
FYI
: This disables entity death messages
- Fixed the error thrown when entities are damaged by other entities. A lot of you had creeper errors (Which make sense)
- Fixed the error thrown when entities are damaged by blocks.
- %owner% placeholder not working in Tamed categories.
- CombatLogX
- Fixed PlayerDeath error thrown to console
- Possibly fixed the %owner% placeholder?
- Added /dm discordlog, will help me with people experiencing problems with discord support.
- Removed bungeecord config comments that say "NOT WORKING YET"
- Added bstats to track server-version usage
- Fixed error thrown on player deaths
- Cleaned up console load up messages
- Added bungee support. See Hooks.Bungee in settings.yml
- Added entity stuff to /dm edit
- Fixed GameRule error thrown on startup. Servers 1.12 or less.
- Fixed error thrown for entity deaths
- After many bangings of my desk, Keyboards broke, and swearing and yelling, WorldGuard is fully supported 6-7
D
- Completely restructured the plugin, on the code side. You won't notice anything
- Added both WG 6 and 7 support
- Added EntityDeathMessages. EntityDeathMessages.yml was completely redone. You can now add stuff like when people kill the enderdragon. Blow dogs up with respawn-anchors. etc..
- Fixed discord usernames being cut randomly.
The discord support system was revamped (Half the reason this took so long. Coded a whole new bot myself
)
- Fixed some 1.17 things not working properly
- Fixed the comment in the messages config explaining mob translations. The translations you set in messages.yml for Mobs reflect the %killer_type% placeholder. Not the %killer% placeholder.
- Back-end cleanup.
- I know about worldguard issues lower than version 7. It's hard to implement them both.
- Fixed 1.17 api issues
- Added Freeze to Natural-Cause
- If you want to add the new mobs from 1.17 to DeathMessages. Just add the new mob_type format in PlayerDeathMessages.yml in the Mobs: section
- Fixed the bracket issue with discord not removing them when you opt-out of prefix's in discord
- Some translations dont work. I know
Here's a decent update for y'all
- Added Basic-Mode to PlayerDeathMessages.yml to generalize all player death messages to one format (Lazy-mode)
- Added custom biome check. (If custom biome, %biome% placeholder will be "Unknown")(For now)
- Added %weapon% compatible placeholder to Natural-Cause.Projectile-Arrow
- Added a whitelisted worlds list to discord. If you wish to only have certain worlds broadcast to discord
- Started implementing bungee. Does not work yet even tho it's in the config.
- Attempted a possible memory leak fix
- Fixed error thrown in server versions lower than 1.11 spamming the console with NoSuchClassException with EvokerFangs
- If Disable-Default-Messages is enabled, I made it so it changes the game rule for all worlds instead of just canceling them in the PlayerDeathEvent
- Fixed Tameable broadcast throwing errors.
- Fixed configs not reloading properly on /dm reload
- Added a color fix that accepts all colors in the discord messages embed. (kuu#3050)
- Fixed $ in messages throwing errors
- Relocated discord messages to a lower priority. Meaning if you have an issue with discord messages. Server messages will still send. Before, the messages would not send on the server-side when there was an error with discord.
- Fixed falling block error from 1.13 changing block data code
- Fixed respawn anchors not sending messages on exploding with less than 4 charges.
- Please read
(Nothing personal)
I cannot stress enough that this is a free plugin and support is semi-limited. I work a lot of hours during the week, and I have a personal life. Please don't go into my DM's or discord demanding/screaming/swearing support like I stole your firstborn child. I am not politically correct and I will sadly put you in your place.
Thanks
- Removed the partner message from the plugin
#Spigot
- Reduced the Sparked Host partner message to one line in the startup message to comply with spigot rules 7.5.2
- Added /dm edit. Explained in the plugin page and in-game. You can not edit messages in-game.
- Started adding tab-completer for /dm. At the moment it only does /dm edit
- Added /dm backup. Explained in the plugin page and in-game. Added this because /dm edit enables players on your server with the correct permission to change death messages without your knowledge.
- Added a premier, elite, epic role, super secret in my discord called MONKAS. If you're on my discord
https://discord.gg/K9zVDwt. Goto my roles channel and react with the monkas emoji. (same emoji as my server icon)
- Added /dm restore. Explained in the plugin page and in-game. Restore backups from the backup code.
- Added a config manager in the code. You don't notice anything but lets me do some high-tier monkey things.
- Nothing that I could find/replicated from reported bugs in the last version
- I KNOW WORLDGUARD VERSIONS UNDER 7 DOES NOT WORK.
- I know that some of you have suggestions for /dm edit and /dm backup. So let me know on my discord
https://discord.gg/K9zVDwt
- /dm toggle not saving the last toggle
- UserData file not saving at all regardless the setting in settings.yml
- Fixed weapons being colorized in the message when you rename items in anvils.
- Added 'Saved-User-Data' option in Settings.yml to disable/enable saving userdata. (Biger servers requested this due to large file size)
- Recoded the config handler. Had a hard time with strings containing " inside strings. You won't see any changes, all backend
- Fixed format saving to the next word in messages.
OLD:
FIX:
- some other stuff that was extremely minor
- Update 1 2 3
never gonna see that again.
- Added %world_environment% to the placeholders list. (Used for bed/respawn anchors) returns a configurable string from Messages.yml (over-world, nether, the_end)
- Set the default deathmessage cooldown to 0 because people were reporting messages were only sending to the console.
- fixed bed kills/suicides in the end (Im out of the loop, never knew beds exploded in the nether kappa.
- fixed error being thrown when getting hurt by projectiles of dispensers.
- Cleaned my desk. Looks Gucci now
- Added a formattable message for console instead of just sending the message. You can add extra info to print to the console.
Example:
- Added cooldowns for death messages. See Settings.yml near the bottom
- Added Block translations in Messages.yml
- Fixed anvil squish death messages from not sending and throwing errors
- We are nearing the final release of the beta. Almost everything is added to this plugin besides inventories and a couple of other suggestions. So stop by the discord and suggest away!
https://discord.gg/K9zVDwt
- Added bed/respawn anchor natural deaths/kills. (Natural deaths were added automatically in the PlayerDeathMessages.yml, but if you want to use them in PVP. Simply add "Bed" or "Respawn-Anchor" to your "mobs.player.solo" section in the config. Like you would with any other death type.
- Added an option to remove prefixes from discord messages (Messages.yml)
- Added author/more footer options for discord messages (Messages.yml)
- Added regular text to discord messages (Explained in Messages.yml comments)
- Added an ExplosionManager to the API, but I don't suggest using it. So I won't add it to the homepage
- There were a handful of bugs that were reported related to versions. This update should take care of them.
- Added Author to discord messages so you can format death messages as DMP had like so:
- Added an alias command for /dm toggle (/dmtoggle, /dmt, /deathmessagestoggle)
- Added a version command (/dm version)
- Fixed disabled worlds. I accidentally removed it when I was working on private death messages.
- Added mob translations to messages.yml (Blocks and other things will come soon)
- Fixed player death messages not working from the last update
- Fixed 'Bound not positive' error
- Fixed projectile kills/projectile natural death messages from throwing errors and not sending
- Fixed discord messages getting send based on how many players are online. (10 players online = 10 messages getting sent to discord)
- McMMO fix for fireworks throwing errors from the strong descents
- Added private messages to Settings.yml
Code (YAML):
Private-Messages
:
# All messages will still be sent to the console log no matter the setting.
# Discord messages will be effected depending on if the below settings are changed.
# Example: Setting Player to true will not send the message to discord.
# The victim and the killer will only have the death message sent to them.
Player
: false
# The victim will only have the death message sent to them.
Mobs
: false
# The victim will only have the death message sent to them.
Natural
: false
# The killer will only have the message sent to them.
Tameable
: false
- Added a version checker for WorldGuard, if the version is lower than v7, the worldguard feature will automatically disable to avoid errors.
- Fixed the worldguard flags. Tested too (Obviously)
- I think I fixed the "Bound must be positive error". I got reports of it but can't replicate it.
- Fixed more issues related to citizens or any other NPC plugin
testing 123
- Fixed an error being thrown when you set certain messages to ""
Ignore everything below this messages, working on a discord bot that announces updates on my discord server:
Test
test
test
testing 123
- After many requests, I added support for DiscordSRV. Nothing changes. My plugin still handles the channel-id's in the settings.yml
Test
test
test
test
- Discord Support (
https://www.spigotmc.org/resources/discordbotapi.86518/) LOOK at the instructions on how to create a bot
- Added full 1.8 support
- Fixed 1.8 stuff
- Fixed placeholder for player_display in the configs
- Cleaned my room (Ok I lied doing that now)
- Cleaned my bathroom
- Plowed many driveways from the snow storm we just got
- Fixed the error thrown when interacting with NPC's from citizens.
- Custom region messages.
Use "REGION[regionName]" as you would with permission messages.
(If worldguard is enabled and the hook is enabled in my plugin)
- Fixed hex color codes for deathmessages prefix
(last update only fixed for /dm prefix commands)
- Fixed hex colors not working in messages.yml
- Fixed the error with scaffolding on 1.8 servers.
- Fixed NPC errors thrown when hitting
- worldguard version 6 and under not being supported (Throwing errors)
- Join the discord. Invite link is on the main page.
- Added worldguard support.
The plugin creates custom flags for regions. These flags are set to ALLOW by default
Flags:
broadcast-deathmessage-player
broadcast-deathmessage-mobs
broadcast-deathmessage-natural
broadcast-deathmessage-tameable
Use: /rg flag <regionName> <customFlag> allow/deny
The above flags determine death message from being broadcasted if the pvp/pve is taking place in the region.
- Fixed tamable messages displaying raw placeholders
- Fixed mob explosions like creepers not being displayed
- Fixed error being spammed when someone dies.
- As requested. Added custom-item-display-name-is-weapon. Regex support. If you add displaynames of items to this list in Settings.yml, items that have a matching display name or matching regex with the display name of the item, the death message will be counted as a weapon kill, and the item will be broadcasted with the %weapon% placeholder
- Added Ignore-Enchantments to Disable-Weapon-Kill-With-No-Custom-Name in Settings.yml
If the weapon has enchantments and you still want the death type to still be Weapon, set this to false.
- As requested. Added custom-item-display-name-is-weapon.
Regex support. If you add displaynames of items to this list in Settings.yml, items that have a matching display name or matching regex with the display name of the item, the death message will be counted as a weapon kill, and the item will be broadcasted with the %weapon% placeholder
- Made all commands besides /dm toggle able to run via console.
- Fixed projectile %weapon% placeholder appearing as %weapon% if you add color codes to it. (Technical: replaced equals with contains)
- Possibly fixed the biome placeholder issue. Worked for me.
Fixed the debug broadcast message when getting hurt by blocks.
The remastered plugin is here and I (Joshb_) have fully taken over.
NOTE: PLEASE READ THE UPDATED PLUGIN PAGE FOR ALL RELATED INFO.
Join the discord if you discover bugs or have any questions:
https://discord.gg/K9zVDwt
- Completely recoded from scratch
- Hex Color code support (#2a3d4%player% died)
- Gangs
- These are the key changes. There are many many changes in this remastered plugin. Check the main plugin page for changes. I updated it
- Removed all the addons and made some part of the main plugin. I will be eventually adding the rest when I finish working out bugs that may be reported in the future.
- Remove some features in this plugin that I deemed useless or won't be used by administrators. Please read the plugin page for more info in FAQ
- The biggest and only one was the weapon tooltip in the death messages. This has since been fixed.
Join the discord and assign yourself the DeathMessages Role in #roles
Additions
Bugfixes
Note:
Ownership to uphold the plugin updates have been left to me. Thanks
@CosmoConsole for trusting me with the plugin. It may take some time for an update to be released on this plugin as I have to recode a lot of things with it. Overall great plugin. I'll be open to suggestions on my discord! So pop in and suggest away!
Discord:
https://discord.gg/K9zVDwt
As I am soon to retire from Spigot plugin development, this plugin will be discontinued on
September 30, 2020, after which the plugin will remain available but will no longer receive updates. Read the full announcement
here.
Fixed a possible error when the biome of the location a player is in is not defined, as may happen in some rare cases or server versions.
Config changes:
The automatic config updater was planned for this version, but has to be delayed due to technical issues.
config-version upped to 55.
Added the following under Piglin in mob:
Code (YAML):
PiglinBruteMelee
:
-
"%plrtag% was slain by Piglin Brute"
PiglinBruteCustom
:
-
"%plrtag% was slain by Piglin Brute using [%weapon%&f]"
and under Piglin in namedmob:
Code (YAML):
PiglinBruteMelee
:
-
"%plrtag% was slain by %killer%"
PiglinBruteCustom
:
-
"%plrtag% was slain by %killer% using [%weapon%&f]"
and under mob-names:
Code (YAML):
PiglinBrute
:
"Piglin Brute"
Fixes various NullPointerExceptions that could happen if parts of the config were missing (because they were deleted or not present in an out-of-date config).
Various bugs have been fixed, and a feature for death messages per weapon type have been added. It has a lower priority than custom-messages-per-weapon-name.
Config changes:
config-version upped to 54.
Added this section under custom-messages-per-weapon-name:
Code (YAML):
custom-messages-per-weapon-type
:
# Same as above, but for weapon types. The same keys are used
# as in item-names.
# IRON_SWORD:
# pvp:
# PlayerCustom:
# - "%plrtag% was slain by %killer% using an iron sword"
Added a new feature that allows customizing the death message based on the name of the weapon item that the player was killed with.
Config changes: config-version upped to 53.
Added a new section below custom-messages-per-killer-player:
Code (YAML):
custom-messages-per-weapon-name
:
# Same as above, but for weapon names. The key is a regular expression,
# similar to the ones used in custom-mob-death-messages (see it for more).
# "Super Duper Sword_*": # all weapons with names that start with...
# pvp:
# PlayerCustom:
# - "%plrtag% was slain by %killer% using the mightiest weapon of all"
There are a bunch of config changes, as expected.
config-version upped to 52. Full list of changes below:
(EDIT: for an easier-to-read diff, see
here)
Code (Text):
12c12
< config-version: 51
---
> config-version: 52
281a282,283
> Hoglin:
> - "%plrtag% was slain by Hoglin"
307a310,313
> PiglinMelee:
> - "%plrtag% was slain by Piglin"
> PiglinCustom:
> - "%plrtag% was slain by Piglin using [%weapon%&f]"
355a362,363
> Strider:
> - "%plrtag% was slain by Strider"
377a386,387
> Zoglin:
> - "%plrtag% was slain by Zoglin"
382c392
< ZombiePigManMelee:
---
> ZombiePigManMelee: # used in versions older than 1.16
384c394
< ZombiePigManCustom:
---
> ZombiePigManCustom: # used in versions older than 1.16
385a396,399
> ZombifiedPiglinMelee: # used in 1.16 and newer
> - "%plrtag% was slain by Zombified Piglin"
> ZombifiedPiglinCustom: # used in 1.16 and newer
> - "%plrtag% was slain by Zombified Piglin using [%weapon%&f]"
446a461,462
> Hoglin:
> - "%plrtag% was slain by %killer%"
472a489,492
> PiglinMelee:
> - "%plrtag% was slain by %killer%"
> PiglinCustom:
> - "%plrtag% was slain by %killer% using [%weapon%&f]"
520a541,542
> Strider:
> - "%plrtag% was slain by %killer%"
544a567,568
> Zoglin:
> - "%plrtag% was slain by %killer%"
549c573,577
< ZombiePigManMelee:
---
> ZombiePigManMelee: # used in versions older than 1.16
> - "%plrtag% was slain by %killer%"
> ZombiePigManCustom: # used in versions older than 1.16
> - "%plrtag% was slain by %killer% using [%weapon%&f]"
> ZombifiedPiglinMelee: # used in 1.16 and newer
551c579
< ZombiePigManCustom:
---
> ZombifiedPiglinCustom: # used in 1.16 and newer
584a613,614
> WitherSkull:
> - "%plrtag% was shot by a %killer%'s skull"
587,588c617,618
< Bed: # exploding beds
< - "%plrtag% was killed by Intentional Game Design"
---
> Bed: # exploding beds or respawn anchors
> - "%plrtag% was killed by [Intentional Game Design]"
594a625,626
> AnvilKill:
> - "%plrtag% was squashed by a falling block whilst fighting %killer%"
596a629,630
> FallingBlockKill: # as above
> - "%plrtag% was squashed by a falling block whilst fighting %killer%"
612a647,648
> PotionWitherKill:
> - "%plrtag% withered away whilst fighting %killer%"
614a651,654
> PotionHarmingKill:
> - "%plrtag% was killed by magic whilst trying to escape %killer%"
> EvokerFang:
> - "%plrtag% was killed by %killer% using magic"
658a699,704
> FallWeepingVine:
> - "%plrtag% fell off some weeping vines"
> FallTwistingVine:
> - "%plrtag% fell off some twisting vines"
> FallClimbing: # currently unused
> - "%plrtag% fell while climbing"
660a707,710
> FallTrapdoor:
> - "%plrtag% fell out a trapdoor"
> FallScaffolding:
> - "%plrtag% fell out scaffolding"
682a733,738
> FireworkKill:
> - "%plrtag% went off with a bang whilst fighting %killer%"
> CrossbowFirework:
> - "%plrtag% went off with a bang due to a firework fired by %killer%"
> CrossbowFireworkCustom:
> - "%plrtag% went off with a bang due to a firework fired from [%weapon%&f] by %killer%"
684a741,742
> ElytraKill:
> - "%plrtag% experienced kinetic energy whilst trying to escape %killer%"
722a781
> Hoglin: "Hoglin"
734a794
> Piglin: "Piglin"
751a812
> Strider: "Strider"
762a824
> Zoglin: "Zoglin"
765a828
> ZombifiedPiglin: "Zombified Piglin"
Added item-names which allows configuring the display of %weapon% and %weapon_name% when the weapon does not have a custom name.
Config-version upped to 51. Changes:
The following section added below (but not inside) mob-names.
Code (Text):
item-names:
# Use this section to provide custom translations for items when used in a
# death message to replace %weapon% or %weapon_name%.
# See list of options here:
# https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html.
# (these may change depending on the Minecraft version)
# Example:
# IRON_SWORD: "Iron Sword"
Config-version increased to 50.
The new feature is enabled by using a special syntax in custom-messages-per-player (or custom-messages-per-killer-player). Example:
Code (Text):
custom-messages-per-player:
"123e4567-e89b-12d3-a456-426655440000":
"*":
- "A VIP player, %plrtag%, died!"
In addition, it is now possible to disable the standard [DMP] prefix for DeathMessagesPrime messages by using dmp-prefix-in-command-messages, which is true by default. (This is the version the config version was incremented).
The new permission,
deathmessagesprime.version, grants the user the right to see the plugin version using /dmsg (without any parameters). If they are not allowed to see the version, the player will see the configured "no permission" message instead. Before this version, the installed version of DMP could be seen by anyone by using the command.
Note that the permission is also required if the player wants to see the subcommands of /dmsg that are available to the player.
Updated for 1.15. Also, sweet berry bush death messages might work now.
Config-changes:
config-version upped to 49.
added the following under mob and namedmob:
Code (YAML):
Bee
:
-
"%plrtag% was stung to death"
added the following under mob-names:
This adds further customization to messages used by the commands in DMP. It also changes the functionality of the /dmp command somewhat, as it no longer shows commands that the person running the command would not have permissions for.
Config changes:
config-version upped to 48.
Added the following under death-messages-shown:
Code (YAML):
# Messages for other commands
no-permission
:
"§cYou have no permission to run this command."
players-only-command
:
"§cOnly players can run this command."
reload-complete
:
"Reload complete!"
cannot-find-online-player
:
"Cannot find online player"
This error at DeathListener.java:2600 might have occurred randomly when handling death messages, but should not occur again.
This time there would be some question marks too many if show-custom-death-msg-on-all-weapons was set to false, caused by an earlier bug fix.
Before this update, PlayerCustom might not have displayed the weapon info or displayed incorrect weapon info. This update should fix those issues.
This fixes various minor entity damage event and API issues.
This fixes custom-mob-death-messages, custom-user-death-messages and custom-player-death-messages for melee deaths.
Added console-death-message-even-if-disabled, a setting that controls whether death messages from disabled worlds (or worlds in which death messages are private) will appear in the server console.
Config changes: config-version upped to 47. Following setting added under console-death-message-strip-colors:
Code (YAML):
# Displays the death message in the console even if the world has disabled
# death messages or set them to private.
# Default: true
console-death-message-even-if-disabled
: true
This would have only happened in rare cases, but should no longer occur anymore, as there is now a fallback.
Sometimes debug messages would also get broadcasted to players that did not have this permission, but this should be fixed now.
This version adds support for world-specific death messages. Config changes: config-version upped to 46, and the below block added to the end of the file:
Code (Text):
custom-messages-per-world:
# Add custom messages for worlds. Use the world name as the key, then
# use a death reason key with the list of messages.
# This has lesser priority than custom-messages-per-player,
# custom-messages-per-killer-player or others.
# "world":
# natural:
# TNT:
# - "A player, %plrtag%, blew up in the specific world!"
This adds support for trader llamas which otherwise could confuse the plugin.
Config changes:
config-version upped to 45.
Added TraderLlama under mob-names:
Code (Text):
TraderLlama: "Trader Llama"
This update updates the existing DeathMessageCustomEvent, adding ability to cancel death messages through that event as well as get and set whether the death was caused by PVP.
Fixed the NullPointerException caused by AreaEffectCloud.
Also, any Creeper related Kill death messages stopped working in 1.14, because a dead entity is no longer searchable through the list of entities in the world. Because of this, no Creeper message or any other message where the mob had already died before the player would work (instead, they would display the death message as if their death weren't caused by a mob). For this version, I included a small patch that hardcodes the Creeper FallExplosionKill message if a Creeper happens to kill the player by blowing them off a cliff or similar. This however may not work well with addons, as despite being FallExplosionKill, the death event has no damager. I'm looking for a better solution.
1.14 features as well as others should work properly again.
Added 1.14 support, some new API methods (DeathMessagesPrime#getDeathMessage, DeathMessagesPrime#getEventPriority), refactored code and other small changes. Has been tested against 1.14-pre5, but
should work on final 1.14.
Config changes: config-version upped to 44. There are a lot of changes, so I will provide a diff; if you're not sure how to read this, you should regenerate the config.
Code (Text):
--- config43.yml 2019-04-23 20:37:08.334538200 +0300
+++ config44.yml 2019-04-23 20:37:17.128200000 +0300
@@ -9,7 +9,7 @@
# Configuration version, do not change this unless you want your config to be
# reset.
-config-version: 43
+config-version: 44
# World groups.
# If a world is in a group, and a death occurs there, the appropriate death
@@ -157,7 +157,8 @@
# The priority for the listener. Set to lower value if there are any conflicts
# with plugins that provide their own death message systems.
# In order from higher to lower: HIGHEST, HIGH, NORMAL, LOW, LOWEST
-# MONITOR should not be used, as it may cause compatibility problems.
+# MONITOR is UNSUPPORTED - do not use it, as it causes conflicts and may
+# mess with plugins using the API.
# Default: HIGH
death-listener-priority: HIGH
@@ -166,16 +167,12 @@
# Default: false
show-custom-death-msg-on-all-weapons: false
-# =========================================================================
-# THIS FEATURE IS IMPLEMENTED ONLY IN DMP PLUGIN VERSIONS TBA AND ABOVE!!!
-# THIS FEATURE IS IMPLEMENTED ONLY IN DMP PLUGIN VERSIONS TBA AND ABOVE!!!
+# THIS FEATURE IS NOT IMPLEMENTED RIGHT NOW, AS THE API DOES NOT SUPPORT
+# MODIFYING PET DEATH MESSAGES.
# Whether to show death messages for tamed and named pets.
# (true is the vanilla Minecraft behavior)
# Default: true
show-named-pet-death-messages: true
-# THIS FEATURE IS IMPLEMENTED ONLY IN DMP PLUGIN VERSIONS TBA AND ABOVE!!!
-# THIS FEATURE IS IMPLEMENTED ONLY IN DMP PLUGIN VERSIONS TBA AND ABOVE!!!
-# =========================================================================
# Messages for enabling and disabling death messages using /toggledeathmsg
death-messages-hidden: "&a[DMP] &aOthers' death messages will now be HIDDEN"
@@ -221,6 +218,8 @@
- "%plrtag% was slain by Blaze"
BlazeFireball:
- "%plrtag% was fireballed by Blaze"
+ Cat:
+ - "%plrtag% was slain by Cat"
CaveSpider:
- "%plrtag% was slain by Cave Spider"
Chicken:
@@ -257,6 +256,8 @@
- "%plrtag% was slain by Endermite"
Evoker:
- "%plrtag% was slain by Evoker"
+ Fox:
+ - "%plrtag% was slain by Fox"
Ghast:
- "%plrtag% was fireballed by Ghast"
Giant:
@@ -281,18 +282,30 @@
- "%plrtag% was slain by Mooshroom"
Mule:
- "%plrtag% was slain by Mule"
+ Panda:
+ - "%plrtag% was slain by Panda"
Parrot:
- "%plrtag% was slain by Parrot"
Phantom:
- "%plrtag% was slain by Phantom"
Pig:
- "%plrtag% was slain by Pig"
+ PillagerArrow:
+ - "%plrtag% was shot by Pillager"
+ PillagerMelee:
+ - "%plrtag% was slain by Pillager"
+ PillagerArrowCustom:
+ - "%plrtag% was shot by Pillager using [%weapon%&f]"
+ PillagerCustom:
+ - "%plrtag% was slain by Pillager using [%weapon%&f]"
PolarBear:
- "%plrtag% was slain by Polar Bear"
PufferFish:
- "%plrtag% was slain by Puffer Fish"
Rabbit:
- "%plrtag% was slain by Rabbit"
+ Ravager:
+ - "%plrtag% was slain by Ravager"
Salmon:
- "%plrtag% was slain by Salmon"
Sheep:
@@ -333,6 +346,8 @@
- "%plrtag% was slain by Vex"
Vindicator:
- "%plrtag% was slain by Vindicator"
+ WanderingTrader:
+ - "%plrtag% was slain by Wandering Trader"
Witch:
- "%plrtag% was killed by Witch using magic"
Wither:
@@ -366,6 +381,8 @@
- "%plrtag% was slain by %killer%"
BlazeFireball:
- "%plrtag% was fireballed by %killer%"
+ Cat:
+ - "%plrtag% was slain by %killer%"
CaveSpider:
- "%plrtag% was slain by %killer%"
Chicken:
@@ -402,6 +419,8 @@
- "%plrtag% was slain by %killer%"
Evoker:
- "%plrtag% was slain by %killer%"
+ Fox:
+ - "%plrtag% was slain by %killer%"
Ghast:
- "%plrtag% was fireballed by %killer%"
Giant:
@@ -426,18 +445,30 @@
- "%plrtag% was slain by %killer%"
Mule:
- "%plrtag% was slain by %killer%"
+ Panda:
+ - "%plrtag% was slain by %killer%"
Parrot:
- "%plrtag% was slain by %killer%"
Phantom:
- "%plrtag% was slain by %killer%"
Pig:
- "%plrtag% was slain by %killer%"
+ PillagerArrow:
+ - "%plrtag% was shot by %killer%"
+ PillagerMelee:
+ - "%plrtag% was slain by %killer%"
+ PillagerArrowCustom:
+ - "%plrtag% was shot by %killer% using [%weapon%&f]"
+ PillagerCustom:
+ - "%plrtag% was slain by %killer% using [%weapon%&f]"
PolarBear:
- "%plrtag% was slain by %killer%"
PufferFish:
- "%plrtag% was slain by %killer%"
Rabbit:
- "%plrtag% was slain by %killer%"
+ Ravager:
+ - "%plrtag% was slain by %killer%"
Salmon:
- "%plrtag% was slain by %killer%"
Sheep:
@@ -480,6 +511,8 @@
- "%plrtag% was slain by %killer%"
Vindicator:
- "%plrtag% was slain by %killer%"
+ WanderingTrader:
+ - "%plrtag% was slain by %killer%"
Witch:
- "%plrtag% was killed by %killer% using magic"
Wither:
@@ -574,6 +607,10 @@
- "%plrtag% discovered floor was lava"
MagmaKill:
- "%plrtag% walked into danger zone due to %killer%"
+ BerryBush:
+ - "%plrtag% was poked to death by a sweet berry bush"
+ BerryBushKill:
+ - "%plrtag% was poked to death by a sweet berry bush whilst trying to escape %killer%"
Lava:
- "%plrtag% tried to swim in lava"
LavaKill:
@@ -645,6 +682,7 @@
mob-names:
Bat: "Bat"
Blaze: "Blaze"
+ Cat: "Cat"
CaveSpider: "Cave Spider"
Chicken: "Chicken"
Cod: "Cod"
@@ -658,6 +696,7 @@
Enderman: "Enderman"
Endermite: "Endermite"
Evoker: "Evoker"
+ Fox: "Fox"
Ghast: "Ghast"
Giant: "Giant"
Guardian: "Guardian"
@@ -669,13 +708,16 @@
MagmaCube: "Magma Cube"
Mooshroom: "Mooshroom"
Mule: "Mule"
+ Panda: "Panda"
Parrot: "Parrot"
Phantom: "Phantom"
Pig: "Pig"
+ Pillager: "Pillager"
PolarBear: "Polar Bear"
PufferFish: "Puffer Fish"
Ocelot: "Ocelot"
Rabbit: "Rabbit"
+ Ravager: "Ravager"
Salmon: "Salmon"
Sheep: "Sheep"
Shulker: "Shulker"
@@ -692,6 +734,7 @@
Vex: "Vex"
Villager: "Villlager"
Vindicator: "Vindicator"
+ WanderingTrader: "Wandering Trader"
Witch: "Witch"
Wither: "Wither"
WitherSkeleton: "Wither Skeleton"
This feature allows setting a death message radius for PVP death messages only. Config changes:
config-version upped to 43.
Added this section under worlds-death-message-radius:
Code (YAML):
# Similar to the above, but this only controls PVP messages (not natural
# death messages). If both are set, the above worlds-death-message-radius
# will affect the natural messages and this one will affect the PVP messages.
# In order to only have a PVP message radius: add the world here only.
# In order to only have a natural message radius: add the world under
# both options and set it to -1 here.
worlds-pvp-death-message-radius
:
#world: 10
It was simply missing from the plugin, but should work now. No config changes should be needed, although it's recommended you check Endermite under mob-names as it can actually appear now.
This occurred with some unnamed weapons, but should be fixed now.
Implemented the item rarity system where the item text color will change depending on how "rare" the item is. This system should use the same values as Minecraft itself.
Mooshroom death messages should also work now.
Config changes:
config-version upped to 42.
Added under "death-message-enable-namedmob":
Code (YAML):
# Show the rarity of items in the %weapon_name% and %weapon% tags.
# (This affects the text colors and formatting for some items, such
# as enchanted ones.)
# Default: true
death-message-show-rarity
: true
Fixes a (fairly stupid) NPE on Minecraft versions older than 1.13 and adds a CreeperCharged feature.
Config changes:
config-version upped to 42.
Added CreeperCharged under Creeper (to under mob and namedmob), which by default uses the same messages as Creeper.
Added a death-message-item-flags feature that allows adding ItemFlags to the items shown under %weapon%.
Config changes:
config-version upped to 41.
Following has been added under death-message-enable-namedmob:
Code (YAML):
# Allows applying item flags on items that appear in death messages.
# Note that this feature only works on Minecraft 1.8 and above.
# Possible flags are documented under https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/inventory/ItemFlag.html
death-message-item-flags
:
# - HIDE_ATTRIBUTES
# - HIDE_ENCHANTS
If a JSON message would turn out too long (which could prevent the server from sending it or possibly even kicking out players), DMP will now remove all JSON formatting (such as item hover events and so on) to avoid that from happening. (This is a last case scenario and should not occur normally, however.)
All of which was caused a silly small coding mistake.
getTag() will now return the original death message tag initially. This doesn't affect how the plugin works without any add-ons.
Config-version has been upped from 39 to 40. Changes:
Added a new config option under death-message-conflict-broadcast, death-message-enable-namedmob, which is true by default.
Code (Text):
# Whether to enable namedmob messages. If disabled, namedmob messages
# will not be shown and will be replaced with mob.
# Default: true
death-message-enable-namedmob: true
This could happen in some rare cases, but should now be fixed.
Because of a slight change, the custom weapon death messages were being always displayed. This should be fixed now.
This seems to also happen in newer versions at times, so instead we'll check for it properly rather than assuming the method exists on newer versions.
The new system didn't work with 1.8 because it used a method that was not available on 1.8. This should be fixed now.
The handling of colored messages has been rewritten, hopefully taken care of some issues. If any new issues arise from this update, please report them.
I'm also announcing that this plugin will be updated for 1.13 once it is out and the final version of Spigot for 1.13 is too. It may take a couple days or so, however.
Fixed bugs relating to ender dragon and dragon breath deaths.
Self-explanatory, neither of the messages were working but should be now.
This variable is simply the integer number of blocks of distance between the player and the killer at the time of the death in a death message (if a killer exists).
A bit more looking before you leap in the actual code regarding the handling of projectile deaths.
The exact circumstances of this glitch are still unknown, but the common factor is that a large number of death messages (that either got delayed or were never supposed to be broadcasted in the first place) will get broadcasted at once on specific configurations. There is now a lock around the queue when it comes to broadcasting messages, and some of the checks for each message have been reordered.
When running on 1.8, an occasional error related to AreaEffectCloud could break the plugin. This has now been fixed.
Fixed some bugs where messages split into multiple lines might lose colors (such as when a weapon name wraps to a second line).
No major changes here. This update tries to fix the possible NPE that might sometimes occur.
Fairly self-explanatory. This mainly affected the Creeper and WitherSpawnBoom messages, which will now be properly checked through TNTKill.
This would only happen with weapons with no custom name. It attempts to use a standard name based on the item's type now, although at some point translation support for it will be added.
Added custom-messages-per-killer-player (custom messages for a killing player) as well as prefix-pvp and suffix-pvp (prefix and suffix for PVP messages only).
Config changes:
config-version updated to 37.
Added under the prefix and suffix under death-messages (yes, the fact that they're comments is intentional):
Code (Text):
# If you want a prefix / suffix only for PVP messages, uncomment these:
# prefix-pvp: "&a[&eD&a] &c"
# suffix-pvp: ""
Added under the custom-messages-per-player block:
Code (Text):
custom-messages-per-killer-player:
# Same as above, but for killing players in PVP events.
# To get the UUID of an online player, use /dmsg uuid player_name
# "123e4567-e89b-12d3-a456-426655440000":
# natural:
# TNTKill:
# - "%plrtag% got blown up by a VIP player, %entity%!"
(custom-messages-per-player.conflict also controls custom-messages-per-killer-player)
Death messages are now broadcasted at MONITOR, not HIGHEST. compat-mode is now true by default (in the new config.yml, no changes needed however) and handles hidden death messages (e.setDeathMessage(null)) correctly.
Fixed possible plugin conflicts, the plugin tries its best to display the modified death message now if a plugin interferes, with an option to toggle whether DMP will use the standard Spigot death message broadcasting in that case (false) or broadcast the custom death message provided by some other plugin using its own system (true, default).
A couple of errors (causing stack traces) relating to deaths caused by Ender Dragon breath are also fixed.
Config updates:
- config-version updated to 36.
- death-message-compat-mode description was changed:
Code (Text):
# Death message compatibility: set the message as normal, until HIGHEST,
# when it is emptied.
# Use this if any conflicts arise.
death-message-compat-mode: ...
- A new option, death-message-conflict-broadcast, under death-message-compat-mode:
Code (Text):
# Whether to use DMP broadcasting if a custom death message is set by
# another plugin.
death-message-conflict-broadcast: true
Added a bed death message and a death message cooldown system.
Configs updated, changes (except if you regenerate your config):
config-version is now 35.
Added Bed death message:
Code (Text):
...
EnderCrystal:
- "%plrtag% blew up"
Bed: # exploding beds
- "%plrtag% blew up"
Cactus:
- "%plrtag% was pricked to death"
...
Added the config flags for the cooldown (between worlds-death-message-radius and debug):
Code (Text):
# If a player dies over death-count times within death-interval seconds,
# death messages from that player will be hidden for death-cooldown seconds.
# If death-reset is true, every hidden death message resets the cooldown.
cooldown-death-count: 3
cooldown-death-interval: 10
cooldown-death-cooldown: 10
cooldown-death-reset: false
This is the initial test of readding 1.8 support, which was removed in DMP version 1.2. If there are any issues (such as errors in console), please report them in the thread.
In case that damage from a sweep attack kills the player, the death message should now appear properly. (Not sure if this was ever a concern though)
Will not error anymore when the killer is not a player.
FallKillWeapon (which should already be in config.yml) should now work, appearing instead of FallKill with the same conditions as PlayerCustom / PlayerMelee. TNTKill has been fixed and should now appear again with primed TNT. No config changes needed.
If show-custom-death-msg-on-all-weapons was true and/or PlayerProjectileCustom message was used, the %weapon% tag would not work properly. This has been fixed.
Fixed the Thorns death message and added a new API feature, registerTagPrefix.
Added a firework death message option.
Config version updated to 33!
Regenerate your configuration files where possible.
If you don't want to regenerate, here's a change list:
- All instances of %weapon_name% in default death messages were changed to %weapon%.
- All "...was finished off..." default death messages were removed.
- Added FallKillWeapon, FallFinishKill, FallFinishKillWeapon death message settings below the FallKill one. (
these messages are not implemented yet)
Code (Text):
FallKill:
...
FallKillWeapon:
- "%plrtag% was doomed to fall by %killer% using [%weapon%&f]"
FallFinishKill:
- "%plrtag% fell too far and was finished by %killer%"
FallFinishKillWeapon:
- "%plrtag% fell too far and was finished by %killer% using [%weapon%&f]"
FallExplosionKill: # FallKill caused by entity explosion
...
- Added a Firework death message setting above the Elytra one.
Code (Text):
FallVineKill:
...
Firework:
- "%plrtag% went off with a bang"
Elytra:
...
- The default EnderDragonBreath message was changed from "%plrtag% was killed by Ender Dragon using magic" to "%plrtag% roasted in dragon breath" to reflect intended vanilla message.
The API concerns the DeathMessagePreparedEvent and allows plugins to add players to whom the death message will be shown or will not be shown regardless of most other conditions. An official plugin using this functionality will soon be released (this plugin will allow each individual player with sufficient permissions to hide death messages from specific players).
Illusioner messages, prior to this version, used UnknownArrow.
The plugin is also now built with Java 8 (the same version that is now required by the server itself).
No config changes are needed, since an earlier version already introduced the Illusioner and Parrot messages - this update will just make them work.
The crash was related to Horse classes. This fixes errors like "java.lang.NoClassDefFoundError: org/bukkit/entity/Donkey". No config changes needed.
Configuration files need to be regenerated.
Usually friendly mobs, such as animals (pig, sheep etc.) have death messages now (for when a player is killed by one). This is intended for mods, custom maps or plugins (such as
Revenge by
Asynchronous).
Also, some config features have already been added for upcoming 1.12 mobs (Illusioner and Parrot), as well as a config option for showing death messages for named pets (however, this isn't implemented yet, and will be implemented for version v1.12).
Unknown AreaEffectCloud messages will cause the UNKNOWN death message to pop up. Seemingly these messages have been popping up, but I'm not yet sure whether it's a bug in this plugin (missed some obscure death case, lingering potion outside of players, ender dragons and dispensers) or incompatibility with some other plugins.
Self-explanatory. No config regeneration needed.
With specific plugin combinations or kill commands, the damage for death events isn't unknown, which would've caused an IndexOutOfBoundsException. This version fixes the issue (and acknowledges that DeathPreDMPEvent.getDamage() can be 0 in such a case.
Added the DMPReloadEvent, which is triggered when the /dmsg reload command is called. This allows addons to reload themselves as well.
The DeathPreDMPEvent is guaranteed to trigger on every player death before any other DMP events are triggered or any formatTag functions called. It's mainly intended for addons that need to do some preparations after the player has died but before any tags are formatted.
A related announcement: the first example plugin is ready!
https://www.spigotmc.org/resources/dmpinventoryplayerinfo.34731/
A less related one: I'm planning to release the source code of both DMP and this recently released addon at some point in the future (hopefully soon)