summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeLines
* Add BlockCocoa for diff visibility.QuarterAnimal2013-01-24-0/+121
|
* Preserve source block in mushroom spread event. Fixes BUKKIT-3354QuarterAnimal2013-01-24-1/+7
|
* Properly calculate level cost for books. Fixes BUKKIT-3410feildmaster2013-01-24-0/+4
|
* Call BlockPlaceEvent for skulls the same as other blocks. BUKKIT-3406feildmaster2013-01-23-16/+7
| | | | | | | | | | When the skull BlockPlaceEvent was added it was made so the event would be called after all the data has been set, however this is a behavior change that is inconsistent with other BlockPlaceEvents. Instead, if people wish to get the block data they should schedule a task. Relates to: BUKKIT-3438
* Compensate for allow-nether/allow-end as false; Fixes BUKKIT-3466EdGruberman2013-01-23-11/+35
| | | | | | | | | | | | | When either of those settings are false, the worlds are not loaded and therefore will not be targeted for portal exits. Existing worlds are iterated directly to avoid defaulting to the first world if a direct dimension match is not found. Plugins must also specify exit from custom Bukkit worlds to comply with original commit: https://github.com/Bukkit/CraftBukkit/commit/2dc2af0 This commit introduces a constant to clarify the dependency on the CraftBukkit implementation of custom worlds having a dimension offset.
* Reload ban files when reloading the server. Adds BUKKIT-3470feildmaster2013-01-23-0/+3
|
* Return the valid max value for piston direction. Fixes BUKKIT-2191feildmaster2013-01-23-3/+3
| | | | | | By returning the following value (7) we remove the need to special case pistons in any way (other than the original purpose of this check, which is to ensure pistons have valid data)
* Refactor processBlockPlace logic. Fixes BUKKIT-3406 and BUKKIT-3454feildmaster2013-01-19-8/+14
| | | | | | | The previous logic was faulty since it lost the logic of "placing" the block. It was also taking into account data that could have been changed outside of the processing of this event, which is irrelevant to the processing of this event.
* Fix broken null contract with Jukebox.setPlaying, Fixes BUKKIT-3429feildmaster2013-01-19-3/+9
| | | | | | | | The javadocs state that a null may be used to remove the currently playing sound, however this causes a NullPointerException. It also doesn't process registering the record correctly, along with processing non-valid items.
* [Bleeding] Add experimental support for entity portal travelingEdGruberman2013-01-19-565/+422
|
* Add BlockEnderPortal for diff visibilityEdGruberman2013-01-19-0/+56
|
* Improve the item meta deserialization code-styleWesley Wolfe2013-01-18-112/+81
| | | | | | Fixed the ItemMetaFireworkTest Add set power unit tests for FireworkMeta
* Always call PotionSplashEvent. Fixes BUKKIT-3363Zloteanu Nikita2013-01-17-1/+1
| | | | | This change allows plugins to add recipients to a PotionSplashEvent when it would have otherwise had none.
* Place beds with the correct data. Fixes BUKKIT-3447feildmaster2013-01-17-1/+1
|
* Update CraftBukkit to Minecraft 1.4.7feildmaster2013-01-17-346/+80
|
* Initialize entity data before spawning them. Fixes BUKKIT-3209feildmaster2013-01-16-5/+6
| | | | | | Vanilla does the initialize before spawning everywhere except in the SpawnerCreature, our spawn event depends on this behavior to be consistent.
* Fix entities traveling sideways. Addresses BUKKIT-3443bloodmc2013-01-16-2/+2
| | | | Original: Update mappings to correct 1.4.6 version.
* Get the BlockState before changing the block. Fixes BUKKIT-3441feildmaster2013-01-16-2/+4
|
* Handle beds and doors the same way as other blocks. Fixes BUKKIT-3437feildmaster2013-01-16-19/+14
| | | | Relates to: BUKKIT-3438
* Throw BlockPlaceEvent when placing double slabs. Fixes BUKKIT-2469feildmaster2013-01-16-39/+61
|
* Add ItemStackMapTestWesley Wolfe2013-01-15-0/+121
| | | | This test was missing from c056293b38cb9a1296937d91746b175252be044a
* Spawn monsters without prematurely exiting. Fixes BUKKIT-3425cexikitin2013-01-14-1/+1
| | | | | | | By using return 0, we exit the loop prematurely preventing other creature types from being spawned if one type is set to 0. By using continue we move on to the other types and allow them to spawn properly.
* Various ItemMeta fixes.Wesley Wolfe2013-01-09-13/+15
| | | | | | | | | Fixes BUKKIT-3408, BUKKIT-3190, BUKKIT-3191, BUKKIT-3407 These changes relate mostly to semantical changes for serialization contract, exception of changing the map scaling value from byte to boolean, what it should have been in the first place. Appropriate unit tests were added for CraftMapMeta, as they were missing.
* Update unit test to reflect firework color fix. Fixes BUKKIT-3382Wesley Wolfe2013-01-05-1/+1
| | | | The ItemDye color-int array uses dye data values, not wool.
* Update calls to DyeColor getData and getByData. Addresses BUKKIT-2786Wesley Wolfe2013-01-05-7/+7
| | | | | These two methods are now deprecated and replaced by the strictly equivalent calls using wool data.
* Implement fishing experience. Adds BUKKIT-3348feildmaster2013-01-01-1/+3
|
* Move the tile entity with the falling block. Adds BUKKIT-3349feildmaster2013-01-01-0/+27
| | | | Allows for interesting things to be done with world.spawn()
* Fix "setSitting" on tameable animals. Fixes BUKKIT-1534feildmaster2013-01-01-3/+2
| | | | | | | | This makes it so animals (tame or not) will sit properly and not move around. Wild animals that are sitting may override the sitting position if they are attacking.
* Add PathfinderGoalSit for diff visibilityfeildmaster2013-01-01-0/+39
|
* [Bleeding] Fix corruption due to thread safety issues. Fixes BUKKIT-3333Mike Primm2012-12-30-3/+3
| | | | | | | | | | | | | | | | | | | | The 'tag' NBTTagCompound field of the ItemStack assumes that it is OK to save a reference to an NBT supplied via load() and assumes it is OK to supply a reference to the internal field during a save(). Neither is true, as Chunk NBT structures are required to be read-only once created (due to being written asynchronously off the server thread AND due to the potential to be passed to a new Chunk if the same chunk is reloaded before the writing of the NBT is completed by the File I/O thread). Keeping a live reference to the NBT copy passed in, or to the NBT value passed back during saving, creates serious thread safety issues which can result in corrupted data being written to the world data files. The specific issue here was uncovered by the recent change to use setName("") on the ItemStack.tag object. When a chunk is being loaded again before its save is completed, this results in name of the field in the NBT being set to "". This causes it to be saved as "" instead of "tag" resulting in it not being properly reloaded in the future which results in the itemstack losing all of its metadata.
* Return the level, not ID. Fixes BUKKIT-3326Wesley Wolfe2012-12-29-9/+12
| | | | | CraftItemStack was erroneously using the enchantment ID instead of level for the return value of remove enchantment.
* /dev/null does not accept EnchantmentThornsWesley Wolfe2012-12-29-1/+5
|
* Don't teleport entities that are considered dead. Addresses BUKKIT-1331feildmaster2012-12-29-0/+18
| | | | | | Teleportation should never be processed on dead entities. If you wish to teleport an entity, do it on a living entity. If you wish to teleport a player, set their respawn location in PlayerRespawnEvent.
* [Bleeding] Implement periodic chunk garbage collectorMike Primm2012-12-29-0/+49
| | | | | | | | | | | | | | | | | | | | | | | | This adds two settings to bukkit.yml, allowing activation and control of two chunk garbage collection triggering conditions: chunk-gc/period-in-ticks controls a periodic GC, run once every N ticks (default is 600); chunk-gc/load-threshold causes the GC to run once after every N calls to loadChunk() on a given world (this call is an API call used by plugins, and is distinct from the path taken for routine player movement-based loading). In both cases, setting to zero will disable the given GC scheduling strategy. In either case, the act of doing the GC is simply one of scanning the loaded chunks, seeing which are NOT being used by one or more players (due to view-distance) and which are not already queued for unload, and queueing them for a normal unload. Ultimately, the unload is then processed the same as if the chunk were unloaded due to leaving the view-distance range of all players, so the impact on plugins should be no different (and strategies such as handling the ChunkUnloadEvent in order to prevent unload will still work). The initial interval for the periodic GC is randomized on a per-world basis, in order to avoid all world being GCed at the same time - minimizing potential lag spikes.
* Fix persistence on tamed pets. Fixes BUKKIT-3300feildmaster2012-12-28-2/+10
| | | | | | With the persistence api introduced, pets did not have their persistence flag updated to reflect their persistence. This caused tame ocelots to not persist under specific conditions.
* Update maxhealth for entities that have variable max health. Fixes BUKKIT-3308feildmaster2012-12-27-4/+27
| | | | | | | | Slimes and wolves have health that can change based on certain conditions. So we check if their max health should be updated, and if it has been customized in any way. We also scale the wolf's health for their tail
* Fix removing enchantments causing the enchantment tag to remain.feildmaster2012-12-27-1/+2
|
* Fix discrepancies in NBT and ItemMeta. Fixes BUKKIT-3279feildmaster2012-12-27-11/+17
| | | | | | | | | | | An ItemStack gains the tag name "tag" when the stack is serialized to NBT, however items don't have a tag *until* they are serialized at least once. So to solve this, we remove the tag name when loading the NBT data. Another problem with NBT are TagLists, when transferring tag lists between the server and the client the names are lost, and so we simply don't add a name to the tag.
* Fire BlockRedstoneEvent for repeaters. Fixes BUKKIT-1157Travis Watkins2012-12-27-0/+14
|
* Add BlockDiode from mc-dev for diff visibility.Travis Watkins2012-12-27-0/+214
|
* Don't update physics until after the place event. Fixes BUKKIT-3316Wizjany2012-12-27-3/+9
| | | | | | If you cancel a BlockPlaceEvent for a sign the world is updated as if the block was placed and then destroyed. To avoid this we set the block without updating physics then apply the update after the event.
* Never remove players when unloading chunks. Fixes BUKKIT-3129cexikitin2012-12-27-3/+1
| | | | | | | | When unloading chunks we have a check to ensure we do not remove players from the world due to the issues this would cause. However, our check to see if the player is in this chunk is reversed and is in fact entirely wrong. Even if the player isn't currently in this chunk we do not want to remove them as that will still cause the same issues.
* Fix fireballs being motionless (again). Fixes BUKKIT-3299feildmaster2012-12-25-7/+10
| | | | | | The key "direction" incorrectly mapped to variables that were already set in the entity. In order to prevent loading incorrect data we renamed "direction" to "power."
* Perform permission removals after the quit event. Fixes BUKKIT-3303feildmaster2012-12-24-4/+1
| | | | | | | The player would have no permissions (other than their OP status) when checked in the Quit event. This is because we removed permissions before the event occurred. By calling it afterwards, we can persist the data until the server finally removes the player.
* Fix Skull BlockState setting illegal values on owner.feildmaster2012-12-24-2/+2
|
* Fix fireworks being short lived. Fixes BUKKIT-3291feildmaster2012-12-23-2/+2
|
* Properly update fireworks. Fixes BUKKIT-3289feildmaster2012-12-23-1/+3
|
* Implement entity max health methods. Adds BUKKIT-266feildmaster2012-12-23-18/+92
|
* Report valid health when getting Entity health. Fixes BUKKIT-3210feildmaster2012-12-23-1/+1
|
* Remove runner leak on async tasks. Fixes BUKKIT-3288Wesley Wolfe2012-12-23-0/+3
| | | | | | | | | | | In some situations, an async task could be cancelled with no tasks pending. This means the finally {} block from run() never gets executed properly on the last async task to have run, as it expected to be executed again. This fix takes the only spot that the task period is set to cancelled and will check to see if the task should be purged from the runners list.