Relax custom death message restrictions to allow Inferno potions in PvP

For some reason, Inferno potions do PvP damage without specifying the
source player in the `PlayerDeathReason` -- so special-case the only
identifying information being the other index value of `16`.
This commit is contained in:
James Puleo 2023-03-13 01:43:12 -04:00
parent 69569a5be5
commit 7b7de04a7f
No known key found for this signature in database
GPG key ID: 3E16C7EFA34FB15D

View file

@ -2659,9 +2659,12 @@ namespace TShockAPI
* If the player was not specified, that is, the player index is -1, then it is definitely a custom cause, as you can only deal damage with a projectile or another player.
* This is how everything else works. If an NPC is specified, its value is not -1, which is a custom cause.
*
* An exception to this is damage dealt by the Inferno potion to other players -- it is only identified by the other index value of 16,
* even lacking a source player index.
*
* Checking whether this damage came from the player is necessary, because the damage from the player can come even when it is hit by a NPC
*/
if (TShock.Config.Settings.DisableCustomDeathMessages && id != args.Player.Index &&
if (TShock.Config.Settings.DisableCustomDeathMessages && id != args.Player.Index && reason._sourceOtherIndex != 16 &&
(reason._sourcePlayerIndex == -1 || reason._sourceNPCIndex != -1 || reason._sourceOtherIndex != -1 || reason._sourceCustomReason != null))
{
TShock.Log.ConsoleDebug(GetString("Bouncer / OnPlayerDamage rejected custom death message from {0}", args.Player.Name));