summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeLines
* Add failing unit test for ItemMeta-repairabilityWesley Wolfe2014-01-14-0/+56
|
* Only delay removing containers. Fixes BUKKIT-5238Travis Watkins2013-12-24-2/+12
| | | | | | | | In commit f94b7af8 I delay removing the block until after running the block's cleanup code to avoid errors. However, this causes problems of its own due to blocks not being written with this in mind. To avoid blocks getting recursively removed we now only delay removing containers since they are the only ones we had problems with to begin with.
* Process block cleanup first. Fixes BUKKIT-4103Travis Watkins2013-12-24-1/+2
| | | | | | | | | | When setting a block the server sets the new block ID, calls the cleanup on the old block, then calls the placement logic for the new block. This would normally work correctly but we have logic to prevent errors that is causing one here. When trying to clean up the old block we notice the block ID has changed and try to fix things, this causes the cleanup logic to fail. To ensure cleanup happens correctly we now do all the cleanup before changing the block which avoids triggering the fixup code.
* [Bleeding] Handle custom furnace recipes separately. Fixes BUKKIT-1657, ↵t00thpick12013-12-20-3/+22
| | | | | | | | | | BUKKIT-3846 Due to vanilla blanket comparing data values, and the unspecified order of hashmap iterators, we need to run through custom recipes first, and therefore separately, to ensure that they are actually used. By not adding the custom results to the experience table, we do not override the experience gains from vanilla smelting recipes.
* [Bleeding] Fix crash involving horse passengers. Fixes BUKKIT-5212t00thpick12013-12-20-1/+1
| | | | | | Setting a horse's passenger to a non-living entity will cause a server crash when the horse ticks, we need to check that it is a living entity before casting, and skip otherwise.
* [Bleeding] Call event when reflecting fireballs. Adds BUKKIT-5214t00thpick12013-12-20-0/+12
|
* [Bleeding] Send short version string on ping. Addresses BUKKIT-5206t00thpick12013-12-20-2/+2
| | | | | | | With the update in 1.7 that improved the server ping, it was made to include a long version string for CraftBukkit. This value is too long for proper display so we now send a shortened string consisting of the server implementation and the minecraft version.
* Account for different reach limit in Survival/Creative. Fixes BUKKIT-4257EvilSeph2013-12-20-4/+6
| | | | | | | | | When we first added the reach limiter in CraftBukkit there was no difference between how far the client could reach in vanilla while in Survival or Creative. At some point in Minecraft's cycle Creative was given a block extra to work with and our protection was not updated to account for this. We need to respect the possibility of different game modes in Minecraft providing the client with varying reach distances.
* Fix attributes not clearing on death. Fixes BUKKIT-5213EvilSeph2013-12-20-1/+1
| | | | | | | | Due to an incorrect mapping of this method to a friendly name, we're unfortunately calling the wrong method within EntityPlayer.reset() to reset attributes. Instead of what we've mapped as "removeAllEffects", we should be calling EntityLiving.aP(). This mapping should be corrected in the next naming version.
* [Bleeding] Correctly generate torches on portal. Fixes BUKKIT-746t00thpick12013-12-17-4/+4
| | | | | | | In the CraftBlockState implementation, updating the blockstate onto a block will force the block state data value onto the block. Unlike vanilla which relied on block data being set when the type changed, we must instead explicitely set the data in the blockstate.
* Add new setResourcePack method. Fixes BUKKIT-5015Nate Mortensen2013-12-17-4/+6
| | | | | | | | | | | | Minecraft now uses resource packs instead of texture packs, which broke the setTexturePack method, as the client no longer listens on the MC|TPack channel. This commit fixes the issue by adding in a setResourcePack method, and by deprecating setTexturePack and rewriting it to call the newly added setResourcePack. In order to simplify the method and prevent this from happening in the future, setResourcePack calls EntityPlayer.a(String) to use the same logic as minecraft when sending resource packs.
* Process URLs as clickable. Adds BUKKIT-4917mbax2013-12-17-26/+39
| | | | | | | | | | In Minecraft 1.7, URL processing was removed from the client while the server gained the ability to designate a URL to be launched in response to clicking text. However, this functionality is not implemented in the vanilla server. This commit adds that functionality to messages sent to the client, processing URLs as clickable. Additionally, char array iteration is replaced with regex.
* Check pending blocks before falling back to world. Fixes BUKKIT-5122Travis Watkins2013-12-17-0/+14
| | | | | | | | | | When growing trees we use a BlockChangeDelegate which queues up the block changes so plugins can modify/block/log tree growing. However, we always check the actual world when checking for existing blocks. This means when the tree growing code checks to see if putting a leaf in a block is valid it may incorrectly overwrite a log block that should exist in that location. To ensure trees grow correctly we now check the delegate itself for blocks that match the queried location before checking the world.
* Fix mistranslation issue for PlayerToggleFlightEvent. Fixes BUKKIT-5172EvilSeph2013-12-17-1/+1
| | | | Thanks for pointing it out RingOfStorms!
* Remove references to chunklist. Fixes BUKKIT-5190frymaster2013-12-17-3/+0
| | | | | | | | | | 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. This commit removes chunklist from ChunkProviderServer again.
* [Bleeding] Fix incorrect Cocoa Bean orientation. Addresses BUKKIT-5182t00thpick12013-12-17-1/+6
| | | | | | | When ItemDye is used to place a Cocoa Block, the postPlace() method should not be called, as data is handled within the ItemDye class. However, if Cocoa is placed via its block item, postPlace() should still be called to mirror vanilla behavior.
* Add missed tree types for Minecraft 1.7. Adds BUKKIT-5042BlackHole2013-12-16-0/+6
| | | | | | | This commit adds support for the Tree Types that weren't added in the initial update to Minecraft 1.7. Pulled from PR #1277
* Fix generation of jungle trees. Fixes BUKKIT-5043BlackHole2013-12-16-1/+1
| | | | | | | | | Due to changes in the generation of trees, the name of the class responsible for the generation of jungle trees has changed from WorldGenMegaTree to WorldGenJungleTree. As such, references to WorldGenMegaTree need to be updated to WorldGenJungleTree to generate the correct type of tree. Pulled from PR #1277
* [Bleeding] Correct naming of sounds for 1.7. Fixes BUKKIT-5065GJ2013-12-16-30/+30
| | | | | | Several sounds were renamed in Minecraft 1.7, and have been updated accordingly. Additionally, two sounds, HURT and BREATH, were removed from Minecraft.
* Don't try to teleport to a null world. Fixes BUKKIT-5145Travis Watkins2013-12-14-1/+1
|
* [Bleeding] Return correct drops for Cocoa blocks. Fixes BUKKIT-5159t00thpick12013-12-13-0/+7
| | | | | | For Cocoa Blocks, Block.getDropType() returns the item form of the Cocoa block, rather than the Cocoa Bean item. Because of this, Cocoa blocks need to have explicit handling in order to return the proper drop contents.
* [Bleeding] Fix witches dropping empty ItemStacks on death. Fixes BUKKIT-3554GJ2013-12-13-1/+3
|
* [Bleeding] Fix Blazes not firing death events. Fixes BUKKIT-4898GJ2013-12-13-5/+6
| | | | | | | Previously, due to the way that death events were called, Blazes only fired death events when they dropped loot. This change fixes that, enabling death events for Blazes whenever they die, regardless of loot drops.
* [Bleeding] Call EntityTargetEvent for EnderDragons. Fixes BUKKIT-5160t00thpick12013-12-13-1/+14
| | | | | | EnderDragons did not call an EntityTargetEvent when they were targeting random players in the End. This commit adds that event call into the targeting code.
* Do not fire EntityDamageEvent for explosions twice. Fixes BUKKIT-5156t00thpick12013-12-13-1/+4
| | | | | | | | Explosions directly caused by LivingEntities, such as creepers and tnt lit by players, have their EntityDamageEvent explicitely handled within the Explosion class. In order to prevent double events when damage is handled for other DamageSources, we need return null for explosion based damage sources.
* Throw event when EnderCrystals harm EnderDragon. Fixes BUKKIT-4052t00thpick12013-12-13-1/+10
| | | | | | | The EntityLiving dealDamage method will not call an event for the entity damage caused by an explosion without an associated entity cause, therefore, the explosion caused by EnderCrystals needs to be explicitely handled within the EnderDragon class.
* Re-add WorldLoadEvent lost in 314051580a0a8e4745d3a539f232b552916eb302 ↵t00thpick12013-12-13-0/+4
| | | | | | | | Fixes BUKKIT-5125 In the 1.4.2 update for CraftBukkit, a missed diff resulted in the WorldLoadEvent no longer being fired for the worlds loaded on startup.
* Alter fall particles to respect visibility API. Fixes BUKKIT-5158t00thpick12013-12-13-1/+8
| | | | | | | Bukkits Visibility API should prevent players from seeing fall particles of players that they cannot see. This commit alters the handling to provide an EntityPlayer argument that is later used to determine if they are visible.
* Show fall particles while in creative mode. Fixes BUKKIT-5009t00thpick12013-12-13-1/+1
| | | | | Relocate CraftBukkit patch to fall damage when changing gamemode from creative mode.
* Only filter data from block items, not all of them. Fixes BUKKIT-5047Travis Watkins2013-12-13-7/+8
|
* Call interact event if block cannot be punched. Fixes BUKKIT-5126Travis Watkins2013-12-12-0/+10
| | | | | | | | We do ray tracing on arm swings to filter out swings that hit blocks since punching blocks has its own event handling. However, some blocks cannot be punched so the air interact type is still valid for them. Luckily these blocks all have a means to query them so add an additional check for this and don't fail the check for them.
* Rework furnace result log. Fixes BUKKIT-5115Wesley Wolfe2013-12-10-8/+10
| | | | | | | This changes the logic for furnace smelt event to consider a result of null (read: air / invalid), which will still consume an item. It also properly considers item meta in the result, instead of only checking the item data value.
* Print message on startup before loading log4jTravis Watkins2013-12-09-0/+1
| | | | | | | Log4j takes a long time to load on startup. Before it loads, the server appears to have frozen as there is no output until after. We now print a loading message before this happens to let the user know the server is actually working.
* Call event when pistons push an item frame/painting. Fixes BUKKIT-5110Travis Watkins2013-12-09-2/+12
| | | | | | | When pistons push/pull blocks they call Entity.move(float, float) to move entities out of their path. For hanging entities this code path makes them simply die and drop as an item. We now call an event in this scenario so plugins can control this behavior.
* Handle null damage events for item frames. Fixes BUKKIT-5114Travis Watkins2013-12-09-2/+4
| | | | | | | Some types of damage are handled specially so do not end up returning an event in handleEntityDamageEvent. To ensure we don't have problems with these we need to check for them and simply ignore them, as they've been handled already.
* Don't consume bonemeal if there is no crop present. Fixes BUKKIT-3790Alex Ciuba2013-12-08-5/+2
| | | | | | | Bonemeal dispense behavior already took care of decrementing the item stack, therefore we shouldn't manage the size manually. Pulled from PR #1172
* [Bleeding] Ignore Block Physics in Chunk population. Fixes BUKKIT-4923t00thpick12013-12-08-2/+13
| | | | | | Suppressing physics updates during Chunk population prevents infinite recursion due to custom Block Populators editing border blocks on chunks.
* Call BlockPlaceEvent for cocoa beans planted on log. Adds BUKKIT-5039BlackHole2013-12-08-1/+7
| | | | | | The behavior of cocoa are now aligned to be the same as other plants. Pulled from PR #1281
* Call EntityDamageEvent on ItemFrame item removal. Fixes BUKKIT-5020Starbuck Johnson2013-12-08-0/+5
| | | | | | | | Calling this event allows plugins to react to the situation by simply handling a normal damage event, possibly using existing code to handle other entity damage. Pulled from PR #1279
* Added EntityItemFrame.java for diff visibilityStarbuck Johnson2013-12-08-0/+146
|
* Set proper position of snow block. Fixes BUKKIT-5004Kodekpl2013-12-08-1/+1
| | | | | | Missed diffs when updating to 1.7. Pulled from PR #1278
* Fix BlockPhysicsEvent having incorrect changed type. Fixes BUKKIT-5063AlphaBlend2013-12-07-1/+1
| | | | | This change updates the reference to the local variable representing the block being checked when calling BlockPhysicsEvent.
* [Bleeding] Correctly generate giant mushrooms. Fixes BUKKIT-5066t00thpick12013-12-07-1/+1
| | | | | This change fixes the reference to the local variables representing the block position during large mushroom generation.
* Reintroduce disconnection flag that was removed in 1.7 update.feildmaster2013-12-06-1/+8
|
* Follow vanilla settings behavior. Fixes BUKKIT-5069Wesley Wolfe2013-12-06-59/+57
| | | | | | A vanilla server does a series of checks for the client black-listing certain chat types (commands or chat). This change changes a CB whitelist to the vanilla blacklist behavior.
* Implement Firework.detonate(). Adds BUKKIT-4538Wesley Wolfe2013-12-06-0/+8
| | | | | | This implements the detonate method from bukkit by setting the fuse timer to 0. This makes a firework explode using the normal codepath, but without waiting for the fuse.
* Correctly register Furnace Recipies. Fixes BUKKIT-5044feildmaster2013-12-05-1/+2
| | | | We should also use items, not blocks. :)
* Add new fishing enchants. Fixes BUKKIT-5035GJ2013-12-04-0/+6
|
* Correctly validate map colors. Fixes BUKKIT-4984t00thpick12013-12-03-1/+3
| | | | | | | | | | The validation check in CraftMapView.render(CraftPlayer) filters out any values less than 0. As of Minecraft 1.7, -128 through -113 are valid colors, so filtering them out prevents some of the new colors from being sent. This commit fixes the issue by adjusting the validation check to include any values less than or equal to -113. As the minimum value for a byte is -128, no invalid colors are included.
* Finish kicking player before letting their clone in. Fixes BUKKIT-4960Travis Watkins2013-12-03-0/+2
|