Update Modify Tile packet.

Only updating. Did not patch any possible exploits. Requesting someone to tend to this when possible.
This commit is contained in:
Patrikkk 2020-05-18 00:41:12 +02:00
parent 2d5166cfa4
commit 3b3fa9fc72
2 changed files with 14 additions and 8 deletions

View file

@ -183,6 +183,7 @@ namespace TShockAPI
/// <param name="args">The packet arguments that the event has.</param> /// <param name="args">The packet arguments that the event has.</param>
internal void OnTileEdit(object sender, GetDataHandlers.TileEditEventArgs args) internal void OnTileEdit(object sender, GetDataHandlers.TileEditEventArgs args)
{ {
// TODO: Add checks on the new edit actions. ReplaceTile, ReplaceWall, TryKillTile, Acutate, PokeLogicGate, SlopePoundTile
EditAction action = args.Action; EditAction action = args.Action;
int tileX = args.X; int tileX = args.X;
int tileY = args.Y; int tileY = args.Y;

View file

@ -2249,17 +2249,17 @@ namespace TShockAPI
private static bool HandleTile(GetDataHandlerArgs args) private static bool HandleTile(GetDataHandlerArgs args)
{ {
EditAction action = (EditAction)args.Data.ReadInt8(); EditAction action = (EditAction)args.Data.ReadInt8();
var tileX = args.Data.ReadInt16(); short tileX = args.Data.ReadInt16();
var tileY = args.Data.ReadInt16(); short tileY = args.Data.ReadInt16();
var editData = args.Data.ReadInt16(); short editData = args.Data.ReadInt16();
EditType type = (action == EditAction.KillTile || action == EditAction.KillWall || EditType type = (action == EditAction.KillTile || action == EditAction.KillWall ||
action == EditAction.KillTileNoItem) action == EditAction.KillTileNoItem || action == EditAction.TryKillTile)
? EditType.Fail ? EditType.Fail
: (action == EditAction.PlaceTile || action == EditAction.PlaceWall) : (action == EditAction.PlaceTile || action == EditAction.PlaceWall || action == EditAction.ReplaceTile || action == EditAction.ReplaceWall)
? EditType.Type ? EditType.Type
: EditType.Slope; : EditType.Slope;
var style = args.Data.ReadInt8(); byte style = args.Data.ReadInt8();
if (OnTileEdit(args.Player, args.Data, tileX, tileY, action, type, editData, style)) if (OnTileEdit(args.Player, args.Data, tileX, tileY, action, type, editData, style))
return true; return true;
@ -3406,7 +3406,13 @@ namespace TShockAPI
SlopeTile, SlopeTile,
FrameTrack, FrameTrack,
PlaceWire4, PlaceWire4,
KillWire4 KillWire4,
PokeLogicGate,
Acutate,
TryKillTile,
ReplaceTile,
ReplaceWall,
SlopePoundTile
} }
public enum EditType public enum EditType
{ {
@ -3414,7 +3420,6 @@ namespace TShockAPI
Type, Type,
Slope, Slope,
} }
/// <summary> /// <summary>
/// The maximum place styles for each tile. /// The maximum place styles for each tile.
/// </summary> /// </summary>