summaryrefslogtreecommitdiffstats
path: root/src/main
Commit message (Collapse)AuthorAgeLines
* Update calls to DyeColor getData and getByData. Addresses BUKKIT-2786Wesley Wolfe2013-01-05-5/+5
| | | | | 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.
* Update firework power when modifying meta. Fixes BUKKIT-3272Travis Watkins2012-12-22-1/+7
|
* Fire BlockDispenseEvent for fireworks. Adds BUKKIT-3246Travis Watkins2012-12-22-2/+38
|
* Add DispenseBehaviorFireworks and EntityFireworks for diff visibilityTravis Watkins2012-12-22-0/+147
|
* Allow fireworks to be created. Adds BUKKIT-3262feildmaster2012-12-22-0/+2
|
* One record per JukeBox.Wesley Wolfe2012-12-22-0/+1
|
* Add BlockJukeBox for diff visibilityWesley Wolfe2012-12-22-0/+76
|
* Implement API to get and set FireworkMeta on Firework entitiesfeildmaster2012-12-21-0/+30
|
* Implement Skull BlockState. Adds BUKKIT-3259meiskam2012-12-21-0/+203
|
* Added TileEntitySkull for diff visibilitymeiskam2012-12-21-0/+50
|
* Zero is not less than zero. Fixes BUKKIT-3259Wesley Wolfe2012-12-21-1/+1
|
* Check file existence before determining readOnly. Fixes BUKKIT-3255feildmaster2012-12-21-1/+1
|
* Update enchantment handling to 1.4.6. Fixes BUKKIT-3256feildmaster2012-12-21-2/+2
|
* Fix loading Items entities with an invalid item. Addresses BUKKIT-3249feildmaster2012-12-21-1/+12
|
* Don't save server properties when it's read only. Fixes BUKKIT-3250feildmaster2012-12-21-0/+5
|
* Fix command line arguments being ignored. Fixes BUKKIT-3247feildmaster2012-12-21-2/+2
|
* Add a null check for Item Entities. Fixes BUKKIT-3249feildmaster2012-12-21-0/+5
|
* Use max inventory size for new stack. Fixes BUKKIT-3240Wesley Wolfe2012-12-21-0/+1
|
* Implement 1.4.6 ItemMeta. Adds BUKKIT-3236, BUKKIT-3237Wesley Wolfe2012-12-21-58/+838
| | | | | | | | | Some meta functionality is refactored into common methods. CraftItemStack uses the ItemMetaKey identifiers for enchantments. Refactored unit test to include extra functionality; initially only checking the presence of the DelegateDeserialization annotation.
* Add API to allow plugins to request players switch to a texture pack. Adds ↵Wojciech Stryjewski2012-12-20-0/+10
| | | | | | | | | | BUKKIT-2579 The setTexturePack method causes the player's client to download and switch to a texture pack specified by a URL. Note: Players can disable server textures on their client, in which case this API would not affect them.
* Add the ability to make Enchanted Books. Fixes BUKKIT-3220feildmaster2012-12-20-4/+21
|
* Remove obsolete fix for the endfeildmaster2012-12-20-10/+0
| | | | The end was getting block offsets, causing client side issues.
* Fetch correct info for skulls in block.getDrops(). Fixes BUKKIT-3205Travis Watkins2012-12-20-3/+18
|
* [Bleeding] Fix exception in getChunkSnapshot() - sky light can be nullMike Primm2012-12-20-2/+6
|
* Filter invalid ItemStacks from Packets.feildmaster2012-12-20-1/+1
| | | | | Invalid ItemStacks are causing Fireworks to disconnect players and prevent them from reconnecting