Merge branch 'general-devel' into patch-2
This commit is contained in:
commit
ec72f4957b
5 changed files with 20 additions and 7 deletions
|
|
@ -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.
|
* 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.
|
* 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
|
* 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))
|
(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));
|
TShock.Log.ConsoleDebug(GetString("Bouncer / OnPlayerDamage rejected custom death message from {0}", args.Player.Name));
|
||||||
|
|
|
||||||
|
|
@ -189,6 +189,9 @@ namespace TShockAPI.DB
|
||||||
if (!player.IsLoggedIn)
|
if (!player.IsLoggedIn)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (player.State < 10)
|
||||||
|
return false;
|
||||||
|
|
||||||
if (player.HasPermission(Permissions.bypassssc) && !fromCommand)
|
if (player.HasPermission(Permissions.bypassssc) && !fromCommand)
|
||||||
{
|
{
|
||||||
TShock.Log.ConsoleInfo(GetParticularString("{0} is a player name", $"Skipping SSC save (due to tshock.ignore.ssc) for {player.Account.Name}"));
|
TShock.Log.ConsoleInfo(GetParticularString("{0} is a player name", $"Skipping SSC save (due to tshock.ignore.ssc) for {player.Account.Name}"));
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,10 @@ namespace TShockAPI.Handlers
|
||||||
{
|
{
|
||||||
TileID.JungleGrass
|
TileID.JungleGrass
|
||||||
} },
|
} },
|
||||||
|
{ TileID.AshPlants, new HashSet<ushort>()
|
||||||
|
{
|
||||||
|
TileID.AshGrass
|
||||||
|
} },
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -67,6 +71,10 @@ namespace TShockAPI.Handlers
|
||||||
{
|
{
|
||||||
9, 10, 11, 12, 13, 14, 15, 16,
|
9, 10, 11, 12, 13, 14, 15, 16,
|
||||||
} },
|
} },
|
||||||
|
{ TileID.AshPlants, new HashSet<ushort>()
|
||||||
|
{
|
||||||
|
6, 7, 8, 9, 10,
|
||||||
|
} },
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -676,17 +676,13 @@ namespace TShockAPI
|
||||||
|
|
||||||
if (args.Chest != null)
|
if (args.Chest != null)
|
||||||
{
|
{
|
||||||
|
// After checking for protected regions, no further range checking is necessarily because the client packet only specifies the
|
||||||
|
// inventory slot to quick stack. The vanilla Terraria server itself determines what chests are close enough to the player.
|
||||||
if (Config.Settings.RegionProtectChests && !Regions.CanBuild((int)args.WorldPosition.X, (int)args.WorldPosition.Y, tsplr))
|
if (Config.Settings.RegionProtectChests && !Regions.CanBuild((int)args.WorldPosition.X, (int)args.WorldPosition.Y, tsplr))
|
||||||
{
|
{
|
||||||
args.Handled = true;
|
args.Handled = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!tsplr.IsInRange(args.Chest.x, args.Chest.y))
|
|
||||||
{
|
|
||||||
args.Handled = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -106,6 +106,9 @@ Use past tense when adding new entries; sign your name off when you add or chang
|
||||||
* Allowed multiple test cases to be in TShock's test suite. (@drunderscore)
|
* Allowed multiple test cases to be in TShock's test suite. (@drunderscore)
|
||||||
* Fixed unable to use Purification/Evil Powder in jungle. (@sgkoishi)
|
* Fixed unable to use Purification/Evil Powder in jungle. (@sgkoishi)
|
||||||
* Set the `GetDataHandledEventArgs.Player` property for the `SyncTilePicking` data handler. (@drunderscore)
|
* Set the `GetDataHandledEventArgs.Player` property for the `SyncTilePicking` data handler. (@drunderscore)
|
||||||
|
* Relaxed custom death message restrictions to allow Inferno potions in PvP. (@drunderscore)
|
||||||
|
* Allowed Flower Boots to place Ash Flowers on Ash Grass blocks. (@punchready)
|
||||||
|
* Removed unnecessary range check that artifically shortened quick stack reach. (@boddyn, #2885, @bcat)
|
||||||
* Improved the exploit protection in tile rect handling. (@punchready)
|
* Improved the exploit protection in tile rect handling. (@punchready)
|
||||||
|
|
||||||
## TShock 5.1.3
|
## TShock 5.1.3
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue