summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeLines
...
* Handle profiles in SkullMeta, they don't store a string anymore.Travis Watkins2014-04-17-13/+27
|
* Update CraftBukkit to Minecraft 1.7.9Nate Mortensen2014-04-17-6/+15
|
* Handle expired bans correctly. Fixes BUKKIT-5541Travis Watkins2014-04-17-3/+19
|
* 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-51/+78
| | | | | | | | 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.
* Import files from mc-dev for diff visibilityTravis Watkins2014-04-17-0/+235
|
* [Bleeding] Re-add missed diff in 1.7.5 update. Fixes BUKKIT-5536t00thpick12014-04-17-1/+1
| | | | | | In the 1.7.5 update the diff that called book edit events when editing books was accidentally dropped because of nms changes within the file. This commit re-adds the craftbukkit call to restore event behavior.
* 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-13/+17
|
* Use world-container when finding players to convert. Fixes BUKKIT-5530Travis 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-697/+1856
|
* Add method to send fake sign updates to players. Adds BUKKIT-2300Patrick Seidel2014-04-02-24/+53
|
* 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-2662/+2653
|
* 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.