Commits on Aug 17, 2014
  1. Update JavaDocs regarding teleportation of entities. Fixes BUKKIT-4210

    aviansie-ben authored and turt2live committed Jul 8, 2013
    Up until Minecraft version 1.5 it was not possible to teleport entities
    within vehicles. With the 1.5 update came the change in the Minecraft
    teleportation logic to dismount before teleporting the entity, if
    This commit simply ammends the JavaDocs for the associated CraftBukkit
    half regarding the action the teleportation methods will take before
    completing a teleport.
  2. Add ability to keep items on death via plugins. Adds BUKKIT-5724

    JeromSar authored and turt2live committed Jul 31, 2014
    When a player dies their inventory is normally scattered over the the area
    in which they died. Plugins should be able to modify this behaviour by
    defining whether or not the player's inventory will be dropped on the ground or
    waiting for the player when they eventually respawn.
    This commit adds the methods required to the PlayerDeathEvent for plugins
    to be able to incorporate the behaviour mentioned as a simple boolean
  3. Rename Fish to FishHook. Fixes BUKKIT-3856

    riking authored and turt2live committed Apr 1, 2013
    "Fish" is a badly named class to represent a fishing hook due to the
    possibility (or lack of) that Minecraft may be getting fish entities.
    This commit provides potential future compatibility by deprecating the
    existing Fish class and moving the methods to a new class: FishHook.
  4. Only loop through op players when tab completing /deop Fixes BUKKIT-5748

    bendem authored and turt2live committed Aug 6, 2014
    When tab completing /deop, a potentially large set of players is used for
    finding suitable player names. This potentially large set of players can
    cause performance concerns on servers. To fix this, only the set of
    operators should be considered for the /deop tab completion where the
    player set is much more relevant and follows suit with other commands
    which employ "more specific" player sets when possible. This commit adds
    this more efficient behaviour.
Commits on Aug 8, 2014
Commits on Jul 10, 2014
  1. Recalculate damage modifiers in event for old method. Fixes BUKKIT-5681

    amaranth committed Jul 9, 2014
    When we added the new API in EntityDamageEvent to give control over the
    various things that modify the final damage done we caused a change in
    behavior for users of the old #setDamage(double) method. Before changing
    the damage would happen before the modifiers were calculated so they would
    be based on the final damage value from the event. Now they are calculated
    at the beginning so changing the damage does not change the modifiers.
    To allow the old style and the new to coexist we now expose the vanilla
    modifer calculations to the event in the form of Function objects. These
    are used in #setDamage(double) to calculate the difference in the modifier
    between the old damage and the new and apply this difference to the current
    modifier. The difference is between the vanilla values for both damage
    values and is applied on top of the event's modifier value as this should
    make old and new API usage work together in a way that isn't surprising.
Commits on Jul 9, 2014
Commits on Jun 26, 2014
Commits on Jun 25, 2014
Commits on Jun 22, 2014
  1. Add damage modifier API in EntityDamageEvent. Adds BUKKIT-347, BUKKIT…

    Wolvereness committed Jun 2, 2014
    This commit adds API for the enchantment, armor, potion and other
    modifications to damage done to an entity. These damage modifiers are each
    editable editable via a getter and a setter. This addition allows for more
    accurate modification and monitoring of damage done to/by an entity, as it
    displays the final damage done as well.
Commits on Jun 3, 2014
  1. Rewrite BukkitMirrorTest

    Wolvereness committed Jun 3, 2014
Commits on Jun 1, 2014
Commits on May 15, 2014
Commits on May 14, 2014
  1. Change YamlConfiguration encoding styles.

    Wolvereness committed Mar 25, 2014
    On JVMs with UTF-8 default encoding, this commit has no change in behavior.
    On JVMs with ascii default encoding (like some minimal linux installa-
    tions), this commit now uses UTF-8 for YamlConfiguration operations.
    Because all ascii is valid UTF-8, there is no feature degradation or data
    loss during the transition.
    On JVMs with any non-unicode but ascii-compliant encoding, this commit now
    forces YamlConfiguration to escape special characters when writing to
    files, effectively rendering the encoding to be plain ascii. Any affected
    file will now be able to migrate to UTF-8 in the future without data-loss
    or explicit conversion. When reading files, YamlConfiguration will use the
    system default encoding to handle any incoming non-utf8 data, with the
    expectation that any newly written file is still compliant with the
    system's default encoding.
    On JVMs with any non-unicode, but ascii-incompliant encoding (this may be
    the case for some Eastern character sets on Windows systems), this change
    is breaking, but is justified in claim that these systems would otherwise
    be unable to read YamlConfiguration for implementation dependent settings
    or from plugins themselves. For these systems, all uses of the encoding
    will be forced to use UTF-8 in all cases, and is effectively treated as if
    it was configured to be UTF-8 by default.
    On JVMs with unicode encoding of UTF-16 or UTF-32, the ability to load any
    configurations from almost any source prior to this change would have been
    unfeasible, if not impossible. As of this change, however, these systems
    now behave as expected when writing or reading files. However, when
    reading from any plugin jar, UTF-8 will be used, matching a super-majority
    of plugin developer base and requirements for the plugin.yml.
    Plugin developers may now mark their plugin as UTF-8 compliant, as
    documented in the PluginDescriptionFile class. This change will cause the
    appropriate APIs in JavaPlugin to ignore any system default encoding,
    instead using a Reader with the UTF-8 encoding, effectively rendering the
    jar system independent. This does not affect the aformentioned JVM
    settings for reading and writing files.
    To coincide with these changes, YamlConfiguration methods that utilize a
    stream are now deprecated to encourage use of a more strict denotation.
    File methods carry system-specific behaviors to prevent unncessary data
    loss during the transitional phase, while Reader methods are now provided
    that have a very well-defined encoder behavior. For the transition from
    InputStream methods to Reader methods, an API has been added to JavaPlugin
    to provide a Reader that matches the previous behavior as well as
    compliance to the UTF-8 flag in the PluginDescriptionFile.
    Addresses BUKKIT-314, BUKKIT-1466, BUKKIT-3377
