1154 Commits

Author SHA1 Message Date
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
Olof Larsson
2d7f856436 Add ability to modify ThrownPotion properties. Adds BUKKIT-3197 2013-03-21 15:17:31 -04:00
AlphaBlend
9c1bc74618 Add method to get the source of a TNTPrimed. Adds BUKKIT-3815 2013-03-21 12:48:53 -06:00
Andre LeBlanc
f416636f06 Add Fish (Hook) entity to PlayerFishEvent. Adds BUKKIT-1025 2013-03-20 16:02:15 -07:00
nitnelave
a8f96663ee Added the hasGravity method to Blocks. Adds BUKKIT-3832 2013-03-20 18:49:25 -04:00
Edmond Poon
f8353cf498 Pulling all pending Bukkit-JavaDoc changes 2013-03-20 00:42:05 -04:00
Nate Mortensen
862c421230 BlockState for Command Blocks. Adds BUKKIT-3805. 2013-03-19 20:51:03 -06:00
GJ
1edebf7bcb Add an enum for Nether Wart growth stages. Adds BUKKIT-1599 2013-03-19 02:21:18 -04:00
Travis Watkins
1819a9e00e Add dummy /testfor command in Bukkit. Addresses BUKKIT-3813
This command only functions in command blocks so the bukkit command for it
simply spits out an error message.
2013-03-18 17:10:52 -05:00
T00thpick1
fcb5b20e27 Add per-player Weather API. Adds BUKKIT-812 2013-03-18 13:09:11 -05:00
Yariv Livay
0abbb9caa3 Add block or entity causes to BlockIgniteEvent. Addresses BUKKIT-3609, BUKKIT-3656, BUKKIT-3657 2013-03-18 13:09:11 -05:00
Michael Limiero
08bbebc658 Add InventoryPickupItemEvent. Adds BUKKIT-3798 2013-03-18 13:09:04 -05:00
Michael Limiero
5716398441 Make HopperMinecart implement InventoryHolder. Adds BUKKIT-3796 2013-03-18 12:13:28 -05:00
Travis Watkins
bd8d352d54 No @Override here in Java 1.5. 2013-03-17 22:29:05 -05:00
Chad Waters
2f8f3cf420 Add Entity.isOnGround(). Adds BUKKIT-3787 2013-03-17 22:24:22 -05:00
Travis Watkins
85af526751 Don't use deprecated interface. 2013-03-17 13:05:10 -05:00
Michael Limiero
c928810354 Add Hopper block state and inventory type. Adds BUKKIT-3749 2013-03-17 12:57:47 -05:00
feildmaster
823c6c0ec6 Validate method parameters when registering events. Fixes BUKKIT-3779 2013-03-16 17:27:42 -05:00
Wesley Wolfe
7dcf22262a Moved all specific minecart entities to sub-package.
This change is breaking for the new API for 1.5, including the interfaces for
the three new Minecart types and the name of the previously TNT_MINECART
material.

This change also deprecates the two previous specific minecart types located
in the org.bukkit.entity package. This deprecation is not a breaking change
and will still be internally supported.

Each minecart type has new javadoc to be slightly more descriptive. Included
with this are specific references to the interface for each respective
EntityType entry. Another package-info.java file has been included as well.

All specific minecart types extend minecart, each with a more descriptive
name. The naming will also follow the old convention. In addition, the
minecart with no specific designation is now more closely referred to as a
rideable minecart.
2013-03-16 02:30:31 -05:00
Travis Watkins
2cea46d97e Use proper naming convention for boolean methods. 2013-03-15 14:25:18 -05:00
Travis Watkins
94fd04448d Update Bukkit for Minecraft 1.5 2013-03-15 13:26:46 -05:00
Jeffrey Wardian
c6f2ec2eee Removed superfluous recalculation call; Fixes BUKKIT-3728
The permission attachment interface provides two methods each for setting
and unsetting permissions. Each one also provides an extra call to the
recalculatePermissions() method on the permissible, which degrades
performance.

This commit removes the duplicate call to recalculate permissions.
2013-03-12 01:07:26 -07:00
Max A
923506ece3 Convert name to lower case for removePermission; Fixes BUKKIT-3726
Permissions are stored as lower case names and referenced as such in all
appropriate methods but removePermission. This changes removePermission
to also convert names to lower case to be consistent with the rest of
the API.
2013-03-11 02:48:56 -07:00
Travis Watkins
f6399fde39 Add PlayerItemConsumeEvent. Adds BUKKIT-2349 2013-03-02 00:03:57 -06:00
Wesley Wolfe
90faffc339 Pulling all pending Bukkit-JavaDoc changes 2013-02-22 22:49:38 -06:00
Wesley Wolfe
76e82dddd9 Fix ClassCastException for malformed plugin.yml. Fixes BUKKIT-3563
If the plugin.yml gets loaded but wasn't in the form of a map, the
server would crash. This safely checks to see if it can be cast,
throwing invalid description if it cannot.
2013-02-03 04:08:10 -06:00
feildmaster
f349e7a0ad Fix invalid integers in spawnpoint command. Fixes BUKKIT-3509
getInteger returns min value on illegal number formats, so we change
behavior to throw an exception when requested.
2013-01-26 13:54:00 -06:00
EdGruberman
49d50e7b5f Only use TravelAgent if supplied; Addresses BUKKIT-3466
If there is no TravelAgent assigned, it can not be used.
2013-01-24 04:05:49 -06:00
feildmaster
0d14642362 Don't try listing something that may not exist. Fixes BUKKIT-3471
The player name may not be provided, in which case the command will
fail hard.
2013-01-23 05:51:46 -06:00
feildmaster
05c2c55fce Improve javadoc in 26 files.
Addresses:
BUKKIT-1643, BUKKIT-1868, BUKKIT-1846, BUKKIT-2632, BUKKIT-3196,
BUKKIT-3187, BUKKIT-3198, BUKKIT-3200, BUKKIT-3201 and BUKKIT-3417.
2013-01-22 16:41:00 -06:00
EdGruberman
2f6cee111d [Bleeding] Add experimental support for entity portal traveling
EntityPortalEvent is called when an entity is about to portal to a
new location. This event is cancellable on top of being able to
change the exit location.

EntityPortalExitEvent is called when exiting the portal, allowing
for adjustment of the exit velocity.
2013-01-19 06:06:22 -06:00