3
0
Mirror von https://github.com/PaperMC/Paper.git synchronisiert 2024-12-24 15:20:11 +01:00
Commit graph

2363 Commits

Autor SHA1 Nachricht Datum
Travis Watkins
32d9db82e5 Only delay removing containers. Fixes BUKKIT-5238
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.
2013-12-24 21:51:15 -06:00
Travis Watkins
c57e45dcdc Process block cleanup first. Fixes BUKKIT-4103
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.
2013-12-24 15:24:35 -05:00
t00thpick1
1ecc59d4d9 [Bleeding] Handle custom furnace recipes separately. Fixes BUKKIT-1657, 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.
2013-12-20 23:37:58 -06:00
t00thpick1
3c209a9884 [Bleeding] Fix crash involving horse passengers. Fixes BUKKIT-5212
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.
2013-12-20 23:37:57 -06:00
t00thpick1
9bc3b7df24 [Bleeding] Call event when reflecting fireballs. Adds BUKKIT-5214 2013-12-20 23:37:56 -06:00
t00thpick1
624603cd41 [Bleeding] Send short version string on ping. Addresses BUKKIT-5206
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.
2013-12-20 23:37:56 -06:00
EvilSeph
dfcff7eabf Account for different reach limit in Survival/Creative. Fixes BUKKIT-4257
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.
2013-12-20 23:38:18 -05:00
EvilSeph
6d9a6fbb4b Fix attributes not clearing on death. Fixes BUKKIT-5213
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.
2013-12-20 15:33:06 -05:00
t00thpick1
3cd64185a9 [Bleeding] Correctly generate torches on portal. Fixes BUKKIT-746
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.
2013-12-17 22:29:12 -05:00
Nate Mortensen
8da5126282 Add new setResourcePack method. Fixes BUKKIT-5015
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.
2013-12-17 20:17:38 -07:00
mbax
091fb2ea9e Process URLs as clickable. Adds BUKKIT-4917
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.
2013-12-17 21:15:11 -05:00
Travis Watkins
0f48e9b06d Check pending blocks before falling back to world. Fixes BUKKIT-5122
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.
2013-12-17 17:36:49 -06:00
EvilSeph
4f63a5f255 Fix mistranslation issue for PlayerToggleFlightEvent. Fixes BUKKIT-5172
Thanks for pointing it out RingOfStorms!
2013-12-17 18:05:56 -05:00
frymaster
fbdc3a7a74 Remove references to chunklist. Fixes BUKKIT-5190
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.
2013-12-17 16:55:57 -06:00
t00thpick1
0e809d8318 [Bleeding] Fix incorrect Cocoa Bean orientation. Addresses BUKKIT-5182
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.
2013-12-17 16:49:38 -06:00
BlackHole
9a6d035998 Add missed tree types for Minecraft 1.7. Adds BUKKIT-5042
This commit adds support for the Tree Types that weren't added in the
initial update to Minecraft 1.7.