Commits on May 1, 2014
  1. Allow inventory creation by InventoryType and title. Fixes BUKKIT-4045

    eueln authored and turt2live committed Apr 11, 2013
    Up until now it has not been possible to create a new Inventory using
    a custom title and permit any InventoryType available.
    The commit changes that by adding a method to optionally supply the title
    for the given inventory type and holder, creating the functionality to
    display any supported inventory type with a 32 character length String.
    If the inventory title supplied is larger than 32 characters then an
    IllegalArgumentException is thrown stating so.
  2. Account for spacing in MapFont#getWidth(). Fixes BUKKIT-4089

    eueln authored and turt2live committed Apr 11, 2014
    Prior to this commit MapFont#getWidth() did not account for the 1px
    spacing inserted by CraftMapCanvas#drawText().
    This commit adds the consideration of the 1px spacing per character
    while taking care to not consider the last character as it will not
    have a 1px space behind it. This commit also ensures the method will
    not check a 0-length String.
  3. Add missing entity effects. Adds BUKKIT-3311

    LordRalex authored and turt2live committed Apr 11, 2014
    There are many effects that were not present in the API prior to
    this commit. These effects are being used by the implementation,
    but cannot be accessed via plugins.
    This commit exposes these effects using the EntityEffects enum,
    allowing for plugin authors to make use of these effects. However,
    many of the effects require certain conditions to be met before
    they will be visible to the client, much like some of the existing
Commits on Apr 28, 2014
Commits on Apr 22, 2014
  1. Add BlockMultiPlaceEvent. Adds BUKKIT-5558

    natemort committed Apr 21, 2014
    Some blocks, such as beds, doors, or flowers, are actually composed of
    multiple blocks when they are placed.  Currently, to detect how many
    blocks are actually modified a plugin has to perform various calculations
    to determine the directions of relative blocks, many of which are
    difficult to perform and can easily return false positives.
    This commit adds in a BlockMultiPlaceEvent, which adds in easy support for
    accessing all blocks modified by the placement of a block.
Commits on Apr 18, 2014
  1. [Bleeding] Add new TargetReasons to EntityTargetEvent.

    gmcferrin authored and amaranth committed Feb 8, 2014
    This commit adds three new TargetReasons to EntityTargetEvent to address
    missing cases where the event is not currently fired.
    The first, TargetReason.TARGET_ATTACKED_NEARBY_ENTITY, is used when a
    neutral wolf is attacked, causing all nearby wolves to turn hostile and
    attack the first wolf's target.
    The second, TargetReason.REINFORCEMENT_TARGET, is used when a zombie summons
    reinforcements and the new zombie targets the first zombie's target.
    The third, TargetReason.COLLISION, is used when an iron golem collides with
    a hostile entity, causing it to begin targeting the entity it collided with.
  2. [Bleeding] Add SpawnReasons to cover new Minecraft features.

    gmcferrin authored and amaranth committed Feb 5, 2014
    Adds BUKKIT-5370, BUKKIT-5378, BUKKIT-5382, BUKKIT-5482. Covers zombie
    villagers, ocelot babies, silverfish popping out of blocks, and mobs
    spawning with a mount.
  3. [Bleeding] Use proper teleport reason for /tp command. Fixes BUKKIT-5348

    gmcferrin authored and amaranth committed Feb 4, 2014
    Previously, when calling the /tp command with coordinates, no TeleportCause
    was passed, causing the resulting PlayerTeleportEvent to be called with
    TeleportCause.PLUGIN instead of TeleportCause.COMMAND. This commit adds the
    missing TeleportCause to ensure that the resulting PlayerTeleportEvent
    reports the correct TeleportCause.
Commits on Apr 17, 2014
Commits on Apr 14, 2014
Commits on Apr 12, 2014
Commits on Apr 2, 2014
Commits on Mar 29, 2014