Merge pull request #2605 from drunderscore/feature/teleportation-potion-protection

Only allow using Teleportation Potion and friends whilst holding them
This commit is contained in:
Lucas Nicodemus 2022-04-01 01:13:40 -07:00 committed by GitHub
commit 106daa9f5a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 0 deletions

View file

@ -14,6 +14,7 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin
## Upcoming changes
* Fixed `TSPlayer.GiveItem` not working if the player is in lava. (@gohjoseph)
* Only allow using Teleportation Potions, Magic Conch, and Demon Conch whilst holding them. (@drunderscore)
## TShock 4.5.17
* Fixed duplicate characters (twins) after repeatedly logging in as the same character due to connection not being immediately closed during `NetHooks_NameCollision`. (@gohjoseph)

View file

@ -3814,6 +3814,13 @@ namespace TShockAPI
switch (type)
{
case 0: // Teleportation Potion
if (args.Player.ItemInHand.type != ItemID.TeleportationPotion &&
args.Player.SelectedItem.type != ItemID.TeleportationPotion)
{
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleportationPotion rejected not holding the correct item {0} {1}", args.Player.Name, type);
return true;
}
if (!args.Player.HasPermission(Permissions.tppotion))
{
Fail("Teleportation Potions");
@ -3821,6 +3828,13 @@ namespace TShockAPI
}
break;
case 1: // Magic Conch
if (args.Player.ItemInHand.type != ItemID.MagicConch &&
args.Player.SelectedItem.type != ItemID.MagicConch)
{
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleportationPotion rejected not holding the correct item {0} {1}", args.Player.Name, type);
return true;
}
if (!args.Player.HasPermission(Permissions.magicconch))
{
Fail("the Magic Conch");
@ -3828,6 +3842,13 @@ namespace TShockAPI
}
break;
case 2: // Demon Conch
if (args.Player.ItemInHand.type != ItemID.DemonConch &&
args.Player.SelectedItem.type != ItemID.DemonConch)
{
TShock.Log.ConsoleDebug("GetDataHandlers / HandleTeleportationPotion rejected not holding the correct item {0} {1}", args.Player.Name, type);
return true;
}
if (!args.Player.HasPermission(Permissions.demonconch))
{
Fail("the Demon Conch");