summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/MinecraftServer.java
Commit message (Collapse)AuthorAgeLines
* Update to Minecraft 1.8Thinkofdeath2014-11-28-1321/+0
| | | | For more information please see http://www.spigotmc.org/
* Update CraftBukkit to Minecraft 1.7.10Travis Watkins2014-07-08-3/+3
|
* Update CraftBukkit to Minecraft 1.7.9Nate Mortensen2014-04-17-2/+2
|
* Update CraftBukkit to Minecraft 1.7.8Travis Watkins2014-04-11-189/+211
|
* Update CraftBukkit to Minecraft 1.7.5Nate Mortensen2014-03-21-75/+77
|
* [Bleeding] Send short version string on ping. Addresses BUKKIT-5206t00thpick12013-12-20-1/+1
| | | | | | | With the update in 1.7 that improved the server ping, it was made to include a long version string for CraftBukkit. This value is too long for proper display so we now send a shortened string consisting of the server implementation and the minecraft version.
* Re-add WorldLoadEvent lost in 314051580a0a8e4745d3a539f232b552916eb302 ↵t00thpick12013-12-13-0/+4
| | | | | | | | Fixes BUKKIT-5125 In the 1.4.2 update for CraftBukkit, a missed diff resulted in the WorldLoadEvent no longer being fired for the worlds loaded on startup.
* Try to detect when to disable jline automatically. Fixes BUKKIT-5028Travis Watkins2013-12-03-0/+6
|
* 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.
* Update CraftBukkit to Minecraft 1.7.2mbax2013-11-30-248/+312
|
* Update CraftBukkit to 1.6.4feildmaster2013-09-19-44/+54
|
* Correctly set level name for 'world' option. Fixes BUKKIT-4474EvilSeph2013-07-09-1/+1
|
* Update CraftBukkit to 1.6.2mbax2013-07-08-1/+1
|
* Fix world preparation status output. Fixes BUKKIT-4407mbax2013-07-02-3/+2
|
* Update CraftBukkit to 1.6.1Nate Mortensen2013-07-01-195/+213
|
* Update CraftBukkit to Minecraft 1.5.2Travis Watkins2013-04-27-5/+14
|
* Use wall time instead of ticks for several things. Fixes BUKKIT-4059Travis Watkins2013-04-13-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Currently furnace smelting and the item pickup delay timer use wall time (aka actual time passed) to emulate a constant tick rate so run at the same speed regardless of the server's actual tick rate. There are several other places this makes sense so this commit converts them. The item despawn timer is converted so now always takes 5 minutes. Users know this 5 minute number well so keeping this constant helps to avoid confusion. This also helps alleviate lag because if a large number of item drops is the reason your server is running slowly having them stay around longer just means your server is slow longer. Potion brewing and the zombie villager conversion timer are now constant. These match the furnace criteria of being useful for hiding lag and not having a detrimental effect on gameplay. Potion effects are now also using wall time. The client is told about effect times in ticks and displays this information to the user as minutes and seconds assuming a solid 20 ticks per second. The server does have code for updating the client with the current time remaining to help avoid skew due to differing tick rates but making this a constant makes sense due to this display.
* Implement Scoreboard API. Adds BUKKIT-3776mbax2013-04-04-0/+2
| | | | | | | | | | | | | | | | | | This implementation facilitates the correspondence of the Bukkit Scoreboard API to the internal minecraft implementation. When the first scoreboard is loaded, the scoreboard manager will be created. It uses the newly added WeakCollection for handling plugin scoreboard references to update the respective objectives. When a scoreboard contains no more active references, it should be garbage collected. An active reference can be held by a still registered objective, team, and transitively a score for a still registered objective. An internal reference will also be kept if a player's specific scoreboard has been set, and will remain persistent until that player logs out. A player's specific scoreboard becomes the scoreboard used when determining team structure for the player's attacking damage and the player's vision.
* Cleanup comments, formatting, etcTravis Watkins2013-03-25-13/+11
|
* Update CraftBukkit to Minecraft 1.5.1Travis Watkins2013-03-20-1/+1
|
* Update CraftBukkit to Minecraft 1.5Travis Watkins2013-03-15-152/+146
|
* Update CraftBukkit to Minecraft 1.4.7feildmaster2013-01-17-1/+1
|
* Update CraftBukkit to Minecraft 1.4.6feildmaster2012-12-20-10/+11
|
* Load chunks asynchronously for players.Travis Watkins2012-12-12-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a player triggers a chunk load via walking around or teleporting there is no need to stop everything and get this chunk on the main thread. The client is used to having to wait some time for this chunk and the server doesn't immediately do anything with it except send it to the player. At the same time chunk loading is the last major source of file IO that still runs on the main thread. These two facts make it possible to offload chunks loaded for this reason to another thread. However, not all parts of chunk loading can happen off the main thread. For this we use the new AsynchronousExecutor system to split chunk loading in to three pieces. The first is loading data from disk, decompressing it, and parsing it in to an NBT structure. The second piece is creating entities and tile entities in the chunk and adding them to the world, this is still done on the main thread. The third piece is informing everyone who requested a chunk load that the load is finished. For this we register callbacks and then run them on the main thread once the previous two stages are finished. There are still cases where a chunk is needed immediately and these will still trigger chunk loading entirely on the main thread. The most obvious case is plugins using the API to request a chunk load. We also must load the chunk immediately when something in the world tries to access it. In these cases we ignore any possibly pending or in progress chunk loading that is happening asynchronously as we will have the chunk loaded by the time they are finished. The hope is that overall this system will result in less CPU time and pauses due to blocking file IO on the main thread thus giving more consistent performance. Testing so far has shown that this also speeds up chunk loading client side although some of this is likely to be because we are sending less chunks at once for the client to process. Thanks for @ammaraskar for help with the implementation of this feature.
* Update CraftBukkit to Minecraft 1.4.5.Travis Watkins2012-11-16-1/+1
|
* Update CraftBukkit to Minecraft 1.4.4.Travis Watkins2012-11-13-31/+36
|
* Migrate world data with world when switching from vanilla Minecraft toEvilSeph2012-11-02-0/+9
| | | | Bukkit. Fixes BUKKIT-2816 and BUKKIT-2760
* [Bleeding] Fix mistranslation affecting time of the server vs time of day.md_52012-11-02-1/+1
| | | | Fixes BUKKIT-2797
* Fixed generator-settings not being set. Fixes BUKKIT-2652EvilSeph2012-10-28-0/+1
|
* Update CraftBukkit to Minecraft 1.4(.2).Travis Watkins2012-10-27-100/+117
|
* Delegate tab-completion. Fixes BUKKIT-2181. Adds BUKKIT-2602Score_Under2012-10-15-0/+5
| | | | | | 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-31/+30
| | | | | | | | | | | | | | | | | | | | | 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.
* CraftBukkit comment fixesWesley Wolfe2012-09-14-2/+2
|
* 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/+2
| | | | | | | | | | | | | | | | | 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-21/+21
|
* Update to 1.3.2Travis Watkins2012-08-25-7/+4
|
* Enable hardcore support. Fixes BUKKIT-2259feildmaster2012-08-12-1/+1
| | | | | | | - Hardcore requires a newly generated world - You will be banned if you die in a hardcore world - You will NOT be banned if you die in a non-vanilla world - Your "heart container" will not change without logging back in. (Vanilla bug)
* Re-add support for full chunk saving so the server save-alls on stop. Fixes ↵EvilSeph2012-08-08-1/+3
| | | | BUKKIT-2158
* Make periodic chunk saving less aggressive and fixed double player data ↵EvilSeph2012-08-07-5/+1
| | | | saving. Fixes BUKKIT-1994 and fixes BUKKIT-2144
* Implement new AsyncPlayerChatEvent. Addresses BUKKIT-2064Wesley Wolfe2012-08-03-0/+24
| | | | | | | | | | | | | | | | | | | | | Added two utility collections for use with PlayerChatEvents allowing lazier initialization of events and less need to synchronize against the player list. Provided a hidden queue system for similar logic to pre-1.3 chat. When a plugin is listening for the deprecated PlayerChatEvent, all chat will be delayed to be mirror executed from the main thread. All developers are encouraged to immediately update to the developmental Bukkit chat API as a minimum transition for server stability. Additionally, changes were required to bring thread-safety to the flow logic. CopyOnWriteArrayList is the only viable means to produce thread safety with minimal diff; using a sane pre-implemented collection would require reworking of sections of NMS logic. As a minor change, implemented expected functionality for PlayerCommandPreProcessEvent. Setting the player should now change the player executing the command.
* Process entity ticks on worlds without players. Fixes BUKKIT-2031Mike Primm2012-08-03-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Both the CB 1.3.1 code, and vanilla 1.3.1 code, have modified the behavior of entity tick processing in a way that can lead to disabling of entity cleanup. Specifically, the tickEntities() call in n.m.s.World, which processes both the entity cleanup (removing from the world entity list) and tile entity tick processing (furnaces and such) does not get called by n.m.s.MinecraftServer's q() method (which drives tick processing calls in general) when no players are on the given world. This causes a serious memory leak when automation processes, like dynmap mapping, load and unload chunks - as entities on unloaded chunks are only cleaned up during entity tick processing. It also will cause issues with any mods that use persistent chunk loading (that is, keeping chunks loaded so that tile entities will continue being processed), since such processing will no longer function without at least one player on the given world. In any case, the tickEntities() call should be called in the same fashion as under 1.2.x (each tick, independent of player population, as opposed to being suspended indefinitely when no players are on the given world). The specific memory leak observed, with removing the unloaded entites from the world, requires this call be made regularly (or, at least, whenever the entity unload queue (world.g) is not empty. Closes GH-832
* Add missing callWorldInitEvent on startup.feildmaster2012-08-02-0/+2
|
* Update CraftBukkit to Minecraft 1.3.1feildmaster2012-08-02-405/+757
|
* Cleaned up CraftBukkit comments in NMS.Wesley Wolfe2012-07-23-24/+14
| | | | | | | | | | | | | Added newlines at the end of files Fixed improper line endings on some files Matched start - end comments Added some missing comments for diffs Fixed syntax on some spots Minimized some diff Removed some no longer used files Added comment on some required files with no changes Fixed imports of items used once Added imports for items used more than once
* Add query-plugins setting. Addresses BUKKIT-1781H31IX2012-06-20-1/+1
|
* Support asynchronous events; Addresses BUKKIT-1212Wesley Wolfe2012-06-13-3/+5
|
* Add fallback for when jline fails to initialize. Fixes BUKKIT-1675.Travis Watkins2012-05-23-2/+11
|
* Update to jline 2. Fixes BUKKIT-717EdGruberman2012-05-15-2/+9
| | | | | JLine 2 allows for better color matching in the console and support for colors in console on Windows. Hopefully provides better performance as well.
* Added missing //CB commentDinnerbone (Laptop)2012-03-30-1/+1
|