Pulled from PR #1277
2013-12-16 19:47:49 -07:00
BlackHole
2191599f4b Fix generation of jungle trees. Fixes BUKKIT-5043
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
2013-12-16 19:44:03 -07:00
GJ
cee6a7bab5 [Bleeding] Correct naming of sounds for 1.7. Fixes BUKKIT-5065
Several sounds were renamed in Minecraft 1.7, and have been updated
accordingly. Additionally, two sounds, HURT and BREATH, were removed from
Minecraft.
2013-12-16 19:32:29 -07:00
Travis Watkins
24ff27b408 Don't try to teleport to a null world. Fixes BUKKIT-5145 2013-12-14 17:23:34 -06:00
t00thpick1
a565486ee1 [Bleeding] Return correct drops for Cocoa blocks. Fixes BUKKIT-5159
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.
2013-12-13 22:42:39 -07:00
GJ
1ff8132bdd [Bleeding] Fix witches dropping empty ItemStacks on death. Fixes BUKKIT-3554 2013-12-13 22:21:12 -07:00
GJ
a0e50c36b9 [Bleeding] Fix Blazes not firing death events. Fixes BUKKIT-4898
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.
2013-12-13 22:21:11 -07:00
t00thpick1
ae9cd0729e [Bleeding] Call EntityTargetEvent for EnderDragons. Fixes BUKKIT-5160
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.
2013-12-13 22:20:39 -07:00
t00thpick1
1154484815 Do not fire EntityDamageEvent for explosions twice. Fixes BUKKIT-5156
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.
2013-12-13 20:05:36 -07:00
t00thpick1
c2a0396af2 Throw event when EnderCrystals harm EnderDragon. Fixes BUKKIT-4052
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.
2013-12-13 20:05:35 -07:00
t00thpick1
e6bccf6bfd Re-add WorldLoadEvent lost in 314051580a0a8e4745d3a539f232b552916eb302 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.
2013-12-13 20:05:35 -07:00
t00thpick1
1460f250cf Alter fall particles to respect visibility API. Fixes BUKKIT-5158
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.
2013-12-13 20:05:19 -07:00
t00thpick1
bdbd1808f7 Show fall particles while in creative mode. Fixes BUKKIT-5009
Relocate CraftBukkit patch to fall damage when changing
gamemode from creative mode.
2013-12-13 18:51:13 -07:00
Travis Watkins
fbe062caf5 Only filter data from block items, not all of them. Fixes BUKKIT-5047 2013-12-13 18:52:33 -06:00
Travis Watkins
f5fad449bd Call interact event if block cannot be punched. Fixes BUKKIT-5126
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.
2013-12-12 02:01:22 -06:00
Wesley Wolfe
ca4c118994 Rework furnace result log. Fixes BUKKIT-5115
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.
2013-12-10 16:21:09 -06:00
Travis Watkins
f5f71a5502 Print message on startup before loading log4j
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.
2013-12-09 14:12:34 -06:00
Travis Watkins
772867eb51 Call event when pistons push an item frame/painting. Fixes BUKKIT-5110
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.
2013-12-09 13:43:02 -06:00
Travis Watkins
305e5f4f08 Handle null damage events for item frames. Fixes BUKKIT-5114
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.
2013-12-09 13:40:52 -06:00
Alex Ciuba
80935e5c2b Don't consume bonemeal if there is no crop present. Fixes BUKKIT-3790
Bonemeal dispense behavior already took care of decrementing the item
stack, therefore we shouldn't manage the size manually.

Pulled from PR #1172
2013-12-08 23:21:11 -06:00
t00thpick1
0aa187f151 [Bleeding] Ignore Block Physics in Chunk population. Fixes BUKKIT-4923
Suppressing physics updates during Chunk population prevents
infinite recursion due to custom Block Populators editing border
blocks on chunks.
2013-12-08 22:39:50 -06:00
BlackHole
c7b4514ad3 Call BlockPlaceEvent for cocoa beans planted on log. Adds BUKKIT-5039
The behavior of cocoa are now aligned to be the same as other plants.

Pulled from PR #1281
2013-12-08 21:47:26 -06:00
Starbuck Johnson
36ef37b982 Call EntityDamageEvent on ItemFrame item removal. Fixes BUKKIT-5020
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
2013-12-08 20:58:27 -06:00
Starbuck Johnson
3cf569a33f Added EntityItemFrame.java for diff visibility 2013-12-08 20:31:38 -06:00
Kodekpl
431e5ea442 Set proper position of snow block. Fixes BUKKIT-5004
Missed diffs when updating to 1.7.

Pulled from PR #1278
2013-12-08 20:26:37 -06:00
AlphaBlend
ff0da6bad5 Fix BlockPhysicsEvent having incorrect changed type. Fixes BUKKIT-5063
This change updates the reference to the local variable representing the
block being checked when calling BlockPhysicsEvent.
2013-12-07 21:34:50 -07:00
t00thpick1
6f4d9bea2b [Bleeding] Correctly generate giant mushrooms. Fixes BUKKIT-5066
This change fixes the reference to the local variables representing the
block position during large mushroom generation.
2013-12-07 20:31:04 -06:00
feildmaster
97cb46f9f8 Reintroduce disconnection flag that was removed in 1.7 update. 2013-12-06 21:34:06 -06:00
Wesley Wolfe
70747ca28b Follow vanilla settings behavior. Fixes BUKKIT-5069
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.
2013-12-06 16:44:32 -06:00
Wesley Wolfe
dc86362c9a Implement Firework.detonate(). Adds BUKKIT-4538
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.
2013-12-06 00:05:23 -06:00
feildmaster
8a29829d1a Correctly register Furnace Recipies. Fixes BUKKIT-5044
We should also use items, not blocks. :)
2013-12-05 14:37:14 -06:00
GJ
b880a2d24c Add new fishing enchants. Fixes BUKKIT-5035 2013-12-04 21:17:54 -07:00
t00thpick1
e5353b82a7 Correctly validate map colors. Fixes BUKKIT-4984
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.
2013-12-03 18:56:36 -07:00
Travis Watkins
169fd46960 Finish kicking player before letting their clone in. Fixes BUKKIT-4960 2013-12-03 19:21:27 -06:00
Travis Watkins
bc0ac48074 Try to detect when to disable jline automatically. Fixes BUKKIT-5028 2013-12-03 11:21:26 -06:00
Nate Mortensen
39719fff74 Maintain old setType method in WorldGenerator. Fixes BUKKIT-4915
WorldGenerator setType and setTypeAndData have their arguments changed to
add in support for CraftBlockChangeDelegate, which changes the method
signature. This change in the method signature breaks any WorldGenerators
that aren't modified to use CraftBlockChangeDelegate.

