Merge branch 'general-devel' into patch-1
This commit is contained in:
commit
9231b7d296
4 changed files with 49 additions and 6 deletions
|
|
@ -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>
|
||||||
|
|
@ -173,6 +181,7 @@ namespace TShockAPI.Handlers
|
||||||
}
|
}
|
||||||
|
|
||||||
NetTile newTile = tiles[x, y];
|
NetTile newTile = tiles[x, y];
|
||||||
|
|
||||||
TileObjectData data;
|
TileObjectData data;
|
||||||
|
|
||||||
// If the new tile has an associated TileObjectData object, we take the tile and the surrounding tiles that make up the tile object
|
// If the new tile has an associated TileObjectData object, we take the tile and the surrounding tiles that make up the tile object
|
||||||
|
|
@ -210,10 +219,26 @@ namespace TShockAPI.Handlers
|
||||||
case TileID.ShimmerMonolith:
|
case TileID.ShimmerMonolith:
|
||||||
{
|
{
|
||||||
// Allowed changes
|
// Allowed changes
|
||||||
|
|
||||||
|
// Based on empirical tests, these should be some conservative upper bounds for framing values
|
||||||
|
if (newTile.FrameX != -1 || newTile.FrameY != -1)
|
||||||
|
{
|
||||||
|
if (newTile.FrameX is < 0 or > 1000)
|
||||||
|
{
|
||||||
|
processed[x, y] = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (newTile.FrameY is < 0 or > 5000)
|
||||||
|
{
|
||||||
|
processed[x, y] = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
|
processed[x, y] = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -233,10 +258,26 @@ namespace TShockAPI.Handlers
|
||||||
case TileID.TargetDummy:
|
case TileID.TargetDummy:
|
||||||
{
|
{
|
||||||
// Allowed placements
|
// Allowed placements
|
||||||
|
|
||||||
|
// Based on empirical tests, these should be some conservative upper bounds for framing values
|
||||||
|
if (newTile.FrameX != -1 || newTile.FrameY != -1)
|
||||||
|
{
|
||||||
|
if (newTile.FrameX is < 0 or > 1000)
|
||||||
|
{
|
||||||
|
processed[x, y] = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (newTile.FrameY is < 0 or > 500)
|
||||||
|
{
|
||||||
|
processed[x, y] = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
|
processed[x, y] = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -107,6 +107,9 @@ Use past tense when adding new entries; sign your name off when you add or chang
|
||||||
* 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)
|
* 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)
|
||||||
|
|
||||||
## TShock 5.1.3
|
## TShock 5.1.3
|
||||||
* Added support for Terraria 1.4.4.9 via OTAPI 3.1.20. (@SignatureBeef)
|
* Added support for Terraria 1.4.4.9 via OTAPI 3.1.20. (@SignatureBeef)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue