Commit Graph

737 Commits

Author SHA1 Message Date
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
Thinkofdeath 0fbde2862d Add /tellraw to the vanilla commands defaults 2014-01-18 13:21:13 +00:00
md_5 49ae0093db Add getRawAddress back 2014-01-17 09:46:59 +11:00
Thinkofdeath 90779a43f9 Block data values that crash the client 2014-01-15 22:13:08 +00:00
md_5 65a4f51285 Upstream merge 2014-01-15 20:28:26 +11:00
Thinkofdeath fc5cf5a518 Move replace-commands to commands.replace-commands 2014-01-15 09:20:19 +00:00
Thinkofdeath 21656db5d1 Fix ConcurrentModificationException while being idle kicked in a vehicle 2014-01-14 20:14:36 +00:00
md_5 af480b8b95 Revert previous change to clear chunk list on the end of each tick, make it configurable instead.
Whilst the new behaviour was technically correct as it prevented the possibility of the chunk tick list actually increasing over time, it introduced a few issues, namely the fact that it slowed growth to unreasonable levels, and interfered with the values which server admins have finally tuned, and come to enjoy over the last few years.
If it is absolutely essential that growth be halted and ticking reduced as much as possible, the config option is there for power users.
If we wish to 'fix' this by default in the future, a new chunk ticking algorithm, which actually has meaningful config options should be designed.
2014-01-14 19:16:43 +11:00
md_5 0add6ac4af Tweak tab complete disabled to only disable completion of the /command section, and not any subsequent arguments to the command, such as player names or plugin provided completions. 2014-01-13 08:57:22 +11:00
md_5 83c105ef02 Remove accidentally added code 2014-01-13 08:28:17 +11:00
md_5 58dc769bb5 Replace AutoSave Mechanism
The problem here is that MinecraftServer.save(..), will attempt to sleep whilst all pending chunks are written to disk, however due to various and complicated bugs, it will wait for an incorrect amount of chunks, which may cause it to sleep for an overly long amount of time. Instead we will mimic the save-all command in its behaviour, which is both safe and performant.
2014-01-12 21:07:27 +11:00
md_5 8bfd4a8ccb Add more code to try and Debug [Mojang] Crash Reports Crashing 2014-01-12 20:56:59 +11:00
md_5 acd5d21a06 Take 2 at fixing unbreakable code 2014-01-10 15:39:36 +11:00
md_5 1220314f79 Fix ItemStack Unbreakable Code.
This code needs brackets to be compiled correctly.
2014-01-10 15:17:23 +11:00
Thinkofdeath afe4189e46 Fix anvil collisions
This fixes the server incorrectly moving the player out of an anvil when touching it on the side. The server used the rotation of the last placed anvil instead the of the rotation of the anvil the player was touching.
2014-01-09 14:28:04 +00:00
Thinkofdeath 4ed5d54dde Allow statistics to be disabled/forced 2014-01-08 22:43:39 +00:00
md_5 1e8cb6d468 Update Client's Hand when BlockPlaceEvent Cancelled
Send a Packet103SetSlot to client when a BlockPlaceEvent is cancelled.

Fixes BUKKIT-5284

Currently, whenever a player places a block in a protected area the
equipped itemstack size on client is never updated properly since the
client thinks the block was placed. The reason this happens is because
ItemStack.matches returns true since the server does not decrement stack
size if a BlockPlaceEvent is cancelled. This causes
PlayerConnection.a(handlePlace) not to send the appropriate packet to
client which causes the bug.
2014-01-08 14:45:45 +11:00
md_5 92db88d292 Update Chest Animation when Cancelling Event
Update chest animation after cancelling InventoryOpenEvent. Fixes BUKKIT-1440