This commit fixes the issue by readding the old method and maintaining the
CraftBlockChangeDelegate method.  This makes it so that there is a
compatible method for both  CraftBlockChangeDelegate WorldGenerators and
unmodified WorldGenerators.

Additionally, this commit reduces and corrects the diffs in
WorldGenerator, moving the fix for layering violations to
CraftBlockChangeDelegate.
2013-12-02 21:03:57 -07:00
toastedtruth
a721fe8473 Fix BlockCanBuildEvent returning null. Fixes BUKKIT-4972
A Block object is now passed in place of the previous id value, so the
obfuscated name for all subsequent arguments was shifted.  As such,
BlockCanBuildEvent was using the incorrect values for both the material
and the location of the event.

This is corrected by swapping the values into the correct order and
providing an id based upon the Block passed into the method.
2013-12-02 21:03:57 -07:00
toastedtruth
803268867e Fix written books crashing the server. Fixes BUKKIT-4945
CraftBukkit modifies the IRecipe interface, adding new methods, so all
classes that implement IRecipe need to be imported and modified to add the
new methods.

Extending ShapelessRecipes implements the added methods and allows
RecipeBookClone to work with the Recipes API in a way that is consistent
with similar recipes, even if the recipe information present in the API
isn't technically correct.
2013-12-02 21:03:56 -07:00
toastedtruth
579b203347 Added RecipeBookClone from nms for diff visibility 2013-12-02 21:03:56 -07:00
Aikar
9969a86e83 Use strict lookup for op permission refresh. Fixes BUKKIT-4698
Adding or removing operators was mistakenly using a loose player lookup
method, which would cause a permission refreshes on an online player whos
name starts with the name of the (offline) opped player.

Add/Remove op operations are exact name match only and the permission
refresh will behave the same way.
2013-12-02 20:34:01 -06:00
Travis Watkins
c5d8b4393a Use correct packet data for toggling flying. Fixes BUKKIT-4989 2013-12-02 20:13:07 -06:00
feildmaster
8c444f275a Correctly drop BlockBreakEvent experience. Fixes BUKKIT-4942
This was a missed diff from the update.
2013-12-02 17:29:12 -06:00
Travis Watkins
963cd5438a Catch all exceptions in jansi initialization. Fixes BUKKIT-4936
Both log4j and our own jline/jansi initialization attempt to catch
errors caused by jansi's use of native libraries. However both of them use
the Exception type which does not catch all errors. On Windows Server 2008
R2 Enterprise without installing extra software the required C++ libraries
are not available which causes an error that does not extend Exception. To
ensure we catch all errors I've changed both of these to catch Throwable
instead which gets us a working console minus jansi functionality.
2013-12-02 15:46:34 -06:00
Travis Watkins
f3865064f8 Add ConsoleAppender from log4j for diff visibility 2013-12-02 15:43:29 -06:00
Nate Mortensen
5b6f271037 Fix missed doors diff. Fixes BUKKIT-4908
l previously was the block id, however Minecraft's refactoring means that
the method is now passed a Block reference rather than the id.  l is now
the data value of the block, so the block retrieved with that value is not
the correct block to be testing.
2013-12-01 14:54:51 -07:00
feildmaster
f0af95505b Fix fishing ignoring event experience. 2013-12-01 14:46:41 -06:00
mbax
46c11eb83f Handle ChatColor-ending messages FIXES BUKKIT-4924
Now adds the component upon creation, eliminating issues where the
created component was discarded.
2013-12-01 15:24:15 -05:00
feildmaster
72b36b8b07 Correctly send player names for the tab list. Fixes BUKKIT-4925 2013-12-01 14:15:59 -06:00
Travis Watkins
6aafe7c5a1 Make console work on Windows again. Fixes BUKKIT-4956
Something the log4j ConsoleAppender does makes the console work correctly
on Windows. After trying to pull pieces of it out and run them manually
I decided to just put the appender back. We now once again start with the
ConsoleAppender then remove it immediately after starting.
2013-12-01 13:21:22 -06:00
Travis Watkins
d48bcbe642 Handle JUL logger formatting 2013-12-01 12:29:22 -06:00
Travis Watkins
c098854591 Forward exceptions to log4j, cleanup logger handling. Fixes BUKKIT-4948 2013-12-01 11:15:18 -06:00
mbax
2726696652 Update CraftBukkit to Minecraft 1.7.2 2013-11-30 19:26:12 -06:00
feildmaster
1c7698fab2 Ensure maps are stored only in the main world. Fixes BUKKIT-4872 2013-10-30 17:00:41 -04:00
Wesley Wolfe
7aabcb2ab3 Don't share WorldMapCollection. Fixes BUKKIT-4871
WorldMapCollection stores scoreboard, map (item), structure, and
village information. Scoreboards are explicitly handled globally,
while villages and structures are erroneously shared.

