summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeLines
* Add LongObjectHashMap and LongHashSetTravis Watkins2012-08-19-404/+866
| | | | | | | | | | | | | | | Replace uses of LongHashtable and LongHashset with new implementations. Remove EntryBase, LongBaseHashtable, LongHashset, and LongHashtable as they are no longer used. LongObjectHashMap does not use Entry or EntryBase classes internally for storage so has much lower object churn and greater performance. LongHashSet is not as much of performance win for our use case but for general use is up to seventeen times faster than the old implementation and is in fact faster than alternatives from "high performance" java libraries. This is being added so that if someone tries to use it in the future in a place unrelated to its current use they don't accidentally end up with something slower than the Java collections HashSet implementation.
* Use TrigMath in hotspotsTravis Watkins2012-08-19-5/+14
| | | | | Use our implementation of atan2 in AI routines as profiling shows these are hotspots and (for these cases) our implementation is much faster.
* [Bleeding] Change Vec3DPool to a stack based poolMike Primm2012-08-19-10/+61
| | | | | | | Avoid overhead of using an ArrayList and resizing it. Also allows for reuse of objects in the pool during the same tick by explicitly releasing them back to the pool. This allows for much better cache performance as well as reduced cache footprint.
* Optimize entity AI goal selectorTravis Watkins2012-08-19-24/+31
| | | | | | | | | | | Remove redundant ArrayList to avoid excessive object creation and CPU overhead, the entries are added to the list then immediately iterated through to run so just run them directly. Swap order of some conditionals to perform the more efficient check first as if it fails the list lookup will not be executed. Remove profiling hooks including some rather expensive calls to getSimpleName.
* Add iterator cache to UnsafeList and use it in hotspotsTravis Watkins2012-08-19-20/+120
| | | | | Adds a specialized iterator for the list and a pool of iterators to avoid object churn. Also optimizes the clear() method to reduce object creation.
* [Bleeding] Optimize chunk loadingMike Primm2012-08-19-0/+57
| | | | | | | | ChunkSection.e() is called once per chunk section loaded and is quite expensive (about 20% of CPU time for loading the chunk). This changes the logic to add a fast path when extended block data is not being used and reorganizes the loops for more optimal array traversal. Overall this saves about 20-30% CPU time in this method.
* Add files from mc-dev for diff visibilityMike Primm2012-08-19-0/+728
|
* Fix issues with chunk saving. Fixes BUKKIT-2158, BUKKIT-2018 and BUKKIT-2229Mike Primm2012-08-19-22/+33
|
* Add more detailed CrashReport for CraftBukkit. Addresses BUKKIT-2319Wesley Wolfe2012-08-17-0/+42
|
* Add CrashReport for diff visiblityWesley Wolfe2012-08-17-0/+160
|
* Don't extend pistons until data is set. Fixes BUKKIT-2153John Driscoll2012-08-17-2/+6
|
* Removed unneeded mc-dev imports. Fixes BUKKIT-682Wesley Wolfe2012-08-17-637/+0
|
* Call PlayerQuitEvent in correct location. Fixes BUKKIT-2193Travis Watkins2012-08-15-8/+7
|
* Use correct SlotType's for merchants. Fixes BUKKIT-2257feildmaster2012-08-15-0/+7
|
* Implement methods for spawning FallingBlocks and add various FallingBlock ↵feildmaster2012-08-14-4/+49
| | | | methods. Adds BUKKIT-2282
* Enable hardcore support. Fixes BUKKIT-2259feildmaster2012-08-12-1/+1
| | | | | | | - Hardcore requires a newly generated world - You will be banned if you die in a hardcore world - You will NOT be banned if you die in a non-vanilla world - Your "heart container" will not change without logging back in. (Vanilla bug)
* Update CreatureSpawner.setSpawnedType(EntityType) to 1.3feildmaster2012-08-12-4/+5
| | | | They can spawn any valid entities now. What is a "valid" entity? A "valid" entity is an EntityType with a non-null getName(). (for example: PRIMED_TNT, FALLING_BLOCK)
* Fix "block update packet" not being sent to the correct world. Fixes BUKKIT-2023feildmaster2012-08-12-1/+2
|
* Implement player speed API. Addresses BUKKIT-2205Wesley Wolfe2012-08-10-2/+37
|
* Add PlayerAbilities for diff visibilityWesley Wolfe2012-08-09-0/+54
|
* Implement BlockBreakEvent block experience. Adds BUKKIT-2033feildmaster2012-08-08-3/+73
|
* Add BlockMobSpawner and BlockOre for diff visibilityfeildmaster2012-08-08-0/+89
|
* Change socket traffic class try-catch. Fixes BUKKIT-2093Wesley Wolfe2012-08-08-9/+4
|
* Restore port to the hostname. Fixes BUKKIT-2124Wesley Wolfe2012-08-08-2/+2
|
* Re-add support for full chunk saving so the server save-alls on stop. Fixes ↵EvilSeph2012-08-08-1/+3
| | | | BUKKIT-2158
* Make periodic chunk saving less aggressive and fixed double player data ↵EvilSeph2012-08-07-5/+1
| | | | saving. Fixes BUKKIT-1994 and fixes BUKKIT-2144
* Implement new deprecated warning state configuration optionWesley Wolfe2012-08-06-1/+9
|
* Tripwire isn't redstone, only fire interact events.Travis Watkins2012-08-06-5/+0
|
* Don't force chunks to load again, causes chunk leaks with multiworld.Travis Watkins2012-08-06-1/+1
|
* Pistons no longer extend before they are pistons. Fixes BUKKIT-1999Wesley Wolfe2012-08-06-1/+1
|
* Fix dispenser removing data from items. Fixes BUKKIT-2045feildmaster2012-08-06-2/+3
|
* Don't rotate ShapedRecipes. Fixes BUKKIT-1334THDigi2012-08-06-4/+4
| | | | ShapedRecipe's getShape() always returns a 90deg rotated shape of the original shape, this commit fixes it.
* Fix "moved too quickly" detection.Travis Watkins2012-08-05-16/+9
|
* Fire events for tripwire and hooks.Travis Watkins2012-08-05-0/+51
|
* Add BlockTripwire and BlockTripwireHook from mc-dev for diff visibility.Travis Watkins2012-08-05-0/+436
|
* Fire EntityDeathEvent for pigs. Fixes BUKKIT-2100Travis Watkins2012-08-05-3/+8
|
* Fix Vec3DPool; don't pool objects indefinitely or O(n^2) clear()Wesley Wolfe2012-08-05-6/+10
|
* Add Vec3DPool for diff visibilityWesley Wolfe2012-08-05-0/+53
|
* Cease execution if block is AIR. Fixes BUKKIT-2104Wesley Wolfe2012-08-05-6/+1
|
* Put forceChunkLoad back to its original value.Travis Watkins2012-08-05-2/+8
|
* Don't use Packet56 and clear client cache on world changes.Travis Watkins2012-08-05-1/+9
|
* Fixed PlayerManager ConcurrentModificationExceptions. Fixes BUKKIT-1972Wesley Wolfe2012-08-04-3/+7
|
* Fix bounding box pool to use a dynamic cache sizeWesley Wolfe2012-08-04-6/+11
| | | | | Also changed insane array copy routine. This should reduce server lag spikes that occur periodically.
* Add AABBPool for diff visibilityWesley Wolfe2012-08-04-0/+53
|
* Don't tick chunks or entities on chunks that are queued for unload.Travis Watkins2012-08-04-3/+30
| | | | | Treat chunks in the unload queue as if they are already unloaded to prevent processing on them removing them from the unload queue and leaking.
* Avoid CME when lightning strikes by making a copy. Fixes BUKKIT-2055Travis Watkins2012-08-04-2/+4
|
* Fix chat not being cancellable when not using deprecated API.Wesley Wolfe2012-08-04-5/+9
|
* Re-implement code missing from leaving the end. Fixes BUKKIT-2003feildmaster2012-08-04-1/+22
|
* Correctly detect invalid PistonExtension's to allow removal of ↵feildmaster2012-08-04-2/+2
| | | | StickyPistons. Fixes BUKKIT-2059
* Potentially fix chunk leaking, needs further examinationfeildmaster2012-08-04-1/+1
|