Commit Graph

2548 Commits

Author SHA1 Message Date
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
EvilSeph
96fd897a2f Missed a mention of Java 5. We build for Java 6, as per the Minecraft spec. 2013-07-10 19:33:35 -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
Wesley Wolfe
fdd53f9ddc Improve maps.yml. Fixes BUKKIT-4419
Additionally fixed Minecart's interface to map INVALID methods.
2013-07-03 03:55:54 -05: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
e1a3fb56b5 Minecraft spec has changed and we're required to follow. We now build with Java 6. 2013-07-02 23:45:59 -04: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
EvilSeph
f887b76a25 Updated version to 1.5.2-R1.1-SNAPSHOT for development towards next release. 2013-06-14 22:25:24 -04:00
EvilSeph
c945563f9b Updated version to 1.5.2-R1.0 in pom.xml for RB. 2013-06-14 21:54:39 -04: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
EvilSeph
56dbde3c5b Updated version to 1.5.2-R0.2-SNAPSHOT for development towards next release. 2013-05-03 18:39:32 -04:00
EvilSeph
9b9cd2dc0c Updated version to 1.5.2-R0.1 in pom.xml for BETA. 2013-05-03 17:42:59 -04:00
Travis Watkins
5ed1418bb4 Pass correct block when dispensing empty buckets. Fixes BUKKIT-3668 2013-05-03 06:45:11 -05:00
Travis Watkins
d9eb586568 Correct event handling for dispensing filled buckets. Fixes BUKKIT-4046
We only go through event creation and calling when dispensing filled buckets
if the bucket is able to place its liquid. However, the check for this is
incorrect so the event is not called when a block liquids can destroy is
in front of the dispenser. This commit fixes the check to match the checks
vanilla does when actually using the bucket.
2013-05-03 06:38:44 -05:00
Des Herriott
28fb514a4d Send block updates even when applyPhysics is false. Fixes BUKKIT-3971
The CraftBlock class is setting bit 0x4 of the update flag when bit 0x2
should in fact be set here. Bit 0x2 means "do updates"; bit 0x4 means
"don't do updates if the world is static, even when bit 0x2 is set".
2013-05-02 16:42:47 -06:00
Travis Watkins
4e7ad05111 Fix typo/logic error in previous commit 2013-05-02 13:06:21 -05:00
Travis Watkins
25ca3f41af Fix animal spawning ignoring limits. Fixes BUKKIT-4180
Minecraft 1.5.2 changed mob spawning by ignoring persistent mobs from the
mob count. In CraftBukkit all mobs that previously used a separate hard
coded persistence system were ported to instead use this one. This causes
all animals to be persistent by default and thus never be counted. To
correct this issue we consider if the mob would be considered persistent
in the hard coded system as well when deciding if a mob should count.
2013-05-02 12:24:31 -05:00
Travis Watkins
401a6809be Improve InventoryCloseEvent handling. Fixes BUKKIT-3286
Currently there are several cases where a player will have their inventory
screen closed client side but we will not call an event. To correct this
we call the event when the server is the cause of the inventory closing
instead of just when the client is the cause. We also ensure the server is
closing the inventory reliably so we get the events. Additionally this
commit also calls the event when a player disconnects which will handle
kicks, quits, and server shutdown.
2013-05-02 06:28:51 -05:00