There is cheat detection code in GetDataHandlers.cs that
checks a fuse that will prevent people spawning new
bomb projectiles until the fuse has expired.
The issue is that 1) the fuse isn't getting compared, blocking all bomb
projectiles, and 2) The TileKill still happens clientside, so all clients
see invisible bombs and tiles getting destroyed regardless.
Removing the 'return true' code here resolves the problem, and doesn't
interfere with the fuse logic.
Fixes#1095.
Added token bucket and timer to degrade token bucket
Modified REST API rate limiting
Changed limiting to only be on token create and v2 token create
Added config options to choose time limits
Passed HttpContext to the execute method of endpoints
Made blocking failed API logins optional
Changed error codes on failed login to be ambiguous
Added config to decide whether all or failed logins are limited
Changed config variable names
Cleaned up duplicate code in REST rate limiting
Fixed my typo
Changed error 431 to 403
Obsoleted the old disable method
Added a config option to disable OnSecondUpdate logs (disable message is written only to console if set to true)
Updated all instances of the obsolete Disable method to the new Disable method
It appears that there is a whole lot of display logic in the official
Terraria StartInvasion method, which is why martian invasion wasn't
working properly.
TSAPI now contains a slighly modified startInvasion method which takes
an optional invasion size, so TShock's StartInvasion method has now
been refactored to use TSAPI's invasion, restoring martian invasion
functionality.
Fixes#1087
Seriously, when has it ever been a good idea to handle TSAPI commandline
mechanisms from a plugin? TSAPI related command line parameters need to
be handled from inside TSAPI.