Commit graph

350 commits

Author SHA1 Message Date
Lucas Nicodemus
9d0c84fd13 Fix handler registration in Bouncer init constructor 2017-12-16 10:37:44 -07:00
Lucas Nicodemus
1e9532a316 Create TSPlayer.IsBouncerThrottled() to avoid code copypasta 2017-12-16 01:14:39 -07:00
Lucas Nicodemus
0260530848 Change Bouncer initialization to a more permanent home 2017-12-16 01:09:40 -07:00
Lucas Nicodemus
1bee289daf Move TShock.CheckIgnores(TSPlayer) -> TSPlayer.CheckIgnores()
Note: This method really sucks and needs to be rebuilt anyway.
2017-12-16 01:03:05 -07:00
Lucas Nicodemus
9f7c3ead09 Add & move OnPlaceItemFrame to Bouncer 2017-12-15 23:15:43 -07:00
Lucas Nicodemus
748d7f7fab Move OnGemLockToggle -> Bouncer 2017-12-15 22:58:41 -07:00
Lucas Nicodemus
de017f2d41 Create & move OnPlaceTileEntity to Bouncer; fix unreachable code 2017-12-15 22:51:07 -07:00
Lucas Nicodemus
64facfc10c Document internal mass wire op in Bouncer 2017-12-15 22:29:52 -07:00
Lucas Nicodemus
681f2a2432 Add & move OnMassWireOperation hook to Bouncer 2017-12-15 22:15:17 -07:00
Lucas Nicodemus
cdba07c62e Move OnPlayerAnimation to Bouncer 2017-12-15 21:50:20 -07:00
Lucas Nicodemus
d03e899452 dmg -> damage 2017-12-15 21:43:27 -07:00
Lucas Nicodemus
007c685c19 Move OnNPCStrike to Bouncer 2017-12-15 21:42:20 -07:00
Lucas Nicodemus
01d865fddc Move OnPlayerDamage to Bouncer
Remove reference to PlayerDamage v1 hook
2017-12-15 18:27:55 -07:00
Lucas Nicodemus
82e2ecb662 Move OnItemDrop to Bouncer 2017-12-15 18:11:35 -07:00
Lucas Nicodemus
5cdb38675c Move OnPlayerBuff logic to Bouncer 2017-12-15 17:51:16 -07:00
Lucas Nicodemus
c9955a74ec Document OnChestItemChange 2017-12-15 12:14:10 -07:00
Lucas Nicodemus
845fc3b7c8 Move OnChestItemChange to Bouncer
Fix issue where TShock didn't properly do anti-cheat on chest
item changes.
2017-12-15 12:12:21 -07:00
Lucas Nicodemus
943f86615a Move UpdateNPCHome to Bouncer 2017-12-14 20:46:26 -07:00
Lucas Nicodemus
be8cffddfd Move OnChestOpen to Bouncer 2017-12-14 20:31:54 -07:00
Lucas Nicodemus
863fa706c2 Document OnPlaceChest in Bouncer 2017-12-14 20:28:50 -07:00
Lucas Nicodemus
6d7c8aa019 TileKill -> PlaceChest (hook changed, so did packet); +Bouncer 2017-12-14 20:13:25 -07:00
Lucas Nicodemus
5cd5bdaaa0 Move OnLiquidSet to Bouncer 2017-12-14 07:46:29 -07:00
Lucas Nicodemus
98aa01c620 Add note about crash check & change reaosn on OnKillMe 2017-12-11 19:07:53 -07:00
Lucas Nicodemus
5c9d2ed870 Simpler check (thanks @bartico6) on OPK's nullcheck. 2017-12-11 08:23:36 -07:00
Lucas Nicodemus
6ed110f862 Change a bounds check to handle a packet instead of letting it go.
This change reverts mod to line 1525 of GetDataHandlers.cs in
672d360e9d by Deathamx.

We couldn't think of a reason why a bounds check would ever return
false, thus not handling the packet and letting the server accept
it. Therefore, it's now true.

In the future, we need to document handling better.
2017-12-11 00:28:08 -07:00
Lucas Nicodemus
ba851d3570 Remove TShock.CheckProjectilePermission
Add TSPlayer.HasProjectilePermission() and its inverse:
	TSPlayer.LacksProjectilePermission()