This commit separates the WorldMapCollections to not be shared among
custom worlds. Maps are special-cased to maintain the previous shared
behavior.
2013-10-30 04:22:00 -05:00
Wesley Wolfe
bd1389895b Add auto-save plugin redundancy detection.
This change will print a warning when a plugin induces a forced save. A
player or console forcing a save (via a command) is ignored for purposes
of printing a warning.
2013-10-23 20:22:30 -04:00
Nate Mortensen
6430c868c7 Remove redundant call to worldMaps.a(). Addresses BUKKIT-4828
The WorldMapCollection object for SecondaryWorldServers(Nether, End) is
shared with the main world, so saving it again for each SecondaryWorldServer
is redundant.

This commit removes the redundant call by checking if the WorldServer is an
instanceof SecondaryWorldServer before invoking worldMaps.a().
2013-10-19 20:01:52 -06:00
feildmaster
f4277d7105 Force item data to use a tag name. Fixes BUKKIT-4809
The recent Minecraft update rendered the
e20e50f85083dc53cb5456254bcf5781ef750daa fix incorrect by adding a
compound name to the base tag in some code. This fix changes all uses
of tag changes to explicitly use a name.
2013-10-12 03:18:45 -05:00
Phil Watson
159403e085 Call BlockFadeEvent for fire on inflammable block. Fixes BUKKIT-4835
This adds a call to fireExtinguished for fire burning out on inflamable
blocks, similar to other causes of fire fading.
2013-10-09 16:34:10 -05:00
Wesley Wolfe
ca5e0c6db0 Add exception-resilience to reading UUID. Fixes BUKKIT-4833
When a "uid.dat" file is corrupt (empty or <16 bytes), WorldNBTStorage
will silently fail to read and return null. Non-null behavior is
expected everywhere that this value is used.

This change will force a random UUID when the previous UUID cannot be
read, and getUUID to no longer silently ignore read/write exceptions.
2013-10-06 22:37:44 -05:00
Wesley Wolfe
cfa5490a58 Clarify exception message for bad hanging location. Fixes BUKKIT-4824
This change adds the location and a more specific message to the
IllegalArgumentException that gets thrown when a hanging entity is being
spawned in a location that it cannot survive.
2013-10-05 13:21:15 -05:00
Wesley Wolfe
90e8aa008a Initialize hostname on handshake. Fixes BUKKIT-4793
This restores a lost CraftBukkit diff that initializes the hostname
field used during login events.
2013-09-20 09:13:48 -05:00
feildmaster
dcb9d6a5ef Update CraftBukkit to 1.6.4 2013-09-19 20:01:02 -05:00
feildmaster
7ad5d6098d Fix villager death sound 2013-09-10 21:55:42 -05:00
feildmaster
ac73522ecf Add missing villager sounds. Addresses BUKKIT-4756 2013-09-10 21:30:36 -05:00
EvilSeph
6d700c3320 Use correct spawn reason for Zombie reinforcements. Fixes BUKKIT-4744 2013-09-10 22:24:00 -04:00
EvilSeph
b8feaf059c Remove unnecessary error logging. Fixes BUKKIT-4406 2013-09-10 22:23:59 -04:00
Phillip Schichtel
ffcd0f4502 Provide a tab completion handler for JLine. Adds BUKKIT-4168 2013-09-10 20:57:31 -05:00
FrozenBrain
5f65cd9a1c Add support for custom Hopper inventories. Fixes BUKKIT-4722
Opening a hopper inventory created by Server.createInventory will
currently have no effect as proper handling code is missing in
CraftEntityHuman for hopper inventories that aren't associated with a tile
entity or minecart. Initialization logic for hoppers is also missing from
CraftContainer, which is necessary for the opening of custom hopper
inventories.

