1184 Commits

Author SHA1 Message Date
feildmaster
a2229f5d26 Make /spreadplayers command work. Fixes BUKKIT-4720 2013-09-09 20:03:15 -05:00
Wesley Wolfe
9620ac7d3e Deprecate magic values 2013-08-28 01:44:09 -05:00
Kane York
94daac860a Use command block's world for /gamerule. Fixes BUKKIT-3274
In vanilla, gamerules are global, across all worlds. Maps created for
vanilla that use command blocks expect this behavior, which is broken
when they are placed on a world that is not the default world (world #0).

This commit changes that by using the command block's current world when
executing the command, forcing the game rules executed to be executed in
the world the command block is currently in.
2013-08-21 00:08:50 -06:00
ST-DDT
ed364a7ef7 Fix missing closing bracket in addEnchantment. Fixes BUKKIT-4126
Prior to this commit the message would display as "...(given #, bounds
are # to #". This commit changes that by adding the missing bracket to
the end of the statement. This is strictly a visual error.
2013-08-20 23:55:32 -06:00
Peter Olson
eedcead5c4 Add missing materials to Step. Fixes BUKKIT-4074
When Minecraft 1.4.6 was released, Nether Brick texturing to steps
was added. Minecraft 1.5 added Quartz texturing to steps. When Bukkit
was updated to these version the textures for steps were not applied.

Currently it is not possible to set the texture of steps to quartz
or nether brick. This commit fixes that by adding the respective values
to the allowable materials list.
2013-08-17 18:34:50 -06:00
AlphaBlend
15971ef696 Check null before grabbing metadata owning plugin. Fixes BUKKIT-4665
MetadataStoreBase throws a NullPointerException when passed a null value
for setMetaData. The intended behavior is to throw an
IllegalArgumentException. This commit changes the value's null check to
occur before referencing the owning plugin of a value.
2013-08-07 02:26:10 -05:00
Score_Under
84c6c70b90 [BREAKING] Use event class instead of event for timings. Fixes BUKKIT-4664
TimedRegisteredListener uses a reference to the first event fired. This
causes a memory leak in the server for any references that event has. This
changes TimedRegisteredListener to only store a reference to the class of
the event.

This change is intentionally a breaking change, as it is an obscure part
of the API. A non-breaking change would require the leak to be maintained
or an immediate update for any plugins using the method, as it would be an
indirect break.

A unit test is also included to check behavior of shared superclass
functionality.
2013-08-07 02:04:31 -05:00
Wesley Wolfe
e5a14e2dcc Add ConfigurationSerializable-Serializable compatibility. Adds BUKKIT-4662
This commit adds a comaptibility layer for use between
ConfigurationSerializable and Java Serializable, such that when using the
Bukkit object streams, any ConfigurationSerializable acts as if it
implements Serializable for purposes of that wrapped stream.

Included are a set of unit tests for the stream with a check for backward
compatibility across versions.
2013-08-06 18:19:15 -05:00
Wesley Wolfe
5ebcf56b9b Relax generic types for ConfigurationSerialization
The method signatures are unnecessarily strict for the generic signatures.
This change may cause a compile-time error for extending classes overriding
methods, but no byte signature or compile time call signatures change.
2013-08-06 18:19:15 -05:00
Edmond Poon
12f5b169e0 Pulling all pending Bukkit-JavaDoc changes 2013-08-03 21:46:30 -04:00
Wesley Wolfe
6a779790eb Use player as point of reference for min volume. Fixes BUKKIT-4640
When the minimum volume is being used because the distance is over a
threshold, the unit vector delta should be added to the player's
location, instead of where the command specified location.

This change makes the player's location the point of reference for
playing sounds when distance to volume scale is lower than minimum
specified volume.
2013-08-03 18:26:31 -05:00
T00thpick1
0971807a34 Add leash API. Adds BUKKIT-4459 and BUKKIT-4583 2013-08-03 15:05:34 -05:00
Wesley Wolfe
2f58bf8e3f Account for relative coordinates in PlaySound. Fixes BUKKIT-4639 2013-08-02 20:26:55 -05:00
h31ix
5c04714882 Add 1.6 effect clear functionality. Fixes BUKKIT-4473 2013-08-02 15:49:08 -05:00
h31ix
2f044fe1f8 Add 1.6 SpreadPlayers command. Fixes BUKKIT-4508 2013-08-02 15:38:55 -05:00
h31ix
8cc0d89751 Add 1.6 PlaySound command. Fixes BUKKIT-4489 2013-08-02 00:09:46 -05:00
T00thpick1
c2e5d5d9a3 Add API to control scaled health. Adds BUKKIT-4590 2013-07-21 20:18:08 -05:00
h31ix
ad59ba54d4 Add Horse API. Adds BUKKIT-4424
API has been added to interface with Horses and to modify their inventories. A new event, HorseJumpEvent, has been added to be fired whenever a horse jumps.

This commit fixes BUKKIT-4393.
2013-07-10 12:18:45 -04:00
Nate Mortensen
c2d69cded2 Update Bukkit for Minecraft 1.6.2 2013-07-08 20:00:58 -04:00
Wesley Wolfe
a892c110e5 Add scale health display API. Adds BUKKIT-4432 2013-07-03 01:15:53 -05:00
Wesley Wolfe
8de050ae87 Update Bukkit for Minecraft 1.6.1 2013-07-01 05:50:24 -05:00
Des Herriott
7a233b33b4 Add PlayerBookEditEvent. Adds BUKKIT-1995
Event related to book & quill and written book items.
2013-06-10 10:55:51 -06:00
mbax
2fb7b85434 Consider full team display name. Fixes BUKKIT-4186
Through a miscalculation, team display names were being created via
command ignoring the first word in the submitted display names.
2013-06-05 19:43:25 -05:00
riking
c1cd6ec06d 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 17:57:14 -06:00
Wesley Wolfe
a0b3182539 Pulling all pending Bukkit-JavaDoc changes 2013-05-16 04:41:09 -05:00
Score_Under
2803fae3de Move world generator warning to CraftBukkit. Fixes BUKKIT-2565 2013-04-30 17:07:48 -07:00
Peter Olson
db8f237a27 Add inverted flag support to TrapDoor. Fixes BUKKIT-3390 2013-04-18 17:21:12 -07:00
Wesley Wolfe
a3dde01dca Pulling all pending Bukkit-JavaDoc changes 2013-04-13 01:36:32 -05:00
Acrobot
e3acdd7b9a Fix off-by-one error in DyeColor. Fixes BUKKIT-3938 2013-04-12 18:27:41 -07:00
Travis Watkins
7d8585ee47 Correct 1.5 material data. Fixes BUKKIT-4004, BUKKIT-3785 2013-04-12 16:20:50 -05:00
Wesley Wolfe
d5b5f84f0c Consider first player name in leave command. Fixes BUKKIT-4051 2013-04-11 22:56:31 -05:00
Wesley Wolfe
9f29723444 Consider arguments to team leave properly. Fixes BUKKIT-3994
Two checks to argument length were changed to properly consider if the
sender is a player instead of an off-by-one logical error.
2013-04-05 12:49:59 -05:00
Wesley Wolfe
e555c4d77e Use utility method for team-join display. Fixes BUKKIT-3997
The method to make a string from a collection of strings already exists
and should be used when adding multiple players to a team.
2013-04-05 12:40:03 -05:00
crast
408e3625ba Prevent classloader leak in metadata system. Fixes BUKKIT-3854
Metadata values keep strong reference to plugins and they are not
cleared out when plugins are unloaded. This system adds weak reference
logic to allow these values to fall out of scope. In addition we get
some operations turning to O(1) "for free."
2013-04-04 14:02:53 -05:00
crast
d95dd23cac Don't cache metadata store disambiguations. Fixes BUKKIT-3841
The metadata system generates unique keys for metadata entries based on
the subject metadata is being applied to and the name of the metadata
being applied. It was assumed this would be an expensive operation so a
cache was put in place to ensure this was done as little as possible.

In reality this cache only has a benefit when you have a hit rate above
~90% and is otherwise much slower. As the implementation of the cache is
a hashmap of hashmaps it also uses a significant amount of memory which
is not worth it even for the performance increase with a high hit rate.

This commit simply removes the cache which results in speedups for most
cases and large memory savings.
2013-04-04 13:43:33 -05:00
crast
145ebaf152 Improve speed and memory use of FixedMetadataValue. Fixes BUKKIT-1460
FixedMetadataValue currently just extends LazyMetadataValue with a value
that never changes. While this works it is a lot of unneeded overhead
that causes FixedMetadataValue to be a lot slower and use a lot more
memory than one would expect. To correct this we store the value directly
in FixedMetadataValue and override the the appropriate methods to use it.

Ideally we would modify FixedMetadataValue to no longer extend
LazyMetadataValue as this would give a very large memory savings. However,
this is not currently done for backwards compatibility reasons.
2013-04-04 13:27:06 -05:00
crast
6312801224 Refactor common metadata code into base class. Fixes BUKKIT-3624
Implementing the MetadataValue interface is significant work due to
having to provide a large amount of conversion stub methods. This commit
adds a new optional abstract base class to aid in implementation.
2013-04-04 13:20:17 -05:00
mbax
073bbd5979 Add Scoreboard API and Command. Adds BUKKIT-3776, BUKKIT-3834
The implementation is designed around having both a main scoreboard and
numberous plugin managed scoreboards that can be displayed to specific
players.

Plugin managed scoreboards are active so long as a reference is kept by a
plugin, or it has been registered as a player's active scoreboard. Objects
specific to a scoreboard remain active until unregistered (which remove a
reference to the owning scoreboard), but quickly fail if accessed
post-unregistration.
2013-04-03 23:32:54 -05:00
Edmond Poon
02d11a0525 Pulling all pending Bukkit-JavaDoc changes 2013-04-02 00:11:22 -04:00
feildmaster
01ec789162 Add Effect command. Adds BUKKIT-3763 2013-03-31 19:33:05 -05:00
Travis Watkins
edfc50fa2d Add method to update state without physics update. Addresses BUKKIT-3939 2013-03-31 19:16:53 -05:00
Travis Watkins
a7885f5f25 Add Beacon BlockState for hopper events. Fixes BUKKIT-3932 2013-03-29 22:25:41 -05:00
Edmond Poon
bde69789d3 Pulling all pending Bukkit-JavaDoc changes 2013-03-27 21:12:08 -04:00
Andre LeBlanc
2bb16b29ab Allow fishing success rate to be adjustable. Adds BUKKIT-3837 2013-03-25 14:44:01 -04:00
GJ
1e7bb5a6ea Add methods to check for conflicting enchantments. Adds BUKKIT-3830 2013-03-25 07:55:59 -04:00
Patrick Seidel
d18bdf14e9 Add ability to change player item in hand. Adds BUKKIT-3318 2013-03-24 13:59:27 -04:00
riking
45147986bf Add Thorns to DamageCause - Related to BUKKIT-3505 2013-03-23 19:43:05 -07:00
Dennis Bliefernicht
97c2758abf Add InventoryMoveItemEvent. Adds BUKKIT-3765
This event is being called whenever a block or entity (e.g. hopper) tries to
move an item from one inventory to another inventory (one inventory may be
the hopper itself).
2013-03-23 16:11:39 -06:00
Xephi
6b648d14ed Add Dropper BlockState. Adds BUKKIT-3750 2013-03-21 21:43:28 -06:00
Travis Watkins
3a0c2f2e03 Map old wildcard recipe data to new 1.5 value. Fixes BUKKIT-3849 2013-03-21 21:10:23 -05:00