summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeLines
* Don't filter item data for anvils. Fixes BUKKIT-2640Travis Watkins2012-10-28-1/+1
| | | | | | | Filtering item data is usually a good idea to make sure we don't have invalid data or data on items that shouldn't have it. However, anvils use item data in slightly different way and so running its code for filtering here causes the data to be corrupted.
* Use correct variable for squid Y motion. Fixes BUKKIT-2648Travis Watkins2012-10-28-1/+1
|
* Fix missed rename for ore exp dropping. Fixes BUKKIT-2662Travis Watkins2012-10-28-1/+1
|
* Add new entities to World.spawn method. Fixes BUKKIT-2658Travis Watkins2012-10-28-3/+19
|
* Fix incorrect method names missed during update. Fixes BUKKIT-2653h31ix2012-10-28-2/+2
| | | | | | A couple method names were changed between 1.3.2 and 1.4.2 but were missed in the update. One of these affects being able to enchant bows and the other is used for updating player animations while firing.
* These books are too powerful!EvilSeph2012-10-28-1/+1
|
* Remove spawn-radius setting in bukkit.yml in favour of spawn-protection inEvilSeph2012-10-28-5/+14
| | | | server.properties. Fixes BUKKIT-2657
* Fixed generator-settings not being set. Fixes BUKKIT-2652EvilSeph2012-10-28-0/+1
|
* Don't pass vanilla plugin channels to plugins. Fixes BUKKIT-2638Travis Watkins2012-10-27-23/+22
| | | | | | | | Vanilla has its own handlers for plugin channel messages for things like texture packs, books, and anvils. When vanilla handles one of these messages we should not also pass it to plugins because they will be duplicating work and potentially running in to situations our plugin system isn't setup to handle. This is how 1.3.2 worked but was lost in the 1.4.2 update.
* Update CraftBukkit to Minecraft 1.4(.2).Travis Watkins2012-10-27-4814/+10055
|
* Updated version to 1.3.2-R3.0 in pom.xml for RB.EvilSeph2012-10-27-2/+2
|
* Made books less powerful, though you should still read them!EvilSeph2012-10-27-1/+15
|
* Updated version to 1.3.2-R2.1-SNAPSHOT for development towards next release.EvilSeph2012-10-17-2/+2
|
* Updated version to 1.3.2-R2.0 in pom.xml for RB.EvilSeph2012-10-17-2/+2
|
* Implement chat tab completion API. Fixes BUKKIT-2608. Adds BUKKIT-2607.Wesley Wolfe2012-10-17-4/+19
| | | | | The chat tab completion implementation also includes a sanity check to assure type-safety in the list.
* Delegate tab-completion. Fixes BUKKIT-2181. Adds BUKKIT-2602Score_Under2012-10-15-0/+43
| | | | | | CommandMap now contains the functionality for tab completion. This commit replaces the vanilla implementation and simply delegates it to the Bukkit API.
* Queue tasks from secondary threads. Fixes BUKKIT-2546 and BUKKIT-2600Wesley Wolfe2012-10-14-42/+136
| | | | | | | | | | | | | | | | | | | | | This change affects the old chat compatibility layer from an implementation only standpoint. It does not queue the 'event' to fire, but rather queues a runnable that allows the calling thread to wait for execution to finish. The other effect of this change is that rcon connects now have their commands queued to be run on next server tick using the same implementation. The internal implementation is in org.bukkit.craftbukkit.util.Waitable. It is very similar to a Future<T> task, but only contains minimal implementation with object.wait() and object.notify() calls under the hood of waitable.get() and waitable.run(). PlayerPreLoginEvent now properly implements thread-safe event execution by queuing the events similar to chat and rcon. This is still a poor way albeit proper way to implement thread-safety; PlayerPreLoginEvent will stay deprecated.
* Implement new scheduler API. Adds BUKKIT-836Wesley Wolfe2012-10-14-2/+31
| | | | | | The implementation for the new methods mimics the old methods. The final call for the old methods now maps to the new methods with an additional call to get id.
* Ensure entity isn't destroyed when trying to show it. Fixes BUKKIT-2038Travis Watkins2012-10-13-3/+4
| | | | | | | | | If two players (or a player and any other entity) are teleported to the same location in the same tick they will both get added to the other's destroy queue then have a new entity spawn packet sent. Next tick the destroy queue will be processed and they will then be invisible to each other. To prevent this situation we remove the entity from the destroy queue when sending out a spawn packet for them.
* Updated version to 1.3.2-R1.1-SNAPSHOT for development towards next release.EvilSeph2012-09-28-2/+2
|
* Updated version to 1.3.2-R1.0 in pom.xml for RB.EvilSeph2012-09-28-2/+2
|
* Update entity target data to reflect current AI status. Fixes BUKKIT-2280EdGruberman2012-09-28-0/+2
| | | | | | | The new AI system introduced by Minecraft 1.2 no longer relies on the target field in the entity so it is frequently out of sync with what the entity is actually doing. This modifies the AI goal to update the target so our API can return the correct information.
* Allow data values on mushroom and mob spawner blocks. Fixes BUKKIT-2346Travis Watkins2012-09-28-3/+5
| | | | | | | | | In 1.2.5 and older versions of CraftBukkit we allowed the use of data values on bug mushroom and mob spawner blocks for use with plugins. For the 1.3 update the mechanism for doing this was changed and I accidentally used the wrong value when adding these, indicating that they should not have data instead of our actual intent. This change corrects this regression.
* Remove player from destroy queue when they go visible. Fixes BUKKIT-2071Travis Watkins2012-09-28-0/+1
| | | | | | | | | If a plugin calls player.hidePlayer(other); then player.showPlayer(other); in the same tick the other player will be added to the entity destroy queue then a spawn packet will be sent. On the next tick the queue will be processed and a destroy packet will be sent that renders the other player invisible. To correct this we ensure the destroy queue is in sync with use of the vanish API.
* Use this world instead of the one in the entity. Fixes BUKKIT-2315Travis Watkins2012-09-28-3/+3
| | | | | | In some situations an entity or tile entity can be added to the world but have its own 'world' field be null or otherwise incorrect. As the entity was added to this world to be ticked assume it actually is in this world.
* Fix typo causing a task to be repeated in debug. Addresses BUKKIT-2549Wesley Wolfe2012-09-28-1/+1
| | | | | | An internal method for making the debug output for CraftScheduler's async tasks was erroneously using the 'this' reference when the loop should be referencing the current task.
* Updated version to 1.3.2-R0.3-SNAPSHOT for development towards next release.EvilSeph2012-09-26-2/+2
|
* Updated version to 1.3.2-R0.2 in pom.xml for Beta.EvilSeph2012-09-26-2/+2
|
* Map org.bukkit.Sound to String values for sending to client.Wesley Wolfe2012-09-26-2/+160
| | | | | | | This change was done to remove the internal sound names from the API. Along with moving the internal names into CraftBukkit, a unit test was added for any new sounds added in the API to assure they have a non-null mapping.
* Replace LongObjectHashMap with a more efficient implementationTravis Watkins2012-09-21-401/+290
| | | | | | | | | | | | | | | | | | | | | | | | | | | After further testing it appears that while the original LongHashtable has issues with object creation churn and is severly slower than even java.util.HashMap in general case benchmarks it is in fact very efficient for our use case. With this in mind I wrote a replacement LongObjectHashMap modeled after LongHashtable. Unlike the original implementation this one does not use Entry objects for storage so does not have the same object creation churn. It also uses a 2D array instead of a 3D one and does not use a cache as benchmarking shows this is more efficient. The "bucket size" was chosen based on benchmarking performance of the HashMap with contents that would be plausible for a 200+ player server. This means it uses a little extra memory for smaller servers but almost always uses less than the normal java.util.HashMap. To make up for the original LongHashtable being a poor choice for generic datasets I added a mixer to the new implementation based on code from MurmurHash. While this has no noticable effect positive or negative with our normal use of chunk coordinates it makes the HashMap perform just as well with nearly any kind of dataset. After these changes ChunkProviderServer.isChunkLoaded() goes from using 20% CPU time while sampling to not even showing up after 45 minutes of sampling due to the CPU usage being too low to be noticed.
* Set last accessed variables after grabbing chunk. Fixes BUKKIT-1033Wesley Wolfe2012-09-20-1/+1
| | | | | | | | | | | | | This fix changes the 'state' of the last accessed variables to be more accurate. Changing the coordinates of the last accessed chunk should never precede actually setting the last accessed chunk, as loading a chunk may at some point call back to getChunkAt with a new set of coordinates before the chunk has actually been loaded. The coordinates would have been set, but the actual chunk would not. With no check for accuracy, this causes fringe case issues such as null block states. Big thanks to @V10lator for finding where the root of the problem was occurring.
* CraftBukkit comment fixesWesley Wolfe2012-09-14-20/+16
|
* [Bleeding] Check visibility API for sounds. Fixes BUKKIT-2210mbax2012-09-14-1/+22
| | | | | | | | | | | | This implementation of a visibility API check for sounds was created by adding extra methods carrying the source entity in WorldManager and ServerConfigurationManagerAbstract and adding a test for canSee in the SCMA sendPacketNearby method. This approach involves no logic copying, just method addition. I opted to cast to WorldManager as: 1) IWorldAccess is not in CraftBukkit at the moment 2) There is no other IWorldAccess implemented in CraftBukkit, nor is there likely to be one soon. If that day comes, easy fix.
* What is dead may never die.EvilSeph2012-09-14-0/+4
|
* Update the client after a FoodLevelChange event is fired. Fixes BUKKIT-2510EvilSeph2012-09-12-0/+4
|
* [Bleeding] Avoid spawn checks on empty worlds. Fixes BUKKIT-2508Mike Primm2012-09-12-1/+1
| | | | | Change a server wide check for players to be world specific. Worlds without players will not spawn entities.
* Reverted changes to chunk saving behaviour.EvilSeph2012-09-12-3/+1
|
* [Bleeding] Add autosave interval setting in bukkit.yml. Adds BUKKIT-2507Mike Primm2012-09-12-1/+5
| | | | | | | | | | | | | | | | | The new setting is located at "ticks-per.autosave". By changing this value, it affects how often a full save is automatically executed, measured in ticks. This value is defaulting to 0 (off) because we believe that the vast majority of servers already have a third-party solution to automatically saving the server at set intervals. Having the built in auto-save disabled by default ensures that we are not saving things twice; doing so leads to absolutely no benefits, but results in detrimental and noticeable unnecessary performance decrease. For servers that do not use an automated external script to perform saves, this setting can be turned on by setting the value higher than 0, with 900 being the value used in vanilla.
* Bulk pending cleanup.Wesley Wolfe2012-09-09-197/+203
|
* Change local jline checks to not use String literals. Fixes BUKKIT-2455.Luke Granger-Brown2012-09-09-2/+11
| | | | | | | | | | | | | | Refactoring dependencies 'changes' the string literal in the code. This commit changes the literal to instead use a char[] to initialize a new String. On a bytecode level, there will not exist a String literal for these two values; the shade plugin will no longer refactor them. Refactoring jline also changes the other String literals we use for notifying jline of the current state. To insure that our local code reflects the inner logic in jline, the key value was changed to the static final variable located in TerminalFactory. Likewise, UnsupportedTerminal uses the explicit class name (as reflection is used later with the value that has been set).
* Add information about async tasks to CrashReports. Addresses BUKKIT-2491Wesley Wolfe2012-09-09-1/+59
| | | | | | | | | | | | Async tasks are notorious for causing CMEs and corrupted data when accessing the API. This change makes a linked list to track recent tasks that may no longer be running. It is accessed via the toString method on the scheduler. This behavior is not guaranteed, but it is accessible as such currently. Although toString is located in the scheduler, its contract does not guarantee an accurate or up to date call when accessed from a second thread.
* Fix crash from console-commands throwing exception. Fixes BUKKIT-2479Wesley Wolfe2012-09-06-2/+14
| | | | | | When 1.3.1 was released, a try-catch block was removed from the tick loop that called the method in NMS to handle commands. This restores a try-catch to prevent the console from crashing the server.
* Fix BUKKIT-2419: PlayerAbilities not being updated on teleport/respawnfeildmaster2012-08-27-0/+1
| | | | | | Minecraft resets abilities based on what it knows client side, when someone dies and is in "survival," by default they should be in "survival." However, we allow modification of the PlayerAbilities, so we send this update out to the client. Oh and, the format of the commit is like this to see if it looks any good. :)
* Fix Future task waiting logic. Fixes BUKKIT-2408Wesley Wolfe2012-08-26-1/+6
| | | | | | | | Previously, the timeout would erroneously get converted to milliseconds twice. The second conversion was removed. Spurious wakeups were not handled properly, and would instead throw a TimeoutException even if the waited time was not reached..
* Fix empty chunks not sending biome properly and causing client side issues. ↵feildmaster2012-08-25-8/+10
| | | | Fixes BUKKIT-2396
* Updated version to 1.3.2-R0.2-SNAPSHOT for development towards next release.EvilSeph2012-08-25-2/+2
|
* Updated version to 1.3.2-R0.1 in pom.xml for Beta.EvilSeph2012-08-25-2/+2
|
* Update to 1.3.2Travis Watkins2012-08-25-79/+103
|
* Fix EmptyChunk's not sending to the Client correctly. Fixes BUKKIT-2206feildmaster2012-08-23-0/+8
|
* Don't refactor packages with nativesfeildmaster2012-08-22-12/+14
|