This commit fixes the two aforementioned by adding proper handling to
CraftHumanEntity for opening inventories not associated with a tile
entity, and by adding initialization logic for hoppers to CraftContainer.
2013-09-10 20:51:35 -05:00
feildmaster
600e1524a9 Update and add new sound mappings. Fixes BUKKIT-4756 2013-09-10 20:24:34 -05:00
Brokkonaut
5f43109c0e Correct location of fire from lightning strikes. Fixes BUKKIT-4707
Previously fires spawned by lightning strikes were in the wrong locations.
This introduced the possibility of having blocks replaced when they should
not be.

EntityLightning now uses the correct locations as defined to spawn the
fires when needed.
2013-09-10 20:53:48 -04:00
feildmaster
8ae8957d15 Properly set persistence flag for bred animals. Fixes BUKKIT-4751 2013-09-10 19:42:08 -05:00
Nate Mortensen
c62375f95e Check that a vehicle is a Vehicle before casting. Fixes BUKKIT-4749
When an entity is being moved as the passenger of an entity from one
entity to another, a VehicleExitEvent is fired, but it is assumed that the
current entity is a Vehicle. However, entities can be passengers of more than
just Vehicles, which causes a ClassCastException to be thrown.

This commit fixes the issue by checking that the current entity's vehicle's
bukkitEntity is an instance of Vehicle before casting it to Vehicle.
2013-09-09 22:07:27 -05:00
Wesley Wolfe
5c861fe864 Fix improperly initialized usernames 2013-09-02 16:51:14 -05:00
T00thpick1
cd593fb1ee Set current recipe to null when a recipe isn't found. Fixes BUKKIT-2311
This commit restores the diff from 84dbc21aa71b96fd1d2ea40d624b536309118cde
that has since been lost.
2013-08-28 08:14:01 -06:00
Roger Baumgartner
2e7f66787d Return correct hasLineOfSight value for players. Fixes BUKKIT-4634
Prior to this change when a plugin called Player.hasLineOfSite() the
method would always return false because EntityHuman does not extend
EntityInsentient. This commit changes that by explicitly checking for
line of sight between two entities and returning that value.
2013-08-26 08:43:51 -06:00
T00thpick1
6482b6f0bd Fire FoodLevelChangeEvent when eating cake. Fixes BUKKIT-2242 2013-08-15 11:59:47 -06:00
T00thpick1
3fb4ccb62c Add BlockCake for diff visibility. 2013-08-15 11:59:46 -06:00
T00thpick1
ea39ca187b Return instance of CraftInventoryBeacon for Beacons. Fixes BUKKIT-4521 2013-08-07 13:42:23 -06:00
Wesley Wolfe
92f111cfed Fix missed diff for chat packets. Fixes BUKKIT-4666
This commit removes chat wrapping. It is no longer needed, as clients
properly render lines with line breaks.

This commit also changes an outgoing chat message to use the vanilla
behavior for indicating a client cannot chat with commands-only setting.
2013-08-07 04:05:56 -05:00
riking
0506b709fe Wrap plugin.getDefaultWorldGenerator in try-catch. Fixes BUKKIT-4116
If a plugin generates an exception when returning a world generator, the
server will crash. This change adds a try-catch block to keep the server
from crashing on plugin defined world generators.
2013-08-07 01:01:12 -05:00
Wesley Wolfe
066fcfe79f Validate title for custom inventories. Fixes BUKKIT-4616, BUKKIT-4663
Custom inventories currently do not validate the titles provided. Null values
cause NPEs when writing packets. Values longer than 32 characters
disconnect clients.

