Creating a long row of grass with vines below and then mowing it without breaking the vines below could cause a tile framing stack overflow due to all vines being cleared at once if one of them is being broken on the server or if the client simply loads the corresponding section.
Warning: this does not fix eventual existing worlds that are already in such a state.
* Init docsify
* Readme: fix build badge, remove contributors
The "all contributors" section is woefully out of date and for many
reasons, it's not something we're going to support. Going forward, we're
going to try to find a different / better / more inclusive way of doing
contributions in such a way that's meaningful to people.
* Fix build badge again
* Update experimental build download instructions
* Remove note about Travis CI being available
* Update install guide to use TShock.Server.exe.
* ∆: minor changes to setup instructions?
* Remove setup guide because it's out of date
* Update non-dev readme with instructions on using tshock
* Remove experimental downloads section from dev readme
* Add a link to github to non-dev docs
* Change example password
* Update non-dev readme with more data
* Move changelog to docs folder
* Rehead installing tshock
* Embed streamable video
* Create CNAME
* Update CNAME
* Update index to be a little more cool
* Rename homepage
* Rename changelog to changelog
* Document constileation and heaptile providers
* More command line docs
* Update developer readme
* Augment the readme
* Add nuget links
* Add a space
* What is the cost of lies?
* Modernize cli docs
* Document tile providers
* Clarify provider slowness
* Further doument tile providers
* ∆: modify markdown output for permissions to add wikilinks
* Remove AN
The Axe of Regrowth will place a `Saplings` tile object where a tree
used to be, whilst it's `createItem` does not match that of a sapling.
Added an exception to allow this interaction to succeed.
The Rubblemaker is allowed to place echo piles, which will not match
the `createTile` or `placeStyle` of the created piles (except in one
very specific case, I suppose). Added an exception to allow this
interaction to succeed.
The check for the `style` of the placement to match that of
`SelectedItem` was moved to be later on, after checking the tile type,
and only if the two exceptions above weren't triggered. It will also now
sync the tiles upon failure.
Previously, we checked if the target player was null, before checking if
their ID was out of bounds, so the check was moved to be first.
We now check if the buff being applied is within bounds.
We introduce `AddPlayerBuffWhitelist` to replace `WhitelistBuffMaxTime`,
which allows us to specify a maximum amount of ticks a buff can be
applied to another player for, and if it can be applied without the
target being in PvP. If a buff is not within this array, it is *not*
allowed to be applied by other players.
When rejecting from `OnPlayerBuff`, we send a `PlayerBuff` instead of
`PlayerAddBuff`, to sync the current buffs of the target, without
syncing the rejected one.
This would cause all `PlayerAddBuff` packets to always be rejected,
causing desync, and general annoyance, as it meant any PvP items that
applied buffs never worked.