summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeLines
* ItemStack.asBukkitStack(null) should return Air. Fixes BUKKIT-3170feildmaster2012-12-15-4/+5
|
* Add isRecord and new material method tests.Wesley Wolfe2012-12-14-90/+122
| | | | | Cleaned up all of the CraftBukkit tests, including moving some tests from MaterialTest to PerMaterialTest.
* Fix EntityEquipment positions being reversed. Fixes BUKKIT-3157deathmarine2012-12-12-6/+6
|
* Load chunks asynchronously for players.Travis Watkins2012-12-12-22/+345
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a player triggers a chunk load via walking around or teleporting there is no need to stop everything and get this chunk on the main thread. The client is used to having to wait some time for this chunk and the server doesn't immediately do anything with it except send it to the player. At the same time chunk loading is the last major source of file IO that still runs on the main thread. These two facts make it possible to offload chunks loaded for this reason to another thread. However, not all parts of chunk loading can happen off the main thread. For this we use the new AsynchronousExecutor system to split chunk loading in to three pieces. The first is loading data from disk, decompressing it, and parsing it in to an NBT structure. The second piece is creating entities and tile entities in the chunk and adding them to the world, this is still done on the main thread. The third piece is informing everyone who requested a chunk load that the load is finished. For this we register callbacks and then run them on the main thread once the previous two stages are finished. There are still cases where a chunk is needed immediately and these will still trigger chunk loading entirely on the main thread. The most obvious case is plugins using the API to request a chunk load. We also must load the chunk immediately when something in the world tries to access it. In these cases we ignore any possibly pending or in progress chunk loading that is happening asynchronously as we will have the chunk loaded by the time they are finished. The hope is that overall this system will result in less CPU time and pauses due to blocking file IO on the main thread thus giving more consistent performance. Testing so far has shown that this also speeds up chunk loading client side although some of this is likely to be because we are sending less chunks at once for the client to process. Thanks for @ammaraskar for help with the implementation of this feature.
* Add RegionFile from mc-dev for diff visibilityTravis Watkins2012-12-12-0/+250
|
* Add utility class AsynchronousExecutorWesley Wolfe2012-12-12-0/+294
| | | | | | This class is a general purpose task execution system, that uses stages to separate processing blocks for asynchronous and synchronous executions.
* Don't run mob pickup code on players. Fixes BUKKIT-3150Travis Watkins2012-12-12-1/+2
| | | | | | | When a player has canPickUpLoot set to true the code for mob pickup is triggerd which does not know how to deal with player inventory. Since players have their own logic for picking up items we simply disable this code for them.
* Fix players not being able to pickup items due to default values.feildmaster2012-12-11-7/+16
| | | | | | | | The old flag for picking up loot was default to false, making existing players not able to pickup items. We now use this flag for Players, which gives us the problem we had in 48b46f83. To fix this, we add an incremental flag that will be cross-examined to check if the data was saved before or after the flag level was introduced. Addresses BUKKIT-3143
* Players should be able to pick up items by default. Fixes BUKKIT-3143feildmaster2012-12-10-0/+1
| | | | As an added feature, players defaulted to being able to not pick up items if the flag was false. However, since minecraft doesn't normally use the flag on players, the flag was always false.
* Missed a renamefeildmaster2012-12-10-1/+1
|
* Add EntityEquipment API. Adds BUKKIT-3103feildmaster2012-12-10-3/+213
| | | | | | | | Adds: - Getting/Setting equipment - getting/setting drop rates - getting/setting ability to pick up items -- As an added feature, players with this flag start off with a canceled PlayerPickupItemEvent
* [Bleeding] Correct getEyeHeight value. Fixes BUKKIT-3130h31ix2012-12-10-1/+1
|
* Only display help aliases when there are aliases. Fixes BUKKIT-1621feildmaster2012-12-10-3/+6
|
* Pass null help values values as empty strings to HelpTopicsfeildmaster2012-12-10-10/+10
| | | | Fixes BUKKIT-2618 and BUKKIT-2561
* [Bleeding] Fix NPE with a null bedSpawnLocation. Fixes BUKKIT-1500EdGruberman2012-12-10-2/+7
|
* Add isSolid() tests for each materialWesley Wolfe2012-12-09-0/+45
|
* Implement FurnaceExtractEvent. Adds BUKKIT-2114feildmaster2012-12-08-0/+16
|
* Add SlotFurnaceResult for diff visibilityfeildmaster2012-12-08-0/+69
|
* [Bleeding] Fix NPE in getBedSpawnLocation. Fixes BUKKIT-1949EdGruberman2012-12-08-0/+2
|
* Correctly shoot arrows with the spawnArrow Method. Fixes BUKKIT-3116Dark Arc2012-12-08-2/+5
|
* Update entity state correctly when marked as persistent. Fixes BUKKIT-3123Travis Watkins2012-12-07-0/+4
| | | | | | | | | | When a mob is marked with the persistent flag (animal or anything with setRemoveWhenFarAway(false)) the entire block of code for checking if they should be despawned is skipped. However, one part of this code updates the mob state if a player is close enough to them. It turns out this state is used by the AI system to decide if the mob should move around randomly or not. To stop mobs from being frozen in place we now update this state if the persistent flag is set as well.
* Provide a faster way to get a location. Adds BUKKIT-3120Travis Watkins2012-12-07-0/+39
| | | | | | | | | | | | | | | | Currently when a plugin wants to get the location of something it calls getLocation() which returns a new Location object. In some scenarios this can cause enough object creation/destruction churn to be a significant overhead. For this cases we add a method that updates a provided Location object so there is no object creation done. This allows well written code to work on several locations with only a single Location object getting created. Providing a more efficient way to set a location was also looked at but the current solution is the fastest we can provide. You are not required to create a new Location object every time you want to set something's location so, with proper design, you can set locations with only a single Location object being created.
* Use shooter constructor for Fireballs. Fixes BUKKIT-3121feildmaster2012-12-07-8/+6
| | | | Fixes fireballs exploding in the shooter's face and not having a shooter for the projectile. (Two birds with one stone!)
* Add the ability to launch WitherSkulls. Fixes BUKKIT-3106feildmaster2012-12-07-3/+6
|
* Fix "Commands Only" chat flag. Fixes BUKKIT-2238feildmaster2012-12-07-1/+1
| | | | Thanks for the commit @mrapple
* Implement API for wolves collar color. Adds BUKKIT-3109feildmaster2012-12-05-0/+9
|
* Don't run command blocks in empty worlds. Fixes BUKKIT-3094Travis Watkins2012-12-05-1/+6
|
* Persistence isn't just animals. Fix BUKKIT-3105feildmaster2012-12-05-1/+3
| | | | Also set to this value if the persistence hasn't been updated
* Add a custom shutdown message set in bukkit.yml. Addresses BUKKIT-3031feildmaster2012-12-05-4/+12
|
* Allow placing blocks in spawn if ops.txt is empty. Fixes BUKKIT-3004Travis Watkins2012-12-05-0/+1
|
* Ensure animals don't despawn due to old default setting.Travis Watkins2012-12-04-1/+8
| | | | | | | | | | | The old default for the persistent flag on mobs was false which was then written out to their NBT data when they were saved. We now use this data for all mobs, not just non-animal mobs. However, this means animals that spawned before that change will now start despawning like monsters do. To avoid this we add a new flag to the mob's saved data to mark if the data was saved before or after we started using it and ignore it if it was before.
* Fire EntityFormBlockEvent for FallingBlocks. Adds BUKKIT-3078Wesley Wolfe2012-12-04-5/+14
|
* Implement API for mob despawn when away from players. Adds BUKKIT-2986Travis Watkins2012-12-04-3/+11
| | | | | | | | As of 1.4 mobs have a flag to determine if they despawn when away from a player or not. Unfortunately animals still use their own system to prevent despawning instead of making use of this flag. This change modifies them to use the new system (defaults to true) and to add API for plugins to adjust this.
* Fix leaky pipes (water flow). Fixes BUKKIT-3085feildmaster2012-12-01-3/+3
| | | | (Also, fix mistranslation for VehicleBlockCollisionEvent)
* [BREAKING] Update BlockFace directions. Fixes BUKKIT-1567, BUKKIT-3069feildmaster2012-12-01-31/+31
| | | | The answer is 42
* Fix missed refactoring in EntityWitherWesley Wolfe2012-11-30-1/+1
|
* Add data values to EntityChangeBlockEvent. Adds BUKKIT-3077, BUKKIT-3076Wesley Wolfe2012-11-30-16/+16
| | | | This change affects Endermen and Silverfish, adding a data value for the block change event.
* Use carried item for endermen's changed-block's id. Fixes BUKKIT-3075Wesley Wolfe2012-11-30-1/+1
|
* Take into account if the shooter is a player before considering pvp mode for ↵feildmaster2012-11-27-3/+3
| | | | projectiles. Fixes BUKKIT-3058
* Fix multi-world sounds not being sent correctly. Fixes BUKKIT-3051feildmaster2012-11-25-1/+2
|
* Call EntityInteractEvent for Wood Buttons. Fixes BUKKIT-3022feildmaster2012-11-24-1/+12
| | | | Prior to this, there was no way to tell when arrows trigger buttons
* Fix the previous fix for "infinite 'breeding' with MonsterEggs"feildmaster2012-11-22-0/+4
|
* Call MapInitializeEvent on newly created maps. Fixes BUKKIT-2907feildmaster2012-11-21-1/+4
|
* Add ItemMapEmpty for diff visibilityfeildmaster2012-11-21-0/+34
|
* Fix teleporting entities with vehicles/passengers teleporting you illegally. ↵feildmaster2012-11-20-2/+11
| | | | | | Fixes BUKKIT-2821 Also some formatting...
* Update invalidItems array. Fixes BUKKIT-2554.EvilSeph2012-11-20-1/+1
|
* Add SPAWNER_EGG spawn reason to allow for filtering. Adds BUKKIT-3000EvilSeph2012-11-20-1/+1
|
* Fix infinite 'breeding' with MonsterEggs. Fixes BUKKIT-2997EvilSeph2012-11-20-0/+6
| | | | | | If the player is not in Creative (i.e. does not have the ability to instantly build) we need to decrement the MonsterEgg item stack when used on a breedable parent mob.
* Add a DamageEvent for falling blocks which can damage entities. Fixes ↵feildmaster2012-11-20-1/+12
| | | | BUKKIT-2781
* No teleporting people back into the server. Fixes BUKKIT-2298Wesley Wolfe2012-11-19-3/+2
| | | | | | Stale player references will add a player back into the world when teleporting them, causing a cascade of issues relating to ghost entities and servers failing to stop.