This change throws and IllegalArgumentException for null titles or titles
longer than 32 characters.
2013-08-06 17:11:30 -05:00
T00thpick1
5e8dd7d57d Use correct spawn reason for Villagers Breeding. Fixes BUKKIT-4113 2013-08-06 13:03:14 -06:00
T00thpick1
485e9ad93f Add PathfinderGoalMakeLove for diff visibility 2013-08-06 13:03:13 -06:00
T00thpick1
4aeb3ff63d Call unleash event for non-sitting animals. Fixes BUKKIT-4658
The unleash event is only called for animals that are sitting - ones that
receive no movement vector. This adds the missing event call for
non-sitting animals.
2013-08-06 00:38:44 -05:00
Jonatan Noponen
6d0d33b9d2 Fix off by 1 error for spawn protection. Fixes BUKKIT-4154 2013-08-03 18:23:38 -04:00
Kai Dederichs
e7539378fa Fix mistranslation in isPlayerCreated() for IronGolems. Fixes BUKKIT-4543 2013-08-03 18:23:37 -04:00
Wesley Wolfe
da5d494b36 Update players when coming into view of vehicle. Fixes BUKKIT-4628
When only considering trackers from player perspective, attach entity
packet could be sent before a packet for a respective vehicle is in view
and will, in turn, be ignored.

This adds another notification when the vehicle comes into view to cover
all cases.
2013-08-03 17:03:49 -05:00
T00thpick1
54672a75f6 Implement Leash API. Adds BUKKIT-4459, BUKKIT-4583 2013-08-03 15:03:41 -05:00
T00thpick1
f7ca953ff1 Add EntityLeash and ItemLeash for diff visibility 2013-08-03 14:48:40 -05:00
Wesley Wolfe
8a7c582d54 Ignore null sound by contract. Fixes BUKKIT-4641 2013-08-02 20:05:22 -05:00
Wesley Wolfe
93cfe3961f Indicate help is a command. Fixes BUKKIT-4642 2013-08-02 20:03:50 -05:00
EvilSeph
720a8d706a Revert to 1.5 despawning behaviour for Ocelots and Wolves. Fixes BUKKIT-4449 2013-08-02 19:21:35 -04:00
EvilSeph
a466e0aa6c Add timeout for Panic goal. Fixes BUKKIT-4531 2013-08-02 19:20:26 -04:00
EvilSeph
ab36dbb6a9 Add PathfinderGoalPanic for diff visibility. 2013-08-02 19:20:25 -04:00
h31ix
f959530f6b Add raw sound string playSound method. Adds BUKKIT-2443
A method has been added to Player which allows the server to send a sound string to the client. Assuming the client has the specified sound, it will be played. This is needed by the implementation of the /playsound command.
2013-08-02 00:13:20 -05:00
Wesley Wolfe
c8b09db844 Restore diff missed in 4176258a836062b22ac46919aefa5cc36fae78f2 2013-08-01 12:12:40 -05:00
Wesley Wolfe
69d3362335 Revert "Correct vehicle movement issues." Fixes BUKKIT-4565
This reverts commit 3d906d134417cfeefe7f71b916fee4d105e7650f.

Conflicts:
	src/main/java/net/minecraft/server/EntityTrackerEntry.java
2013-07-29 13:04:23 -05:00
Wesley Wolfe
b2be908fbb Fix NBT token for attribute names. Addresses BUKKIT-4483 2013-07-28 14:52:25 -05:00
Wesley Wolfe
1e7f2ebebd Store item attributes. Addresses BUKKIT-4523 2013-07-27 18:00:01 -05:00
T00thpick1
b6fec0467f Restore CraftBukkit diff in ItemDye. Fixes BUKKIT-4493
Change ItemDye to pass the EntityHuman for StructureGrowEvent again.
2013-07-25 18:27:00 -05:00
Wesley Wolfe
5bfd599e9f Store owning Horse in horse inventory. Fixes BUKKIT-4586 2013-07-25 18:04:09 -05:00
Wesley Wolfe
0a9758ae54 Fix CraftBukkit diffs 2013-07-23 22:07:42 -05:00
Wesley Wolfe
e88cea8402 Check interactable items before event. Fixes BUKKIT-4576
Items that cause entities to change state, including tags, chest, and
leashes, do not update the client properly following the firing of
PlayerInteractEntityEvent. This change makes the item checks occur
before the event fires, to concur with the client's assumptions.
2013-07-23 21:52:31 -05:00
T00thpick1
1192f2a53a Add API to control scaled health. Adds BUKKIT-4590
This commit implements the ability to set the scale of hearts that the
client renders.  When the Packet44UpdateAttributes packet is sent, the
max health attribute is replaced with a scaled version, to preserve the
scaled health illusion clientside.

In order to accurately display the scaled health for players, a true
health is stored within CraftPlayer, and the datawatcher now stores the
scaled health. The getHealth() method for players still returns their
true health.

