summaryrefslogtreecommitdiffstats
path: root/src/main/java/org
Commit message (Collapse)AuthorAgeLines
...
* 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.
* Process URLs as clickable. Adds BUKKIT-4917mbax2013-12-17-26/+39
| | | | | | | | | | In Minecraft 1.7, URL processing was removed from the client while the server gained the ability to designate a URL to be launched in response to clicking text. However, this functionality is not implemented in the vanilla server. This commit adds that functionality to messages sent to the client, processing URLs as clickable. Additionally, char array iteration is replaced with regex.
* Check pending blocks before falling back to world. Fixes BUKKIT-5122Travis Watkins2013-12-17-0/+14
| | | | | | | | | | When growing trees we use a BlockChangeDelegate which queues up the block changes so plugins can modify/block/log tree growing. However, we always check the actual world when checking for existing blocks. This means when the tree growing code checks to see if putting a leaf in a block is valid it may incorrectly overwrite a log block that should exist in that location. To ensure trees grow correctly we now check the delegate itself for blocks that match the queried location before checking the world.
* Add missed tree types for Minecraft 1.7. Adds BUKKIT-5042BlackHole2013-12-16-0/+6
| | | | | | | This commit adds support for the Tree Types that weren't added in the initial update to Minecraft 1.7. Pulled from PR #1277
* Fix generation of jungle trees. Fixes BUKKIT-5043BlackHole2013-12-16-1/+1
| | | | | | | | | Due to changes in the generation of trees, the name of the class responsible for the generation of jungle trees has changed from WorldGenMegaTree to WorldGenJungleTree. As such, references to WorldGenMegaTree need to be updated to WorldGenJungleTree to generate the correct type of tree. Pulled from PR #1277
* [Bleeding] Correct naming of sounds for 1.7. Fixes BUKKIT-5065GJ2013-12-16-30/+30
| | | | | | Several sounds were renamed in Minecraft 1.7, and have been updated accordingly. Additionally, two sounds, HURT and BREATH, were removed from Minecraft.
* [Bleeding] Return correct drops for Cocoa blocks. Fixes BUKKIT-5159t00thpick12013-12-13-0/+7
| | | | | | For Cocoa Blocks, Block.getDropType() returns the item form of the Cocoa block, rather than the Cocoa Bean item. Because of this, Cocoa blocks need to have explicit handling in order to return the proper drop contents.
* Do not fire EntityDamageEvent for explosions twice. Fixes BUKKIT-5156t00thpick12013-12-13-1/+4
| | | | | | | | Explosions directly caused by LivingEntities, such as creepers and tnt lit by players, have their EntityDamageEvent explicitely handled within the Explosion class. In order to prevent double events when damage is handled for other DamageSources, we need return null for explosion based damage sources.
* Show fall particles while in creative mode. Fixes BUKKIT-5009t00thpick12013-12-13-0/+1
| | | | | Relocate CraftBukkit patch to fall damage when changing gamemode from creative mode.
* Print message on startup before loading log4jTravis Watkins2013-12-09-0/+1
| | | | | | | Log4j takes a long time to load on startup. Before it loads, the server appears to have frozen as there is no output until after. We now print a loading message before this happens to let the user know the server is actually working.
* Implement Firework.detonate(). Adds BUKKIT-4538Wesley Wolfe2013-12-06-0/+8
| | | | | | This implements the detonate method from bukkit by setting the fuse timer to 0. This makes a firework explode using the normal codepath, but without waiting for the fuse.
* Correctly register Furnace Recipies. Fixes BUKKIT-5044feildmaster2013-12-05-1/+2
| | | | We should also use items, not blocks. :)
* Add new fishing enchants. Fixes BUKKIT-5035GJ2013-12-04-0/+6
|
* Correctly validate map colors. Fixes BUKKIT-4984t00thpick12013-12-03-1/+3
| | | | | | | | | | The validation check in CraftMapView.render(CraftPlayer) filters out any values less than 0. As of Minecraft 1.7, -128 through -113 are valid colors, so filtering them out prevents some of the new colors from being sent. This commit fixes the issue by adjusting the validation check to include any values less than or equal to -113. As the minimum value for a byte is -128, no invalid colors are included.
* Maintain old setType method in WorldGenerator. Fixes BUKKIT-4915Nate Mortensen2013-12-02-2/+8
| | | | | | | | | | | | | | | | WorldGenerator setType and setTypeAndData have their arguments changed to add in support for CraftBlockChangeDelegate, which changes the method signature. This change in the method signature breaks any WorldGenerators that aren't modified to use CraftBlockChangeDelegate. This commit fixes the issue by readding the old method and maintaining the CraftBlockChangeDelegate method. This makes it so that there is a compatible method for both CraftBlockChangeDelegate WorldGenerators and unmodified WorldGenerators. Additionally, this commit reduces and corrects the diffs in WorldGenerator, moving the fix for layering violations to CraftBlockChangeDelegate.
* Catch all exceptions in jansi initialization. Fixes BUKKIT-4936Travis Watkins2013-12-02-1/+1
| | | | | | | | | | Both log4j and our own jline/jansi initialization attempt to catch errors caused by jansi's use of native libraries. However both of them use the Exception type which does not catch all errors. On Windows Server 2008 R2 Enterprise without installing extra software the required C++ libraries are not available which causes an error that does not extend Exception. To ensure we catch all errors I've changed both of these to catch Throwable instead which gets us a working console minus jansi functionality.
* Add ConsoleAppender from log4j for diff visibilityTravis Watkins2013-12-02-0/+245
|
* Handle ChatColor-ending messages FIXES BUKKIT-4924mbax2013-12-01-14/+10
| | | | | Now adds the component upon creation, eliminating issues where the created component was discarded.
* Handle JUL logger formattingTravis Watkins2013-12-01-3/+3
|
* Forward exceptions to log4j, cleanup logger handling. Fixes BUKKIT-4948Travis Watkins2013-12-01-71/+54
|
* Update CraftBukkit to Minecraft 1.7.2mbax2013-11-30-400/+1076
|
* Don't share WorldMapCollection. Fixes BUKKIT-4871Wesley Wolfe2013-10-30-1/+0
| | | | | | | | | | WorldMapCollection stores scoreboard, map (item), structure, and village information. Scoreboards are explicitly handled globally, while villages and structures are erroneously shared. This commit separates the WorldMapCollections to not be shared among custom worlds. Maps are special-cased to maintain the previous shared behavior.
* Add auto-save plugin redundancy detection.Wesley Wolfe2013-10-23-0/+16
| | | | | | This change will print a warning when a plugin induces a forced save. A player or console forcing a save (via a command) is ignored for purposes of printing a warning.
* Force item data to use a tag name. Fixes BUKKIT-4809feildmaster2013-10-12-4/+5
| | | | | | | The recent Minecraft update rendered the e20e50f85083dc53cb5456254bcf5781ef750daa fix incorrect by adding a compound name to the base tag in some code. This fix changes all uses of tag changes to explicitly use a name.