Commit graph

3502 commits

Author SHA1 Message Date
Patrikkk
f538ceb793 Adding EmojiHandler to handle an exploit. Adding sendemoji permission and checks.
I know, this is not something important, but I'm going through the new packets one by one and adding events developers can work with, patching exploits, and thought this could be a core permission.
2020-06-01 15:24:02 +02:00
Patrikkk
2254df21fd Add Emoji event
This is received from the client when they are trying to display an emoji, this comes in to the server, gets processed, and the server sends back the Emote Bubble packet to the clients.
2020-06-01 14:38:29 +02:00
Chris
badba523e7
Merge branch 'general-devel' into projectilestruct-addition 2020-06-01 19:12:38 +09:30
Chris
a7166536c2
Update projectilestruct to add brief documentation 2020-06-01 19:12:14 +09:30
Chris
2edfef0dfe
Merge branch 'general-devel' into patch-10 2020-06-01 19:04:45 +09:30
Chris
26aac0dab9
Merge branch 'general-devel' into fishoutnpc-event 2020-06-01 18:58:06 +09:30
Lucas Nicodemus
dff5f043aa
Merge branch 'general-devel' into fix-bugs 2020-06-01 02:21:21 -07:00
Chris
9fb27543b9 Some refactoring from feedback 2020-06-01 18:35:58 +09:30
Chris
0770e3d125 Comment out dangerous debug code 2020-06-01 16:42:11 +09:30
Chris
e030d54bd6 Fix trapdoors too 2020-06-01 16:40:34 +09:30
Chris
e658af32ef merge general-devel into fix-sts 2020-06-01 15:21:55 +09:30
Chris
36089d96bb Fix doors for real this time.
Should also fix tile entities (such as item frames, pylons) and other tile objects.
Further, fixes a longstanding issue with SendTileSquare that resulted in half squares being sent instead of full squares, causing visual bugs and desyncs most noticeable with doors
2020-06-01 15:12:45 +09:30
Lucas Nicodemus
6ca9a98a91
Bump max player damage to 42,000 for empress of light
Based on feedback from #1936, empress of light needs to do more damage,
so we're going to boost it to a higher arbitrary number than it was
before.
2020-05-31 13:11:01 -07:00
Patrikkk
1398b1e079
Merge branch 'general-devel' into fishoutnpc-event 2020-05-31 15:52:59 +02:00
Lucas Nicodemus
ac76ccf589
Fix doors in the lamest way possible (!)
Fixes #1774.

This commit is designed to fix the clientside door desync issue. Based
on the order of events that I've been able to see, the way that door
opening works is like this:

1. Client sends a door open request.
2. Server echoes request back to client.
3. Both server and client simulate door opening.
4. The client that requests the initial door open sends a tile square to
the server for some reason.

In TShock, under all circumstances, we send a tile square back to the
client that sends one in, unless you have the
`tshock.ignore.sendtilesquare` permission. This adds a deviation: it
does not network data back if the event is just a door change. Doing
this is safe from the perspective of actual gameplay. A previous
iteration of this commit synchronized data to other clients, but that
seemed superfluous.

This does not really solve the underlying problem or answer the question
as to why sending a tile square back to the client seems to throw it
off, but it does. I was not able to replicate the desync issue anymore
with this branch. I expect that it will be safe to keep, because the
improved logic will only happen if the tile square had no effective
changes in addition to the door changes.
2020-05-31 00:40:03 -07:00
moisterrific
1cb72718c2
Add more bosses to /spawnboss
Add more bosses that has health bars/map icons to the command parameters. Added Lunatic Cultist to /spawnboss "all". Did not include Dark Mage or Ogre bosses since they have two different tier versions. Also added some abbreviations to existing bosses.
2020-05-30 17:57:16 -04:00
Zack
c999b4305c
Remove Console debug output. 2020-05-30 11:58:59 -04:00
Olink
96c7453b33 Merge branch 'general-devel' of github.com:Pryaxis/TShock into fix-bugs 2020-05-30 11:54:09 -04:00
Patrikkk
9934a3935d ProjectileStruct - Adding extra data
Can we store the type of the recent projectile as well? This could be used in my upcoming PR regarding the golf packet where I check for recently created projectiles, and their types. Having only the index is not useful in this scenario, because the projectile can already be killed, so cannot access the Main.projectile array to get the projectile type.