Currently if a plugin cancels an InventoryOpenEvent for vanilla chests,
the chest animation for clients is stuck in the open state since
IInventory's closeChest method is never called. To fix the issue, closeChest
is called before exiting the display GUI method.
More info can be found here
https://bukkit.atlassian.net/browse/BUKKIT-1440
2014-01-08 14:44:50 +11:00
md_5 7e43d71c76 Clear chunkTickList at the end of every tick. 2014-01-08 14:38:38 +11:00
md_5 6c0c101bff Fix orebfuscator startup message showing hide blocks instead of replace blocks 2014-01-06 11:38:59 +11:00
md_5 cd0c975a6d Fix Biome Decoration Crashes
We don't really know what affect this will have on the terrain generation, but its better than crashing and not having terrain generate at all!
2014-01-05 09:35:15 +11:00
Thinkofdeath 885ae9871e Disconnect for spam in the main thread 2014-01-03 17:33:41 +00:00
Thinkofdeath 9f71f7e3db Handle different sizes (G,K) for the PermGen warning 2013-12-28 23:54:44 +00:00
md_5 12a1363cea Revert "Use Entity.teleportTo in CraftEntity.teleport"
This reverts commit adaf7c3ae8.
2013-12-24 14:52:45 +11:00
slide23 4fd3ddc33e Add Late Bind Option
Add late-bind config option to delay binding until loading is done.
2013-12-24 10:22:53 +11:00
Andrew Krieger adaf7c3ae8 Use Entity.teleportTo in CraftEntity.teleport
Entity.teleportTo is largely stable and correct. CraftEntity.teleport,
however, still cannot properly handle cross-world teleportation. Fix it
to defer to the better code in core Minecraft.
2013-12-24 10:18:01 +11:00
md_5 d072f55caa Revert the revert for now. 2013-12-23 21:03:39 +11:00
md_5 624acbd0c8 Increase verbosity of watchdog dumps 2013-12-23 21:01:45 +11:00
md_5 cad440b56a Revert check pending blocks patch as it (may) be causing some crash issues 2013-12-23 20:19:37 +11:00
md_5 f7086eb96d Disable connected check on setScoreboard. Mojang's semi async Netty implementation can lead to race conditions, and this exception being thrown when it really shouldn't. 2013-12-23 15:58:41 +11:00
md_5 45bbe59c15 Fix missing bitshifts 2013-12-23 15:43:33 +11:00
md_5 16467dc148 Warn if PermGen may be insufficient. Since 1.7 Mojang added a lot of new classes to their jar. This, coupled with plugins, may cause the loaded classes to exceed the default perm gem of 64mb. As such we will print a small warning advising users to set a higher PermGen if they haven't already. 2013-12-23 14:08:28 +11:00
Dan Mulloy 9272a671f7 Fix Biome Decoration Crashes 2013-12-23 11:18:44 +11:00
md_5 b32968b9a0 Add option to nerfs mobs from spawners. When this option is enabled, mobs which originate from a mob spawner will not have any AI, ie: brains. They will generally only be affected by water movement, with the exception of blazes which will still emit fireballs and float up and down.
This is disabled by default as it has a strong behavioural impact.
2013-12-22 21:02:55 +11:00
md_5 7b87ab6548 Add the getCubes patch back. Turns out the user with lockups had 23k+ entities in a single chunk. 2013-12-22 10:41:48 +11:00
md_5 6a98142bd5 Fix patch tree. 2013-12-22 10:06:06 +11:00
md_5 31c9311b07 Redo previous getCubes removal. 2013-12-22 10:05:27 +11:00
md_5 7890d0a442 Fix patches some more. 2013-12-22 10:04:44 +11:00
md_5 b47555dc7a Revert "Remove getCubes patch as under some circumstances it can loop around itself forever. For anyone wishing to reimplement this patch, the rationale behind it is quite simple, get all cubes within each chunk at the same time."
This reverts commit 06233ce472.
2013-12-22 10:03:57 +11:00
DerFlash 78bc1384a7 Save ticks lived to nbttag 2013-12-22 10:00:13 +11:00
md_5 06233ce472 Remove getCubes patch as under some circumstances it can loop around itself forever. For anyone wishing to reimplement this patch, the rationale behind it is quite simple, get all cubes within each chunk at the same time. 2013-12-22 09:59:17 +11:00
md_5 2549f4c043 Force Load Chunks for Biome Decoration. May solve some random.nextInt() crashes people have been seeing. 2013-12-21 20:08:42 +11:00
md_5 b42275d94c Fix accidentally reverted mc-dev imports. 2013-12-21 19:14:34 +11:00
md_5 1c099a713b Upstream merge, nothing major. 2013-12-21 19:13:39 +11:00
Thinkofdeath ed2fd14801 Re-add the particle API 2013-12-20 21:37:22 +00:00
md_5 a1c8965df5 Stage BiomeDecorator so we can get line numbers to match for stack traces. 2013-12-19 17:45:12 +11:00
Thinkofdeath ee8495a246 Allow the console to use vanilla commands 2013-12-18 11:40:35 +00:00
md_5 8278880f0f Fall back to our own URL clicking method as it works with more cases. 2013-12-18 20:41:42 +11:00
md_5 e9cb6ec3c5 Upstream merge 2013-12-18 17:48:18 +11:00
md_5 fe00a77ac8 Invert command complete check 2013-12-18 17:24:24 +11:00
md_5 4978db4332 Log Cause of Unexpected Exceptions 2013-12-18 13:39:28 +11:00
md_5 61400aa00c Fire PreLogin Events in Offline Mode 2013-12-18 13:32:30 +11:00
Thinkofdeath eafbb2a4c1 Add VanillaCommandWrapper which allows use of vanilla commands instead of Bukkit's versions 2013-12-18 10:33:58 +11:00
frymaster bd5e1fbba9 Remove references to chunklist
Commit c576054539790bdeb35285f62863d74b48c0782d removed the chunklist collection stored in ChunkProviderServer, however it has been partially restored in some places by 7e1ac0a77129b169704c1e222ff2deb3ab6cd2d2.  As not all references to this were restored, this has caused the chunklist and chunks collections to become out of sync, resulting in a memory leak.
2013-12-18 09:30:21 +11:00
md_5 8ebb465bf0 Revert processed disconnect change - the flag is not set as reliably as it was in previous server versions. 2013-12-18 08:44:28 +11:00
md_5 db08e84804 Use the processedDisconnect flag for disconnects. This means that we will only say the player has disconnected once the server tick look has processed them as such. Fixes some issues with players quitting during join. 2013-12-17 18:25:05 +11:00
md_5 154239b0fb Allow Bungee to pass through UUIDs. This will be added to bungee in a few days, so people get a chance to update Spigot first. 2013-12-16 22:39:18 +11:00
md_5 de92a23d18 Delay creation of serverconnection until needed so that our settings can take effect. 2013-12-16 11:47:23 +11:00
md_5 37eb6b4024 Don't box / rebox on object addition 2013-12-14 19:50:33 +11:00
md_5 0e03c0defe Add an attempt at backwards compatability for (broken) NMS plugins. Also set negative no entry values as these cannot occur.
cc @aadnk
2013-12-14 19:48:13 +11:00
md_5 7899e58d02 Merge in some stuff 2013-12-14 17:58:22 +11:00
md_5 20b8330a25 Prevent Mineshaft Structure Saving.
There is very little reason to keep track of Mineshafts as the only persistent behaviour within them is through the use of mob spawners, which are of course stored within the map itself. As such we can disable them from being saved, indefinitely, until there is reason to do so.
2013-12-13 15:22:51 +11:00
md_5 8a2de3a655 Configurable Amount of Netty Threads, defaulting to 4
This brings back the option that the Spigot version of netty saw. By default Netty will try and use cores*2 threads, however if running multiple servers on the same machine, this can be too many threads. Additionally some people have 16 core servers. If 32 Netty threads are allowed in this setup, then the lock contention, and thus blocking between threads becomes much greater, leading to decreased performance.
2013-12-13 11:59:09 +11:00
md_5 994b960bb7 *aggression 2013-12-13 11:54:00 +11:00
md_5 da809d3cf0 Allow Disabling Zombie Villager Agression.
Useful for larger servers who want a nice performance boost at the expense of a little bit of gameplay mechanic changes. I believe this brings the mechanics of zombie vs villager back in line with 1.5.
2013-12-13 11:48:56 +11:00
md_5 ce85ede2bb Optimize DataWatcher
Use primitive orientated collections, as well as more effective copies across collections.
2013-12-13 11:45:53 +11:00
md_5 704728d670 Split out the configuration of engine modes 1 and 2 to eliminate the block lag seen when mining stone or wood and using engine mode 1.
Now we maintain a new list of blocks to replace with ores in engine mode 2, to ensure that we only update when players mine blocks that are potentially not an ore. We could perhaps even elimate this slight lag from mode 2 by reducing the need for calling update(x,y,z)
2013-12-13 11:28:47 +11:00
md_5 269a2f7635 Pop anti xray patch to top 2013-12-13 11:10:33 +11:00
Thinkofdeath 5b756ab152 Fix new lines break URL matching 2013-12-11 18:09:41 +00:00
Thinkofdeath dedbed0faf Fix Orebfuscator 2013-12-11 09:37:27 +00:00
md_5 3860a7b228 Bring bungee support back in line with what the protocol update had 2013-12-11 11:25:32 +11:00
md_5 5c14b02d79 Upstream merge 2013-12-10 09:36:28 +11:00
Thinkofdeath 206ba33be5 Fix the "Faster UUID for entities" patch (Fixes #81) 2013-12-09 16:19:26 +00:00
TheUnnamedDude 653ca13f16 Fix TNT crashing servers when breaking item frames 2013-12-09 11:37:51 +00:00
Thinkofdeath 8374c041ac Fix a possible error with links 2013-12-09 10:38:44 +00:00
md_5 74c808df0f Upstream merge 2013-12-09 18:01:02 +11:00
md_5 75344a14e9 Remove OS X Special Chars from Signs 2013-12-08 16:52:54 +11:00
md_5 b51765cc5d Fix crash caused by tnt destroying item frames 2013-12-06 20:32:13 +11:00
md_5 d8487572a0 Fix Jungle Tree Generation 2013-12-06 17:17:16 +11:00
md_5 50e8a5a766 Fix Jungle Tree Generation 2013-12-06 17:16:56 +11:00
ItsHarry 897d6a7ea5 Allow Teleportation of Vehicles and Passengers 2013-12-05 21:59:53 +01:00
md_5 83a93937f7 Fire EntityDamageByEntityEvent for ItemFrames. This allows them to be protected more effectively. 2013-12-05 18:41:50 +11:00
md_5 6ec37d4fe9 Dont let commands run async 2013-12-05 16:57:01 +11:00
md_5 a98a7ce919 Duplicate Disconnect Prevention. In 1.7 mojang removed the this.disconnected flag. We add it back to prevent users from forcibly disconnecting themselves in a short amount of time. 2013-12-05 16:33:50 +11:00
md_5 1e4407fd04 Fix broken async chat. Since Mojang introduced netty, but removed async packet handling, there are now only a few threads available to consume packets. Unfortunately we now have to maintain async chat support. In order to allow Async events to not kill these precious few threads, we do what we did in our Netty implementation, and offload these to their own, decoupled thread pool. 2013-12-05 13:57:12 +11:00