summaryrefslogtreecommitdiffstats
path: root/src/main
Commit message (Collapse)AuthorAgeLines
* Add player unique ID to (Async)PlayerPreLoginEvent. Adds BUKKIT-5108BlackHole2014-04-02-2/+3
|
* Add equals for CraftInventory objects. Adds BUKKIT-4110Jeremy Wood2014-04-02-0/+10
| | | | | | | | | When working with inventories you regularly end up with different Inventory objects that have the same underlying Minecraft inventory. Currently, even those these point to the same thing, they are not considered equal. With this commit comparing any Inventory object that represents the same inventory will result in equals(Object) returning true.
* Store last known player names in preparation for name changingfeildmaster2014-03-31-0/+1
|
* Implement API for dealing with player UUIDs. Adds BUKKIT-5071Travis Watkins2014-03-29-2/+101
|
* Fix issues with leashes and weather due to missed diffTravis Watkins2014-03-26-2/+2
|
* Correct missed diffTravis Watkins2014-03-24-3/+3
|
* Fix PotionEffect removal.Nate Mortensen2014-03-23-1/+1
| | | | | | | | | | | | The method in EntityLiving to remove a potion effect was remapped during the 1.7.5 update. The method invocation in CraftLivingEntity was not updated to invoke the remapped method, which has led to a random method in LivingEntity being called in its place. This commit corrects the behavior of removePotionEffect by changing the method to invoke the remapped method as opposed to EntityLiving#m(float). Thanks to @gabizou for finding this issue.
* Fix missed diff making horses lose their saddleTravis Watkins2014-03-22-1/+1
|
* Fix teleport failing right after join. Fixes BUKKIT-5479Travis Watkins2014-03-22-3/+14
| | | | | | | | | | Teleporting a player checks to see if the player is disconnected to try to avoid creating ghost players. The check it uses, however, randomly fails when the player is in the middle of joining the server. The check that would work correctly here does not work correctly when the player actually disconnects. To work around this we add a new flag which is cleared on the first tick of the new player and assume they are connected if the flag is set.
* Increment loop index whether or not command succeeded. Fixes BUKKIT-5455WolfieMario2014-03-22-2/+1
| | | | | | | | | | | When VanillaCommandWrapper dispatches a command containing a PlayerSelector wtih c>-1 (implicitly true for @a), it loops over the selected players and exectures the command with each player. However, the loop index is only incremented if the command fails. As a result, a successful command is repeated on the same player indefinitely, locking up the server. This commit fixes the issue by incrementing the loop index regardless of whether the command succeeds, ensuring the command is only executed once per player identified by the PlayerSelector.
* Update CraftBukkit to Minecraft 1.7.5Nate Mortensen2014-03-21-2660/+2651
|
* Remove chunks from queue if we don't need them anymore.Travis Watkins2014-02-12-10/+45
|
* Check if entity is in list before decrementing. Fixes BUKKIT-5404EvilSeph2014-02-11-3/+5
|
* Update/improve configuration documentation.EvilSeph2014-02-11-3/+16
|
* Ignore player selectors if not a Command Block.EvilSeph2014-02-11-0/+6
|
* Add PlayerSelector.java for diff visibility.EvilSeph2014-02-11-0/+241
|
* Rename Minecraft command permission nodes to meet fallback spec.EvilSeph2014-02-11-1/+1
|
* Hide message from connection throttle on startup. Fixes BUKKIT-5403Travis Watkins2014-02-10-1/+1
|
* Readd diff missed in the 1.7 update.Travis Watkins2014-02-10-6/+26
|
* Handle removing entity while ticking. Fixes BUKKIT-1331Travis Watkins2014-02-10-6/+14
| | | | | | | | | If a plugin causes an entity to be removed from the world while the world is ticking entities the ticking loop gets out of sync and fails due to trying to go beyond the end of the entity array. To ensure this doesn't happen we store the loop position as a field so we can fix it up in the entity remove method just like the tick method does when it removes an entity.
* Add method to forget callbacks in AsynchronousExecutorWesley Wolfe2014-02-10-0/+54
|
* Readd BlockPlaceEvent for half slab to full block. Fixes BUKKIT-5390Aikar2014-02-09-2/+6
|
* Match old alias behavior when migrating.Travis Watkins2014-02-08-2/+15
| | | | | | | | | Previously the alias system would pass all arguments from the alias to its command(s) implicitly. The new system requires arguments to be explicitly passed so server owners can have more control over where and how they are passed. To ensure this isn't a breaking change during the migration from bukkit.yml to commands.yml we now add the $1- argument to the alias commands to match the previous behavior.
* [Bleeding] Implement Mojang command fallback system. Adds BUKKIT-5385t00thpick12014-02-08-19/+361
|
* Implement banning API. Adds BUKKIT-3535mbax2014-02-08-20/+184
| | | | | | | | | | | | | | | | | | | | | | | | | Previously no implementation existed to access various additional information fields regarding bans. This implementation expands on the information outlined in the sister Bukkit commit to provide access to the Minecraft implementation of the ban system. This implementation of the banning API contains 2 new classes which provide access to the internal workings of the built-in banning system within Minecraft. The CraftBanEntry class simply supports the representation of an internal Minecraft BanEntry object. The data that may be modified within this new object must be manually saved to the list contained within the CraftBanEntry using it's save() method. The CraftBanList class supports the representation of an internal Minecraft BanList object through proxy methods. These methods do validation on the passed objects where needed to ensure safe input to the backed Minecraft objects. These changes additionally re-route the existing banning API to the newer, more detailed, system. Functionality prior to this change still behaves as documented by the contract defined by the methods changed.
* [Bleeding] Correctly enchant books. Fixes BUKKIT-5302t00thpick12014-02-06-9/+6
| | | | | | | | | | | | | | Books can now recieve more than one enchantment. As such, breaking out of the loop after only 1 enchantment is applied is not the correct behavior. This commit also reworks some of the logic surrounding the application of enchantments to the item. By checking if the event doesn't add any enchantments rather than if the original enchantments list is empty, the application code is only reached if enchantments are applied, rendering the "applied" boolean no longer necessary. The ItemStack's Item should only be set once, so it is now set outside of the loop based upon whether or not "flag" is true (with "flag" being whether or not the ItemStack's Item is a book).
* Update clients when ItemFrame direction is set. Fixes BUKKIT-3371EdGruberman2014-02-02-0/+14
| | | | | | | | | | | | Hanging entities are placed into the entity tracker and updates are sent out to clients for the initial placement. Thereafter data watchers are configured to monitor the item inside the frame. However, if the direction the ItemFrame facing changes the entity tracker will not send out updates. This commit removes and recreates the ItemFrame entity in the same way that was already done for Painting entities. This causes clients to be updated appropriately.
* Implement SpawnReason.NETHER_PORTAL and DISPENSE_EGG. Fixes BUKKIT-3148Kodekpl2014-02-01-3/+10
| | | | | | | | | | | | | | | | Previously any entities spawned through dispensers (monster eggs) or by nether portals were given the incorrect SpawnReason of SPAWNER_EGG. This made it impossible to distinguish what exactly happened in regards to the creature being spawned. A method in ItemMonsterEgg has been added to further fine tune reasons for spawning creatures. This permits the DISPENSE_EGG reason to be used correctly and accuratly as well as the NETHER_PORTAL reason due to how BlockPortal spawns the mobs. The redirected method, a(World, int, double, double, double), is still called by the ItemMonsterEgg itself and therefore uses the default reason of SPAWNER_EGG. This does not change previous behaviour.
* [Bleeding] Handle players disconnecting during respawn. Fixes BUKKIT-4327turt2live2014-02-01-5/+15
| | | | | | | | | | | | | | | | Prior to this commit, a player disconnected during a respawn event would remain in memory. This causes a ghosting issue of players in the slot count and player list, as well as a reference leak. This commit avoids re-adding the player to the player list (and world) if they are disconnected. This ensures that the remainder of the respawn logic is completed as well as ensuring a duplicate player is not left on the server. This commit also saves the player's file at the end of the method if they have been disconnected to ensure that their next login is accurate to the respawn event's actions. A player that was revived and disconnected will reconnect as revived.
* Load all already generated chunks via async chunk systemTravis Watkins2014-02-01-37/+40
| | | | | | | | | | | | | Currently we use the async chunk loading system only when players trigger chunk loading. If a chunk is loaded for any other reason it goes through a separate codepath. This means if a player has trigged a chunk load and before the chunk loads something else wants the same chunk we will load it twice and throw away the second result. With this change we instead use the sync processing feature of the AsynchronousExecutor to load the chunk which will pull it out of the queue if it was already queued to load. This means we only ever load a chunk once. Because chunk generation is not thread safe we still fallback to the vanilla chunk loading system if the chunk does not currently exist.
* Allow AsynchronousExecutor.getSkipQueue() to pull tasks from the queueWesley Wolfe2014-02-01-6/+12
|
* Don't call duplicate interact air events. Fixes BUKKIT-5359Travis Watkins2014-01-31-11/+1
| | | | | | | | | | | | Previously we attempted to call interact events in cases that were missing by modifying the arm swing logic. This, however, was too broad and started triggering events in cases we already covered leading to duplicates. Since the only case we can handle cleanly and the primary point of the previous fix was fluids we now instead simply treat fluids as air for this check. This also ensures we do not get duplicate events when the player is in a fluid and hits a normal block, unlike the previous change. This reverts commit 68b702f7 and replaces it with a better fix.
* [Bleeding] Store correct block type when hitting blocks. Fixes BUKKIT-5209t00thpick12014-01-30-1/+1
| | | | | | | The block obtained and stored within the block object higher up does not reflect the block at the location being hit, rather it is the air block the arrow was previously in. Thusly when the variable is used to check if the arrow is still in the block, it fails.
* [Bleeding] Fix support for several entities in World.spawn(). Fixes BUKKIT-3284t00thpick12014-01-30-8/+8
|
* [Bleeding] Use correct yaw and pitch when spawning arrows. Fixes BUKKIT-3320t00thpick12014-01-30-1/+1
|
* [Bleeding] Directly set direction in EntityFireball. Fixes BUKKIT-1154t00thpick12014-01-30-2/+10
| | | | | | Because EntityFireball.setDirection() adds a random offset to passed parameters, it is not appropriate for use in an API method. As such, the values need to be directly set to remain accurate.
* [Bleeding] Implement setCharged and getCharged for WitherSkull. Addresses ↵t00thpick12014-01-30-0/+10
| | | | BUKKIT-3060
* [Bleeding] Implement ProjectileSource API. Addresses BUKKIT-1038, BUKKIT-1156t00thpick12014-01-30-33/+267
|
* Add setCritical and isCritical methods to CraftArrow.java. Adds BUKKIT-5113MorphanOne2014-01-30-0/+8
|
* Add methods to get and set arrow knockback. Adds BUKKIT-5103Likaos2014-01-30-1/+11
|
* [Bleeding] Re-add EntityShootBowEvent lost in ↵GJ2014-01-30-1/+13
| | | | | | e93a3eb3b4c5234e3e3936bc697d566a42d3b30e. Fixes BUKKIT-4214 In the 1.2 update for CraftBukkit, a missed diff resulted in Skeletons no longer firing an EntityShootBowEvent when they shoot an arrow.
* [Bleeding] Add support for ThrownExpBottle and Fish to ↵GJ2014-01-30-0/+9
| | | | | | | | | launchProjectile(...). Fixes BUKKIT-1536 Previously, trying to launch a ThrownExpBottle or Fish projectile would result in an IllegalArgumentException. This commit adds support for both ThrownExpBottle and Fish, which means that all current projectiles are now properly supported by this method.
* [Bleeding] Instantiate logger earlier in CraftServer. Fixes BUKKIT-4253.GJ2014-01-30-2/+1
| | | | | | | | Previously, if an error occurred during CraftServer initialization before the logger was instantiated, it would cause an NPE and the server would never finish loading properly. By instantiating the logger before attempting to load anything else in CraftServer, we ensure that a logger will always be available in the case of any errors.
* [Bleeding] Fire interact events for Weighted Pressure Plates. Fixes BUKKIT-5053GJ2014-01-30-1/+26
| | | | | | | | In 1.7, Minecraft changed Weighted Pressure Plates to allow players and entities to interact with them, rather than simply changing redstone signal based on the number of items on the pressure plate. This commit adds calls to PlayerInteractEvent or EntityInteractEvent for every entity that steps on the plate.
* Add BlockPressurePlateWeighted.java for diff visibilityGJ2014-01-30-0/+35
|
* Relocate NaN check on PacketPlayInFlying.Nate Mortensen2014-01-29-7/+7
|
* Readd connection throttleTravis Watkins2014-01-28-0/+45
|
* Fix stacking for items after setting empty meta. Fixes BUKKIT-5331Wesley Wolfe2014-01-23-1/+1
| | | | | | | | | ItemStacks do not stack if one has null for a tag, while the other has an empty tag. In CraftItemStack, if you set an item to an empty ItemMeta, it will create an empty tag for the internal ItemStack. This changes the setItemMeta function to check for empty meta, and then use null for the tag instead of an empty NBTTagCompound.
* Implement API for ServerListPingEvent. Adds BUKKIT-5121, BUKKIT-2465Wesley Wolfe2014-01-19-3/+69
|
* [Bleeding] Properly handle EntityBreakDoor event canceling. Fixes BUKKIT-5318t00thpick12014-01-18-1/+1
| | | | | | The method being called was renamed during the 1.4.2 update process but the function call was not replaced accordingly, leading to a missed diff from 314051580a0a8e4745d3a539f232b552916eb302.