Can this be public instead of internal? Developers could make good use of it, instead of having to implement their own version of RecentProjectiles in their plugins.
2020-05-30 11:22:50 +02:00
Patrikkk
9a49f6ad15
Merge branch 'general-devel' into fishoutnpc-event 2020-05-30 10:53:51 +02:00
Patrikkk
791a6be831
Add additional FoodPlatter event check. Update range check. (#1941)
This is a combination of 3 commits:

* @Olink was right. Adding additional check. Modifying range check.

There are two ways to place food into a plate. One is by having it in hand (mouse) and right clicking, the other is by having the item selected in the... "inventory bar"(?) and right clicking the plate.

Tested range, if player is outside the range, they should not get their item back.

* FoodPlatterHotfix - Update IsInRange range value.

To suggestion of Olink, to consider player lag and increase the range check.

Co-authored-by: Lucas Nicodemus <shank@shanked.me>
2020-05-30 00:39:40 -07:00
Lucas Nicodemus
01e3f9c58d
Merge branch 'general-devel' into general-devel 2020-05-30 00:32:57 -07:00
Lucas Nicodemus
a0726ad8bb
Merge branch 'general-devel' into patch-7 2020-05-30 00:18:44 -07:00
Lucas Nicodemus
efeb8b6167
Merge branch 'general-devel' into patch-6 2020-05-30 00:11:18 -07:00
Lucas Nicodemus
61e7d10941
Merge branch 'general-devel' into patch-5 2020-05-30 00:02:27 -07:00
Lucas Nicodemus
f82ab41a25
Add /sync command to alleviate door related sadness
Run /sync if your doors disappear. This will resync your local client
with the server state. For more information, please see the associated
changelog entry.
2020-05-29 21:04:48 -07:00
Lucas Nicodemus
44ad2d2eff
Remove extra debug info from OnGetData
Per packet debug logs are redundant for people with the packet monitor
plugin. If you need packet monitoring, please install the packet monitor
plugin.
2020-05-29 19:52:03 -07:00
Olink
6355f2d9ea Merge branch 'general-devel' of github.com:Pryaxis/TShock into fix-bugs 2020-05-29 17:04:00 -04:00
Olink
50337a1d2f Add support for all rope coil types. 2020-05-29 17:03:48 -04:00
Olink
fd6913f7df Update GetDataHandlers ExtraValue packet handling to match the network protocol.
Update the validation logic to be accurate:
  * use pixels and not tiles
  * allow master mode
  * use npc position and not player position
Cleanup some style inconsistencies in NetHooks_SendData.
2020-05-29 16:44:03 -04:00
Patrikkk
47dd4a4345 FishOutNPC - Simplify bouncer logic. Fix check in event. 2020-05-29 12:00:33 +02:00
Chris
2e0e5596b0
Fix wall read bug in NetTile 2020-05-29 17:17:24 +09:30
Chris
ecb1a8a4e7
Update GetDataHandlers.cs 2020-05-29 17:14:56 +09:30
Chris
45e5773c23 Fix a read bug on NetTiles that causes tiles to have junk data 2020-05-29 17:12:46 +09:30
Chris
e10e9f76f3 Doors are still broken, however item frames work 2020-05-29 17:12:20 +09:30
Chris
d4a0f47e45 WIP - splitting STS into new class and processing methods 2020-05-29 14:05:43 +09:30
Chris
6e4b6e1f5e Fix paint permission check 2020-05-29 13:58:44 +09:30
Patrikkk
695ca52a9a Fix FishOutNPC bouncer debug message. 2020-05-29 03:27:19 +02:00
Patrikkk
9cd4670436 Add FishOutNPC event handler. 2020-05-29 03:25:11 +02:00
Chris
c86a0f2929
Merge branch 'general-devel' into patch-7 2020-05-29 10:02:51 +09:30
Patrikkk
a4075fd590 Revert TShockAPI.csproj to original. 2020-05-29 00:10:57 +02:00
Patrikkk
0fa8ae13d7 Implement FoodPlatter placing event.
This is called when a player is placing a fruit (item) in a plate.
Adding checks to see if they have permission to place or replace a fruit in the item.
Checks if they are within range. And a check to see if they are legitimately placing the item from their hand, and not by sending a raw packet.
2020-05-28 19:24:28 +02:00
Lucas Nicodemus
814801d894
Experimentally change spawn rules for #1849
This change applies @AxeelAnder's suggeted patch from #1845 to attempt
to resolve spawn point issues. If you remove your bed spawn point it
should send you back to the map spawn point with this.
2020-05-27 20:24:43 -07:00
Olink
079541d4c9 Initial working commit. 2020-05-27 23:05:45 -04:00
Lucas Nicodemus
720feed7af
Fix journey mode / kick on death conflict
This fixes an issue where kick/ban on hardcore/mediumcore death
penalties applied to journey mode characters unintentionally.

Fixes #1901.
2020-05-26 22:22:41 -07:00
moisterrific
51d2d9af69
Fix error in previous change
there's no setdawn, made the mistake of looking at a prev commit instead of the most current version of permissions
2020-05-26 18:51:15 -04:00
moisterrific
2c384aaaeb
Add journey permissions to trustedadmin and owner
hope im doing this right lol
2020-05-26 17:17:01 -04:00
moisterrific
1f045c9a92
Update /spawnboss to include the 2 new bosses
Added Empress of Light and Queen Slime to the list of bosses that can be spawned individually and "all". Also removed the queen case because there are two bosses with queen in their name now.
2020-05-26 15:53:58 -04:00
moisterrific
0d2b591760
Update NPCAddBuff to include Sparkle Slime debuff
It's a new cosmetic debuff added in 1.4, like Wet and Slimed that can be applied to Town NPCs. Wiki: https://terraria.gamepedia.com/Sparkle_Slime_Balloon
2020-05-26 13:45:31 -04:00
Lucas Nicodemus
3874c04a72
Replace -worldpath with -worldselectpath
This reverts commit 7ad46abced. This
reintroduces the worldpath argument as per request from #1914, but at a
different name. This is because users have configurations like this,
which no longer work:

-world + -worldpath = crash

If you want to use -worldselectionpath to specify a world, you should be
able to use -worldname, but don't use -world unless you specify an
absolute path to a world.

No matter how we solve this we get a support headache (-worldpath +
-world = crash). This temporary stopgap should work to help address
issue #1914 until we can figure out a final solution. Since users are
impacted by this change, temporarily adding this back is the best move.

To be 100% clear, though:

-world + -worldselectpath without specifying an absolute path will
result in a crash that is unhelpful. Please don't do that.
2020-05-25 11:57:45 -07:00