Commit graph

3651 Commits

Autor SHA1 Nachricht Datum
Travis Watkins
5515b0ee2b Handle double trapped chest inventory. Fixes BUKKIT-3772 2013-03-16 17:14:21 -05:00
Travis Watkins
0e60f1f7b8 Fire BlockDispenseEvent for new dispenser behaviors. Fixes BUKKIT-3774 2013-03-16 16:55:27 -05:00
Travis Watkins
fbe609bdbe Add new DispenseBehavior files from mc-dev for diff visibility. 2013-03-16 16:48:08 -05:00
Travis Watkins
ff1c1daf69 Allow data on tool items. Fixes BUKKIT-3773 2013-03-16 14:51:22 -05:00
Travis Watkins
2e47a1eb80 Comment out vanilla debug message. 2013-03-16 13:45:42 -05:00
Travis Watkins
515830cda9 Filter negative values for all items. 2013-03-16 13:26:29 -05:00
Travis Watkins
6d88d545e9 Filter data for items that shouldn't have it and filter wool.
We used to fall Item.filterData() for this but that method is meant for
converting item data to block data during placement and does the wrong
thing for this case. Instead we just see if the item should have data and
if not set it to zero. We also have to filter wool data explicitly because
clients crash when given invalid wool data.
2013-03-16 13:14:09 -05:00
Travis Watkins
a76a5bd36f Ignore invalid inventory slots. Fixes BUKKIT-3737 2013-03-16 10:28:12 -05:00
Travis Watkins
9a38f2022a Use Chest block state for trapped chests. Fixes BUKKIT-3762 2013-03-16 09:46:32 -05:00
Travis Watkins
5903b9f5ca Don't set health directly, will interfere with scoreboard system. 2013-03-16 08:57:57 -05:00
Travis Watkins
7466321212 Limit mob names to 64 chars to avoid client crash. Fixes BUKKIT-3753 2013-03-16 08:32:31 -05:00
Travis Watkins
4fa8c24e42 Always consume bonemeal when used on a sapling. Fixes BUKKIT-3755
In Minecraft 1.5 saplings do not grow with a single use of bonemeal anymore.
Our code assumes they will and only takes away bonemeal from the player
when the tree grows successfully (not cancelled by a plugin). Instead we
now always remove a bonemeal even if a plugin is the reason a tree didn't
grow as this matches the vanilla logic more closely.
2013-03-16 08:05:03 -05:00
Travis Watkins
d47849df8c Remove duplicate place logic for snow. Fixes BUKKIT-3756 2013-03-16 07:38:54 -05:00
Wesley Wolfe
2cb9cbf05c Handle the newly refactored minecarts. 2013-03-16 02:15:51 -05:00
Travis Watkins
b2c72b968e Use proper naming convention for boolean methods. 2013-03-15 14:25:37 -05:00
Travis Watkins
83d29e461c Update CraftBukkit to Minecraft 1.5 2013-03-15 13:28:59 -05:00
Wesley Wolfe
ba6e4c38cf Fix compilation error with exception names 2013-03-02 16:33:35 -06:00
Nate Mortensen
032c7366ad Use the correct CB object for ContainerBrewingStand. Fixes BUKKIT-3357 2013-03-02 16:01:14 -06:00
Eimref
cf7dfeda62 Add proper logging for custom channel exceptions. 2013-03-02 15:57:00 -06:00
Travis Watkins
f6c574dd04 Implement PlayerItemConsumeEvent. Adds BUKKIT-2349 2013-03-02 00:33:46 -06:00
Andrzej Pomirski
993e19b3fb Close inventory on teleport. FIXES BUKKIT-3021. 2013-02-10 17:22:34 -06:00
EdGruberman
d06e597ca5 Check TravelAgent.findOrCreate(Location) for null; Fixes BUKKIT-3590
If a custom TravelAgent is used and returns null for findOrCreate method
a NullPointerException will occur.
Conflicts:
	src/main/java/net/minecraft/server/PlayerList.java
2013-02-10 17:21:59 -06:00
James Clarke
5bb81b75c7 Set CraftTravelAgent.DEFAULT to a non-null value. Fixes BUKKIT-3578
Currently, CraftTravelAgent will call s() on the passed-in WorldServer in order to set DEFAULT. However, s() will always return null at this point, because WorldServer.P will still be null, as it is set after the constructor is called. Instead, we set CraftTravelAgent.DEFAULT to the instance that is being constructed.
2013-02-06 16:45:22 -06:00
feildmaster
2e99e02094 Use entity UUID instead of EntityID for metadata. Fixes BUKKIT-3582
The entity id is a non-unique, non-persistent value, and will cause
entities to lose their respective meta data on chunk unloading, and
teleportation.
2013-02-06 16:32:19 -06:00
EdGruberman
efe8e9a7f5 Always return a TravelAgent; Fixes BUKKIT-3541
Recent changes caused PlayerPortalEvent to suddenly return null
unexpectedly and could end up in NPEs resulting that did not before.
This commit addresses that situation by always ensuring a TravelAgent
instance is returned.