2017-12-10 23:38:03 -07:00
Lucas Nicodemus
c5f9a51802 Move most of HandleProjectileKill to Bouncer
Added GetDataHandlers.ProjectileKill hook and related arguments.
Fired when a projectile kill packet is accepted by the server.
2017-12-10 23:07:17 -07:00
Lucas Nicodemus
d3c566db83 Move a large majority of OnPlayerUpdate to Bouncer
I really really don't understand why we're doing Terraria's data
sync for them (see HandlePlayerUpdate). Someone know why?
2017-12-10 10:04:27 -07:00
Lucas Nicodemus
949d0e0ffa More remove notes 2017-12-10 08:56:17 -07:00
Lucas Nicodemus
79802cd9e0 Comment more things in Bouncer 2017-12-10 08:54:32 -07:00
Lucas Nicodemus
dd7ffe2d3a Move PlayerKillMeV2 anti-crash to Bouncer
Removed PacketTypes.PlayerKillMe since it's out of the protocol.
Removed handler method for PlayerKillMe since it's out of the
	protocol.
Updated changelog to reflect new hook changes.
2017-12-09 13:50:18 -07:00
Lucas Nicodemus
436e91c1f1 Change STS to 1 tile for @bartico6's quality of life changes
Since these reverts are on a per-tile basis, we only need to revert
the first block not surrounding ones.

Note: May cause problems with dropped sand because of gravity.
2017-12-09 10:30:20 -07:00
Lucas Nicodemus
a5cbeb166b Fix some SendTileSquare calls with proper args 2017-12-09 02:15:31 -07:00
Lucas Nicodemus
760f5518da More patching to fix potential desync (thanks @bartico6)! 2017-12-09 01:50:58 -07:00
Lucas Nicodemus
aa527496dc Replace a coule TileID magic numbers with direc Tcalls.
Thanks @mistzzt & @QuiCM!
2017-12-09 01:48:43 -07:00
Lucas Nicodemus
ce822caf2a Implement re-transmit of data if event handled in OnTilEdit
Thanks to the suggestion of @bartico6, we now re-transmit packets
of world data to prevent desync issues with respect to stopping a
server action but not fixing the client's view of the world.
2017-12-09 01:39:54 -07:00
Lucas Nicodemus
cdfb056903 Include feedback from @bartico6 on a magic number 2017-12-09 01:31:40 -07:00
Lucas Nicodemus
c891a81f67 Move NewProjectile into Bouncer 2017-12-09 01:19:05 -07:00
Lucas Nicodemus
914782ab9e Create hook PlaceObject; move anti-hack to Bouncer 2017-12-07 21:43:33 -07:00
Lucas Nicodemus
6630b70ae1 Un-botch tab/spacing in this file. Thanks VS Code!
Now I know that if I merely open and save a file using Visual Studi
o code, it will automatically munge my tab/spaces on two lines just
for kicks. Thanks Microsoft! You're great at this!
2017-12-06 23:42:14 -07:00
Lucas Nicodemus
c46dae328d Optimize imports
I now have VSCode installed for one reason: to optimize imports.

This required:

1. Installing VSCode.
2. Installing OmniSharp in VSCode.
3. Installing .NET Core so that OmniSharp could start in VSCode.

VSCode is a Microsoft product. It doesn't ship .NET Core. Or Omni
Sharp. Instead, you have to do all of this yourself.

It's not batteries included or anything.

It's actually harder to use OmniSharp in VSCode than it is to use
it in Sublime Text. Except Sublime Text's OmniSharp maintainer
went off and abandoned the project without telling anyone at OmniS
harp. Which gave me the idea that OmniSharp still was maintained
on Sublime Text.

And I just upgraded my Sublime Text license today.

Thanks OmniSharp developer.
2017-12-06 23:37:09 -07:00
Lucas Nicodemus
a4d9f0295a Move OnTileEdit stuff to Bouncer
There are probably a few components in here that don't make sense
for bouncer (looking at you, regions code). However, it's on my todo
list rather than being an imminent thing.
2017-12-06 22:16:19 -07:00
Lucas Nicodemus
5abf0f9d8e Comment magic number 5 2017-12-06 17:07:05 -07:00
Lucas Nicodemus
1d5a013adb Seal the Bouncer inside his house 2017-12-06 17:05:29 -07:00
Lucas Nicodemus
9ba0907dc0 Fix most of the stupid comments in Bouncer 2017-12-06 17:02:23 -07:00
Lucas Nicodemus
f065e99a0e Add HealOtherPlayer hook; integrate with Bouncer 2017-12-05 11:59:27 -07:00
Lucas Nicodemus
0d2d50b3de Don't leave comments in code 2017-12-05 02:35:30 -07:00
Lucas Nicodemus
db7ae627ae Move orientable tiles into Bouncer 2017-12-05 02:35:04 -07:00
Lucas Nicodemus
758e403b66 Mark Bouncer's OnSendTileSquare as internal 2017-12-05 02:34:08 -07:00
Lucas Nicodemus
e782a07564 Move SendTileSquare handling for Bouncer into Bouncer 2017-12-05 02:32:33 -07:00