summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
* Improve vanilla command handling for command blocksThinkofdeath2014-11-28-9/+10
|
* Remove extra color codes at the start from converted json chatThinkofdeath2014-11-28-1/+1
|
* Only rebuild patches that are changedThinkofdeath2014-11-28-3/+8
|
* Use the right name for the AsyncPlayerPreLoginEventThinkofdeath2014-11-28-527/+527
|
* Fix eating food whilst not facing a blockThinkofdeath2014-11-28-527/+527
|
* Update to Minecraft 1.8Thinkofdeath2014-11-28-65097/+22150
| | | | For more information please see http://www.spigotmc.org/
* Allow teleportation of entities on vehicles. Fixes BUKKIT-4210bendude562014-08-17-2/+8
| | | | | | | | | | | 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 applicable. This commit ammends the existing CraftBukkit logic for rejecting teleportation for entities in vehicles to permit the action. Due to this change, CraftBukkit is now in-line with Minecraft 1.5 teleportation logic.
* Implement ability to keep items on death via plugins. Adds BUKKIT-5724Jerom van der Sar2014-08-17-3/+8
| | | | | | | | | | | | | 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 implements the methods included in the Bukkit half for the new behaviour by acting upon the boolean flag. The boolean flag is tested prior to clearing the inventory as well as prior to dropping the items on the ground. If the flag is true (indicating "keep inventory"), the items are not removed from the player's inventory and are not dropped on the ground.
* Modify the invalid item set to permit command blocks. Fixes BUKKIT-4342Starbuck Johnson2014-08-17-1/+1
| | | | | | | | | | | | When using a "vanilla" Minecraft server using the "pick block" key on a command block yields the invoker with a command block within their inventory while in creative mode. Implications of the invalid items set containing the command block also include having a "ghost" item that cannot be placed due to it not actually existing. This commit resolves the problem and brings Craftbukkit closer to vanilla behaviour by removing the command block item ID, 137, from the invalid items set.
* Fix PlayerFishEvent not correctly cancelling. Fixes BUKKIT-5396myiume2014-08-17-6/+3
| | | | | | | | | | | | | Prior to this commit cancelling the PlayerFishEvent would cause various states of the fishing routine to be incorrectly or wrongly fired. This incorrect behaviour was due to the miscommunication between the server and client regarding the fishing state. When the event was cancelled, the bobber entity was removed and caused the client to incorrectly determine what the "next state" was to logically be. This commit resolves the issue by ensuring the client is made aware of the correct changes at the correct time regarding the bobber entity, therefore keeping the logical steps of "fishing" proper and in-tact.
* Implement deprecated methods. Adds BUKKIT-5752Wesley Wolfe2014-08-07-0/+58
|
* Use sensible AssertionError instead of ambiguous RuntimeExceptionWesley Wolfe2014-08-07-4/+4
|
* Fix cancelling PlayerDropItemEvent. Fixes BUKKIT-3313ase342014-08-04-1/+13
| | | | | | | | | | | | Up until this commit the PlayerDropItemEvent, if cancelled, would return items to the first available slot in the inventory - which is clearly undesirable as a player and plugin author to deal with. This commit changes that by ensuring that the item is returned to where it came from in the player's inventory. This still supports modifying the drop from the player and will default to "first available slot" if the item has changed since the event was fired. Other remaining behaviour of the event is still in tact and has not been modified.
* Fix removal of items from Item Frames. Fixes BUKKIT-5736feildmaster2014-08-02-3/+7
|
* Don't confuse client with sound coordinates outside view distance.Travis Watkins2014-07-15-3/+52
|
* Provide modifier functions to EntityDamageEvent. Fixes BUKKIT-5688Wesley Wolfe2014-07-13-3/+9
|
* Handle uniform block ids greater than 127. Fixes BUKKIT-5686Travis Watkins2014-07-10-4/+4
|
* Put damage modifiers in Functions for event. Fixes BUKKIT-5681Travis Watkins2014-07-09-59/+99
|
* Update CraftBukkit to Minecraft 1.7.10Travis Watkins2014-07-08-1224/+1228
|
* Use 4787c23dce0f5ac856d8d398225828971a93a3ff Guava patch for onlinePlayersWesley Wolfe2014-07-01-3/+1
| | | | | | | | This change improves the quality of life for plugin developers using iterator iteration with side-effects. In the specified Guava patch, the internal iterator no longer relies on the AbstractList iterator which iterates by index, and will instead wrap the provided iterator in a transformer given the Function.
* Implement new getOnlinePlayers. Adds BUKKIt-5668Wesley Wolfe2014-06-25-14/+119
|
* [Bleeding] Fix checks for non-living entities. Fixes BUKKIT-5667t00thpick12014-06-24-2/+2
|
* [Bleeding] Ignore damage done by LivingEntity.damage(). Fixes BUKKIT-5666t00thpick12014-06-23-0/+2
| | | | | This matches behavior previous to new damage event API of not throwing events for plugin-triggered damage.
* Use compact memory format for uniform chunk section data.Travis Watkins2014-06-23-59/+272
| | | | | | | | | | | Many chunk sections contain parts of their data that are the same for every block they contain. In these cases we can save memory by saving a single value instead of an array of 4096 copies of that value. Block light and block data are most likely to be uniform followed closely by sky light data. Block ids are far less likely to be uniform but give the largest saving when they are. Because of this we use a compact format for every part of the chunk. Memory saved from this technique will vary based on the world but seems to be about 50% on normal Minecraft generated chunks.
* [Bleeding] Set projectile source for reflected fireballs. Fixes BUKKIT-5661t00thpick12014-06-22-0/+1
|
* [Bleeding] Implement new damage api. Fixes BUKKIT-5326, BUKKIT-3878.t00thpick12014-06-22-223/+263
| | | | | | | | | | | | | | This commit centralizes event handling to where damage is actually applied to the entity to avoid bugs that have resulted from nodamageticks, modifications to damage after the event has been called, and similar mishaps. This also implements new API for getting and setting of modifications made to the damage amount actually applied to the entity. This is done by storing the change in the damage amount as each modifier is applied by vanilla code. The method that actually damages the armor worn by an entity has been relocated beneath the event called as to not apply durability loss when the event has been cancelled.
* [Bleeding] Repair missing diff in Explosion. Fixes BUKKIT-5662t00thpick12014-06-22-3/+4
| | | | | | The blast protection enchantment dampers explosions, however the functionality was only added to block explosions, and not entity explosions.
* Avoid checking for loaded chunks for lighting and entity ticking.Travis Watkins2014-06-21-5/+92
| | | | | | | | | | | | | | When a chunk is loaded the server tries to ensure it has its initial light calculations done before sending it to the player. When ticking entities the server tries to ensure the entity does not walk into an unloaded chunk. To accomplish these the server checks a one chunk radius around the chunk to be lit or a two chunk radius around the chunk the entity is in. These lookups happen every tick even though their result is unlikely to change that often. To reduce the cost of these checks we replace them with a system to keep track of what neighbor chunks a chunk has loaded and update it when chunks load or unload which is a much less frequent action. On a server with ten players this change removes about 100,000 calls a tick to LongObjectHashMap's containsKey method.
* Don't check unload queue before ticking things anymore.Travis Watkins2014-06-21-29/+11
| | | | | | | | | | | In commits 71a238ee and c8591397 we added checks while ticking to ensure we never ticked anything in a chunk meant to be unloaded. We did this to prevent these chunks being removed from the unload queue and leaked. However, this causes a ridiculously large number of lookups on the queue for a somewhat rare occurance. We also now have the chunk GC which will take care of these leaked chunks when they do happen. With this in mind we now remove these checks which removes almost all uses of the LongHashSet backing the unload queue.
* Updated version to 1.7.9-R0.3-SNAPSHOT for development towards next release.EvilSeph2014-06-01-1/+1
|
* Updated version to 1.7.9-R0.2 in pom.xml for Beta.EvilSeph2014-06-01-1/+1
|
* Add special case for handling place event with lilies. Fixes BUKKIT-5641bloodshot2014-06-01-1/+9
|
* Improve ItemStack filtering.Travis Watkins2014-06-01-0/+10
|
* Some assumptions are better than others.Nate Mortensen2014-06-01-5/+3
|
* Use UUIDs in CraftPlayer equals and hashCode methods. Fixes BUKKIT-5634Daniel Naylor2014-05-26-4/+4
|
* Handle null targets in target event. Fixes BUKKIT-5635Travis Watkins2014-05-26-3/+10
|
* Fix ItemStack state during BlockPlaceEvent. Fixes BUKKIT-5632Nate Mortensen2014-05-26-5/+15
|
* Rework mob item dropping on death. Fixes BUKKIT-5625Travis Watkins2014-05-26-688/+119
| | | | | | | | | | | | | | | | | | | After the changes in d611cff2 we started including a mob's equipment when calling EntityDeathEvent so plugins can access this data. However, the changes to enable this triggered a bug that makes skeletons and pig zombies no longer drop equipment because they handle this differently than the rest. On top of this we don't handle dropping equipment for mobs that cannot pick up items in vanilla even though vanilla does drop equipment for them if you summon them with it. We also do not include a horse's inventory in the event so they drop their saddle, armor, chest, and chest contents with no way for a plugin to control this. To solve this issues we revert mob item dropping back to vanilla logic and instead just capture all their drops in the method they all call to spawn them into the world. We also move horse inventory dropping so it happens at a time when we're capturing these drops. With these changes all items mobs drop on death should now be included in the event and we have less diff to worry about for future updates.
* Fix polarity of Bat.isAwake() and Bat.setAwake(boolean). Fixes BUKKIT-5624Wesley Wolfe2014-05-20-2/+2
|
* Updated version to 1.7.9-R0.2-SNAPSHOT for development towards next release.EvilSeph2014-05-14-1/+1
|
* Updated version to 1.7.9-R0.1 in pom.xml for Beta.EvilSeph2014-05-14-1/+1
|
* Ensure we always log commands and log the right thing.Travis Watkins2014-05-14-1/+2
| | | | | | | | Waiting to log until after PlayerCommandPreprocessEvent makes the server not log anything if the event is cancelled. It also makes the server log what a plugin changed the command to instead of what the player actually tried to run. As the point of the log is to have a record of every command a player attempts to run these are both not desirable.
* Update CraftBukkit to use new YamlConfiguration encoding changesWesley Wolfe2014-05-14-6/+7
|
* Implement awake flag for bats. Adds BUKKIT-5606Wesley Wolfe2014-05-13-0/+10
|
* Handle chat packets correctlyWesley Wolfe2014-05-13-4/+4
|
* Handle inventory max stack sizes even better. Fixes BUKKIT-5595Travis Watkins2014-05-13-1/+6
| | | | | | | | | | | | In 7e37cf96 we modified the container logic to handle custom max stack sizes better and ensure the client stays in sync with this scenario. This had the effect of sending an extra set slot packet for every inventory click a player did which was not wanted. These extra packets also cause the client to recalculate recipes which breaks the result slot for custom recipes. To avoid the extra packets in general we now only send them if the max stack is not the one we started with. In the case of a setting a custom max stack size on a workbench this is still not enough so we also now send another extra packet to make sure the result slot is always correct.
* Only set skull profile if it is a player skull. Fixes BUKKIT-5605Travis Watkins2014-05-12-6/+7
|
* Avoid using the user cache in skull meta.Travis Watkins2014-05-03-5/+5
| | | | | | | | | | | | To handle changes in 1.7.9 we changed skull meta to use GameProfile instances instead of strings of player names. This reflects what vanilla is actually storing for skulls now. As skulls still require a name our API was not changed and we instead look up the rest of the profile information from the name. The way this was implemented made it so that deserializing a skull or setting its name potentially involved a network request. As skull meta itself does not actually require a complete profile we now simply create one that only contains a name and leave populating it to the server when it is actually needed.
* [Bleeding] Fix stack overflow with Ender Crystals. Fixes BUKKIT-5583GJ2014-05-03-3/+3
|
* Implement inventory creation by type and title. Fixes BUKKIT-4045eueln2014-04-30-0/+13
| | | | | | | | | | | | | With the current API it is possible to create an inventory with a specific type, but it is not possible to give such an inventory a title other than the default. 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.