Commit Graph

721 Commits

Author SHA1 Message Date
Smove
b4530237fb Implement Locale Getter for Players 2014-02-01 18:12:22 +11:00
md_5
61a227c8c3 Add warning when null chunk buffers are encountered - most likely due to the orebfuscator plugin. 2014-02-01 18:07:22 +11:00
md_5
161e853450 In short, there isn't actually anything wrong with the async chunk compressor, it just accidentally caused console logging of errors which were previously ignored.
This commit restores that behaviour

You may be asking yourself why we are completely ignoring any errors which come this far down the pipeline.
The answer is quite simple:
Mojang did it
The default Mojang pipeline doesn't have any ChannelOutboundHandlerAdapter or similar instances, and thus nothing to handle exceptionCaught
So when a channel.write() or channel.flush() fails, the error message is actually just passed straight to the future provided.
It is then subsequently discarded, the channel closed, and no one except the user was any the wiser it actually happened!
Unfortunately for us, the default exceptionCaught in this class sends a blaring warning to the server admins indicating that it couldn't send a packet to a disconnected user!
We don't care about these warnings, if we did something wrong to disconnect the user, it is already logged in the proper location, as are broken sockets
tl;dr no need to blare warnings on each write to a broken socket
2014-02-01 17:53:32 +11:00
md_5
12358efad3 Use correct bitmask variable for orebfuscator 2014-02-01 10:44:25 +11:00
Thinkofdeath
31f53fbbbe Upstream merge 2014-01-31 20:42:29 +00:00
md_5
8decebe96e Don't allow respawning offline players 2014-01-31 18:15:33 +11:00
md_5
4864fd1c26 Sacrifice oreobfuscator performance for safety and reliability. 2014-01-31 16:07:28 +11:00
Thinkofdeath
42a026634b Correctly set arrows' current block 2014-01-30 20:42:01 +00:00
md_5
564ebde3ad Move exception logging to method body so we don't end up logging all outbound exceptions, which other plugins (cough ProtocolLib) may or may not be causing.
Also rumours this patch causes the server to break with ProtocolLib installed.
@aadnk
2014-01-30 16:02:25 +11:00
md_5
7bd5666ee2 Show full stack trace for errors during chunk caching/compression 2014-01-30 06:58:37 +11:00
md_5
a780739071 Use a crc32 of all the blocks in the chunk as our hash key. This is much more unique. 2014-01-29 12:51:20 +11:00
md-5
1bf13129a5 Merge pull request #108 from Dmck2b/PermGenLink
Add more information about changing PermGen size
2014-01-28 16:04:00 -08:00
md_5
911b500845 Fix unit tests 2014-01-29 09:08:29 +11:00
md_5
feacfb991d [Experimental] - Enable compressed bulk chunk cache.
Sort chunks a final time before sending. This gives the advantage that chunks will load as close to the player as they possibly can, and then move out, as well as increase the cache hit rate when using smaller bulk chunk limits such as the default of 5.
2014-01-29 09:04:51 +11:00
md_5
23615e1c9f Use simpler iterator 2014-01-29 08:47:29 +11:00
md_5
202b1fd11d Implement a compressed chunk cache. This still needs a lot of work to figure out a good mechanism for looking up previous chunks, however at the moment when coupled with a high bulk chunk limit, it can be effective for solving lag issues. 2014-01-29 08:47:29 +11:00
md_5
cd7bb0da14 Only 1 class is compressible, don't bother interfacing. 2014-01-29 08:38:37 +11:00
md_5
638b1724d0 Only create a single executor / compressor instance. 2014-01-29 08:38:37 +11:00
md_5
e8933c1890 Allow Configuring Chunks per Packet. This enables server owners to cram more chunks per packet, potentially leading to higher compression ratios, thus saving bandwidth and load time.
This is currently set at the Vanilla default value of 5, however initial testing seems to suggest there could be good performance / usability / bandwidth gains by setting it to its maximum value of 32768. Testers are welcome to experiment with this option, beware the placebo though!
2014-01-29 08:38:37 +11:00
md_5
82cf01b53f Implement Threaded Bulk Chunk Compression.
This offloads chunk compression to a new thread, which should help with the pauses often seen when teleporting large amounts of players.
2014-01-29 08:38:37 +11:00
Dmck2b
73d3519fca Add more information about changing PermGen size 2014-01-28 17:51:26 +00:00
md_5
6bf69c66f3 Merge tick shuffling branch into master. 2014-01-27 08:40:12 +11:00
md_5
d3f7cce233 Revert Spigot branding. 2014-01-26 21:54:02 +11:00
md_5
6eefe4e38e Allow configuring of player sample size, and default the sample to 12, the same as Vanilla. This has some performance overhead, as we have to shuffle the list each time, but this is better than the server displaying as offline! 2014-01-26 21:50:53 +11:00
md_5
ab3c5a42f7 Revert "Experimentally brand as "Spigot". This will be reverted if *any* plugin compatibility issues arise."
This reverts commit 71255cf140.
2014-01-26 21:33:46 +11:00
md_5
8e785b132f Always use real player count for displayed online players. 2014-01-26 12:48:32 +11:00
md_5
aec53a59da Initialise ping array on startup. The code to decide when to regenerate the array is a bit iffy (Mojang!), as it relies on System.nanoTime() which is not an absolute time source. 2014-01-26 12:30:38 +11:00
md_5
fa94a8a99a Adjust TPS command to start at 20tps, show * for catchup TPS, and round to 2 decimal places. 2014-01-26 12:17:55 +11:00
md_5
8832052c84 Fix Ping Player Sample to bring it back in line with Vanilla behaviour. The behaviour which Bukkit introduced recently is broken on larger servers as it introduces too many players to the list. 2014-01-26 12:14:05 +11:00
md_5
14c0d5cba9 We want to use Math.min, not max to cap displayed TPS to 20 2014-01-26 11:04:55 +11:00
md_5
71255cf140 Experimentally brand as "Spigot". This will be reverted if *any* plugin compatibility issues arise. 2014-01-26 09:17:40 +11:00
md_5
3d6f241c12 Fix double comparison issues. 2014-01-25 16:18:32 +11:00
md_5
53f2f7499c Don't allow plugins to create scoreboards async - this can crash the server. 2014-01-25 15:23:21 +11:00
brutuscat2
2f9b4a8573 TPS isn't capitalized
It makes me want to hurt someone when its written like "Tps"
2014-01-24 22:36:32 -05:00
md_5
a50a1d4c83 Implement a new TPS command which will show the average TPS over the last 1,5 and 15 minutes, using the same algorithm as the linux kernel (exponentiallialy damped moving average). 2014-01-25 14:09:21 +11:00
md_5
49f9f20d1c Add Spigot links. 2014-01-23 13:17:47 +11:00
md_5
526b404545 Move watchdog and timings code to tick method, not tick loop itself. 2014-01-22 19:23:59 +11:00
md_5
29c6c774dd Pop tick loop patch to top 2014-01-22 19:19:39 +11:00
md_5
2367cf0a3d Reapply tick loop patch. 2014-01-22 19:16:21 +11:00
Dmck2b
279df65068 Fix missing colons 2014-01-21 21:34:03 +00:00
md_5
80c8e1ac31 Don't disconnect player when we have no vanilla tab completions. 2014-01-21 15:32:54 +11:00
Thinkofdeath
d8ad596ece Don't let trees replace any block when growing 2014-01-20 20:44:11 +00:00
Dmck2b
77d030879a Allow disabling of ZombiePigmen spawning in portals 2014-01-20 20:20:14 +00:00
md_5
8f2da2ca93 Check j, not i 2014-01-20 15:42:52 +11:00
md_5
74f78b8b88 Reduce memory of hiddenPlayers map. 2014-01-20 13:50:37 +11:00
md_5
a0deef28ee Remove NextTickList processing whilst we look into an issue.
http://www.spigotmc.org/threads/lwc-locks-randomly-going-missing-after-using-1249.10505/

Catch stalling on corrupted map data / NBT arrays.
2014-01-20 13:44:41 +11:00
mikeprimm
12b6f06e81 Merge pull request #95 from SpigotMC/optimize-nextticklist
Port Optimize NextTickList processing patch for 1.7.x
2014-01-18 18:18:31 -08:00
Mike Primm
f0c97f24b8 Port Optimize NextTickList processing patch for 1.7.x 2014-01-18 13:57:03 -06:00
Thinkofdeath
027e514ebf Update chat link fix to use Bukkit's current system instead of the old one 2014-01-18 19:36:47 +00:00
Thinkofdeath
c746557f95 Support vanilla's direction tag on fireballs 2014-01-18 14:30:50 +00:00