Changed setHealth() within EntityLiving to appropriately handle health
for instances of EntityPlayer. Inlined a call to
setHealth(getMaxHealth()) within the EntityLiving constructor to work
around CraftEntity instantiation.

Additionally fixes the health values sent when eating food within
FoodMetaData and ItemFood, which previously sent the unscaled health;
this commit alters them to send the properly scaled health.

Additionally fixes BUKKIT-4535, BUKKIT-4536, and BUKKIT-4127
2013-07-23 21:52:17 -05:00
Jim Bilbrey
4ad3cdd4b5 Use ambient setting of potion effects. Fixes BUKKIT-4357 and BUKKIT-3653
This changes livingEntity.addPotionEffect(PotionEffect, boolean) to
construct the MobEffect using the constructor that includes the ambient
setting as supplied by the PotionEffect

This also changes livingEntity.getActivePotionEffects() to construct the
PotionEffects using the ambient setting supplied by the MobEffects.
2013-07-13 20:28:16 -04:00
Nate Mortensen
cebc247b78 Correctly fire VehicleExitEvent. Fixes BUKKIT-3761
This change makes it so that EntityHuman#setPassengerOf(Entity) invokes
its parent method when leaving vehicles so that VehicleExitEvent is fired
for players leaving vehicles.

This change also fixes BUKKIT-2110, making it so VehicleExitEvent
correctly handles cancellation. The implementation of VehicleExitEvent
completely ignored the cancellation state of the event, making it so that
cancelling the event had no effect.  Cancelling a VehicleExitEvent now
causes the entity to remain inside of the vehicle, with no visual stutter.
2013-07-13 13:29:32 -06:00
EvilSeph
67f15266da Return inGround when checking Arrow's OnGround state. Fixes BUKKIT-4439 2013-07-10 20:27:03 -04:00
EvilSeph
a31158bd0b Clear attributes on death; mistranslation issue. 2013-07-10 20:02:18 -04:00
h31ix
f9d58bf481 Implement Horse API. Adds BUKKIT-4424
API has been added to interface with Horses and to modify their inventories. Horse entities will now be recognized with the type EntityType.HORSE, and will no longer be UNKNOWN.

HorseJumpEvent, EntityDamageEvent, and EntityTameEvent are all correctly fired for horses.

This commit fixes BUKKIT-4393.
2013-07-10 13:45:52 -04:00
h31ix
a192775f0f Add PathfinderGoalTame for diff visibility. 2013-07-10 13:45:43 -04:00
EvilSeph
f665884955 Correctly set level name for 'world' option. Fixes BUKKIT-4474 2013-07-09 21:35:49 -04:00
EvilSeph
9109bd7652 Ocelots -> Ocelittle. Addresses BUKKIT-4449 2013-07-09 21:04:45 -04:00
mbax
f6a0b1e426 Update CraftBukkit to 1.6.2 2013-07-08 19:43:37 -04:00
EvilSeph
2d9a9d8cea Removed extra eat call. Fixes BUKKIT-4462 2013-07-04 19:19:36 -04:00
EvilSeph
c00db5f751 Properly clear attributes on remove and death. Fixes BUKKIT-4416 2013-07-03 00:25:31 -04:00
Wesley Wolfe
adcb293a03 Fix scaling for player health. Fixes BUKKIT-4431 2013-07-02 23:09:43 -05:00
EvilSeph
29fa46a4b2 Fix donkey/mule dupe exploit. 2013-07-02 23:38:44 -04:00
EvilSeph
7b71fc23be Added EntityHorse for diff visibility. 2013-07-02 23:38:44 -04:00
mbax
d213f7588f Update client on cancelled entity naming. Fixes BUKKIT-4396 2013-07-02 21:38:01 -04:00
mbax
774cf2a2ca Update client on cancelled leash. Fixes BUKKIT-4395 2013-07-02 21:06:17 -04:00
mbax
a15096ae1c Send event-defined MOTD/maxplayers. Fixes BUKKIT-4409
Also, revert to previous CraftBukkit functionality
2013-07-02 16:36:57 -04:00
mbax
905f00b070 Fix world preparation status output. Fixes BUKKIT-4407 2013-07-02 16:07:50 -04:00
mbax
65ccff6340 Regrow sheep wool on grass consumption. Resolves BUKKIT-4405 2013-07-02 15:01:57 -04:00
Nate Mortensen
3a9622cbdc Fix Entity persistence. Fixes BUKKIT-4397
Missed diff.
2013-07-02 11:50:37 -06:00
Wesley Wolfe
22adf8a3ce Rework max health values. Fixes BUKKIT-4398 2013-07-02 12:34:40 -05:00
Wesley Wolfe
e79d26d7d7 Fixed NPE in BrewingStand 2013-07-01 22:29:43 -05:00
Nate Mortensen
6c09066e22 Update CraftBukkit to 1.6.1 2013-07-01 12:10:06 -05:00
Nate Mortensen
5c8498c8b7 Fix cancellation for InventoryDragEvent. Fixes BUKKIT-4332
Cancelling InventoryDragEvent causes the placed items to be lost.  This is
because the cursor is set to the result prior to the event taking place,
so the items are removed from the cursor. When the event is cancelled, the
items removed from the cursor aren't placed in the inventory, and are just
lost.