The TravelAgent for world 0 is returned arbitrarily in an effort to
compensate for plugins that are implementation dependent and expect some
form of a TravelAgent to be accessible in the event at all times.
2013-02-04 18:53:06 -06:00
James Clarke
4d3865a036 Fix players spawning above portals. Fixes BUKKIT-3542.
Vanilla does not check for blocks in which the player could
suffocate when changing dimension, so portals will happily spawn
players in blocks when using a portal under certain
circumstances. However, we currently check for these instances
and move the player up until they will not suffocate. This means
that players can sometimes be taken to above the target portal,
making it seem as if a portal was not created. Instead, we now
disable this suffocation check when moveToWorld is called from
changeDimension, mirroring vanilla behavior more accurately.
2013-02-04 18:53:05 -06:00
James Clarke
d661c67a70 Always use the set exit location for portal events. Fixes BUKKIT-3555. 2013-02-04 18:53:04 -06:00
James Clarke
94da64ee93 Use the result of EntityPortalExitEvent. Fixes BUKKIT-3559. 2013-02-04 18:53:03 -06:00
EvilSeph
1090e0cf46 Updated version to 1.4.7-R1.1-SNAPSHOT for development towards next release. 2013-01-30 23:44:50 -05:00
EvilSeph
416f1d6ccf Updated version to 1.4.7-R1.0 in pom.xml for RB. 2013-01-30 23:32:21 -05:00
feildmaster
b4b7cacf5e Fix NPE when getting bed spawn location. 2013-01-29 17:25:39 -06:00
feildmaster
37975946a2 Fix contract with Player.getBedSpawnLocation. Fixes BUKKIT-3525
Getting the bed spawn location is supposed to check if the bed is
valid, however, it currently did not do so.
2013-01-29 10:11:57 -06:00
feildmaster
0576395ddd When leaving the end, always target the main world. Fixes BUKKIT-3517 2013-01-29 09:48:52 -06:00
feildmaster
b0e43c8097 Make command blocks only select players on its world. Fixes BUKKIT-3515 2013-01-28 17:01:08 -06:00
EdGruberman
132fdbc4ac Target default world when returning from The End; Fixes BUKKIT-3494
Due to the having to generate new logic to avoid using the customized
PlayerConnection.moveToWorld, entities returning from The End were not
properly calculating their exit target.  This commit corrects that
logic.
2013-01-28 11:26:32 -06:00
Wesley Wolfe
50e74b3b49 Remove erroneous break statement in scheduler. Fixes BUKKIT-3395 2013-01-27 23:00:14 -06:00
feildmaster
1053a1e29d Update Fireballs to account for ExplosionPower. Fixes BUKKIT-3460
Adds BUKKIT-3516
2013-01-27 16:43:30 -06:00
feildmaster
f20d6e3595 Ignore block functions for skulls on BlockPlace. Fixes BUKKIT-3495
Skulls don't normally get block data applied to them, so we shouldn't
apply it either.
2013-01-27 11:31:27 -06:00
feildmaster
899b9c17cc Direct all BlockPlaceEvents to a singular location. Fixes BUKKIT-3438
By having a single function to process BlockPlacement logic, we make
it so that there is consistent behavior throughout all BlockPlace
events. This should allow for easier troubleshooting and less diffs
in source.

This also fixes BUKKIT-3463 by including the correct coordinates that
were clicked to the event.
2013-01-27 10:44:32 -06:00
feildmaster
528bbbdcd8 Fix TileEntities and Blocks getting out of sync. Fixes BUKKIT-3501
Also fixes: BUKKIT-3477 and BUKKIT-3488

Minecraft likes to double check that tile entities get set after they
are placed, however we didn't set tile entities until after our event
was called. This caused the world to have multiple tile entities in a
single block location; to fix this we now set tile entities before
the event.
2013-01-27 10:34:59 -06:00
QuarterAnimal
6e438ccb32 Call BlockGrowEvent for Cocoa plants. Fixes BUKKIT-2525 2013-01-24 19:57:52 -06:00
QuarterAnimal
d74cf36f1c Add BlockCocoa for diff visibility. 2013-01-24 19:57:15 -06:00
QuarterAnimal
b82375a596 Preserve source block in mushroom spread event. Fixes BUKKIT-3354 2013-01-24 19:50:21 -06:00
feildmaster
f10c986136 Properly calculate level cost for books. Fixes BUKKIT-3410 2013-01-24 18:10:03 -06:00
feildmaster
f1efe717bd Call BlockPlaceEvent for skulls the same as other blocks. BUKKIT-3406
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
2013-01-23 20:41:05 -06:00
EdGruberman
9df87d3399 Compensate for allow-nether/allow-end as false; Fixes BUKKIT-3466
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.
2013-01-23 20:11:01 -06:00
feildmaster
488e45b4ff Reload ban files when reloading the server. Adds BUKKIT-3470 2013-01-23 06:24:40 -06:00
feildmaster
641ecc4f34 Return the valid max value for piston direction. Fixes BUKKIT-2191
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)
2013-01-23 06:15:21 -06:00
feildmaster
9ba0ddc292 Refactor processBlockPlace logic. Fixes BUKKIT-3406 and BUKKIT-3454
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.
2013-01-19 08:14:17 -06:00
feildmaster
6a499c8589 Fix broken null contract with Jukebox.setPlaying, Fixes BUKKIT-3429
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.
2013-01-19 08:14:17 -06:00