summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/bukkit
Commit message (Collapse)AuthorAgeLines
...
* [Bleeding] Don't allow null display names. Fixes BUKKIT-5254GJ2014-04-18-1/+1
| | | | | | | | Currently, plugins can set a player's display name to null, which could cause issues for other calls to getDisplayName that aren't expecting a null value. This changes setDisplayName to follow the same logic as setPlayerListName, which sets the player's name back to their unmodified "vanilla" name if it receives a null value as a parameter.
* [Bleeding] Return correct player SlotType. Fixes BUKKIT-3188GJ2014-04-18-2/+6
| | | | | | Previously, the SlotType for the last 4 slots in a player's inventory returned QUICKBAR when it should have returned SlotType.CONTAINER. This updates the code for determining slot type to return the proper value.
* [Bleeding] Return correct furnace SlotType. Fixes BUKKIT-5400GJ2014-04-18-0/+2
| | | | | | Previously, the SlotType for the 0 slot in a furnace returned CONTAINER, when it should have returned SlotType.CRAFTING. This updates the code for determining slot type to return the proper value.
* [Bleeding] Ensure skeletons spawn with equipment. Fixes BUKKIT-2836GJ2014-04-18-0/+4
| | | | | | | Previously, when a skeleton was spawned via the spawn(...) function, the resulting skeleton had no equipped bow and therefore could not properly attack. This fix gives all skeletons the proper equipment and ensures that they are able to attack.
* Handle profiles in SkullMeta, they don't store a string anymore.Travis Watkins2014-04-17-12/+24
|
* Make bans pretend to use names like before 1.7.8.Travis Watkins2014-04-17-19/+28
| | | | | | Bans require a name and UUID but our API only allows for a single string identifier for a ban entry. Until this is sorted out go back to the old name based setup since we can always get a UUID given a name.
* Make skulls pretend to only use names like before 1.7.8.Travis Watkins2014-04-17-15/+8
| | | | | | | Any new API here needs more thought, skulls require a name but OfflinePlayer is not guaranteed to have one. There is a Mojang approved way to get a complete profile from a name but not from a UUID so for now just pretend this still only uses names.
* Fix getting white list, ban list, and op list. Fixes BUKKIT-5538Travis Watkins2014-04-17-28/+55
| | | | | | | | The getEntries methods on these return player names instead of UUIDs. As we need the UUIDs for our API we add a getValues method to get at the data we need. To further ensure we get the most data possible we also add a way to get at the stored GameProfile to ensure we always have both the UUID and the name from the list.
* Don't do a lookup for obviously invalid usernamesTravis Watkins2014-04-17-9/+18
|
* Add methods to use arbitrary entries in scoreboards. Adds BUKKIT-3977Travis Watkins2014-04-13-7/+43
|
* Fix missed diff and other small thingsTravis Watkins2014-04-13-1/+1
|
* Check actual whitelist for CraftOfflinePlayer tooTravis Watkins2014-04-12-1/+1
|
* Check the actual whitelist for Player#isWhitelisted()Travis Watkins2014-04-12-1/+1
| | | | | | | The server's check is for whether or not a player can pass the whitelist not just if the player is on it. That seems like more useful information but the API has always just checked if they are on it so this commit restores that.
* Use fetched GameProfile for getOfflinePlayer(String)Travis Watkins2014-04-12-6/+19
| | | | | | | | When getting an OfflinePlayer by name we lookup their UUID and then use that to fetch the OfflinePlayer. If the player has not played on this server before the resulting OfflinePlayer will return null for getName(). As this is unintuitive we now create the OfflinePlayer directly using the profile we looked up and make OfflinePlayer prefer that data.
* Update CraftBukkit to Minecraft 1.7.8Travis Watkins2014-04-11-172/+403
|
* Add method to send fake sign updates to players. Adds BUKKIT-2300Patrick Seidel2014-04-02-7/+37
|
* 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 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.
* 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-71/+73
|
* Remove chunks from queue if we don't need them anymore.Travis Watkins2014-02-12-0/+5
|
* Rename Minecraft command permission nodes to meet fallback spec.EvilSeph2014-02-11-1/+1
|
* Add method to forget callbacks in AsynchronousExecutorWesley Wolfe2014-02-10-0/+54
|
* 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-10/+340
|
* 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.
* 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.
* Load all already generated chunks via async chunk systemTravis Watkins2014-02-01-24/+15
| | | | | | | | | | | | | 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
|
* [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-32/+256
|
* 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-0/+10
|
* [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.
* 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.
* [Bleeding] Account for null in EntityDamageEvent handling. Fixes BUKKIT-5317t00thpick12014-01-18-1/+3
| | | | | | Damage caused by explosions will return null for the event as of 6588d6f72bbca74bf150de65593ac575b846111b. As such, a null check is now necessary when handling non-living entity damage events.
* [Bleeding] Check that vanilla recipes actually exist. Fixes BUKKIT-5277t00thpick12014-01-18-9/+14
| | | | | | When falling back to vanilla recipes in the iteration of recipes, a check is necessary to ensure that vanilla recipes are present. RecipeIterator has been modified to account for the multi-map setup.
* [Bleeding] Implement methods for /achievement command. Addresses BUKKIT-4932t00thpick12014-01-16-0/+29
|
* [Bleeding] Fix Achievements and Statistics API. Fixes BUKKIT-5305t00thpick12014-01-16-50/+318
|
* Implement UnsafeValues for give command. Addresses BUKKIT-5286Wesley Wolfe2014-01-14-1/+42
|
* [Bleeding] Implement setIdleTimeout and getIdleTimeout. Addresses BUKKIT-4932.t00thpick12014-01-14-0/+8
|
* Consider repair cost when checking ItemMeta emptiness. Fixes BUKKIT-5304Wesley Wolfe2014-01-14-1/+1
|
* [Bleeding] Handle custom furnace recipes separately. Fixes BUKKIT-1657, ↵t00thpick12013-12-20-1/+3
| | | | | | | | | | BUKKIT-3846 Due to vanilla blanket comparing data values, and the unspecified order of hashmap iterators, we need to run through custom recipes first, and therefore separately, to ensure that they are actually used. By not adding the custom results to the experience table, we do not override the experience gains from vanilla smelting recipes.
* Add new setResourcePack method. Fixes BUKKIT-5015Nate Mortensen2013-12-17-4/+6
| | | | | | | | | | | | Minecraft now uses resource packs instead of texture packs, which broke the setTexturePack method, as the client no longer listens on the MC|TPack channel. This commit fixes the issue by adding in a setResourcePack method, and by deprecating setTexturePack and rewriting it to call the newly added setResourcePack. In order to simplify the method and prevent this from happening in the future, setResourcePack calls EntityPlayer.a(String) to use the same logic as minecraft when sending resource packs.