This change sets the cursor back to the original cursor when the event is
cancelled.
2013-06-13 22:01:50 -05:00
Nate Mortensen
930a9e805c Correct cancellation of InventoryClickEvent. Fixes BUKKIT-4331
Cancelling an InventoryClickEvent for a single click causes the click not
to be processed by the clicked inventory. The server then doesn't
correctly identify their second click as being a double click, causing an
inconsistency between what the Player believes the inventory to be and
what the server believes the inventory to be.

This change forces an updateInventory call whenever an InventoryClickEvent
whose action is NOTHING is cancelled.  Both clicks are considered
PICKUP_ALL, so updating the inventory after the second click fixes any
inconsistencies that could arise between the client and the server.
2013-06-13 22:01:50 -05:00
ST-DDT
93c0d7e6b5 Fix negative damage from Zombies. Fixes BUKKIT-4193
Currently, the method used for calculating the damage of zombies is scaled
to their health, but it uses the default max health rather than the real
max health value. If zombies have more health than the default max health
value, the amount of damage they deal becomes negative.

This is caused by EntityZombie.getMaxHealth() returning a hardcoded value of
20, which is the vanilla max health for zombies. Rather than using this value
when calculating zombie damage, the call is changed to instead use
((CraftLivingEntity) this.bukkitEntity).getMaxHealth(). This uses the true
maximum health of the Entity. "this.maxHealth" could be used instead of the
aforementioned method, however that creates a very unclear diff, and a
confusing change.
2013-06-13 16:53:35 -06:00
Des Herriott
045121d095 Implement PlayerBookEditEvent. Adds BUKKIT-1995 2013-06-10 12:06:37 -06:00
mbax
c55c0db86d Update blaze breathe sound. Fixes BUKKIT-4286 2013-06-05 19:45:24 -05:00
Nate Mortensen
bf4796d39e Fix creative ArrayIndexOutOfBoundsException. Fixes BUKKIT-4305
When a Player drops an ItemStack while in creative mode by placing it outside
of their inventory window, the slot number in the packet is -1. The check
that was added to avoid throwing InventoryCreativeEvent excessively didn't
take this into account, and would cause an ArrayIndexOutOfBoundsException to
be thrown when attempting to get the slot specified by the packet.

This change shorts the invocation of player.defaultContainer.getSlot(
packet107setcreativeslot.b) to only occur if the slot id is within the range
of the Inventory.  This prevents attempting to get the slot from a location
that is actually outside of the Inventory.
2013-06-04 15:58:36 -05:00
riking
991218a339 Improve events for new inventory features. Adds BUKKIT-3859
This commit brings the InventoryClickEvent up to date with the new Minecraft
changes in 1.5.

InventoryDragEvent (thanks to @YLivay for his PR) is added to represent the
new "dragging" or "painting" functionality, where if you hold an itemstack and
click-drag over several slots, the items will be split evenly (left click) or
1 each (right click).

The ClickType enum is used to represent what the client did to trigger the
event.

The InventoryAction enum is reserved for future expansion, but will be used to
indicate the approximate result of the action.

Additionally, handling of creative inventory editing is improved with the new
InventoryCreativeEvent, and handling of numberkey presses is also improved
within InventoryClickEvent and CraftItemEvent.

Also, cancelling a creative click now displays properly on the client.

Adresses BUKKIT-3692, BUKKIT-4035, BUKKIT-3859 (new 1.5 events),
BUKKIT-2659, BUKKIT-3043, BUKKIT-2659, and BUKKIT-2897 (creative click events).
2013-06-03 18:01:08 -06:00
Travis Watkins
5ed1418bb4 Pass correct block when dispensing empty buckets. Fixes BUKKIT-3668 2013-05-03 06:45:11 -05:00