Commit graph

1073 commits

Author SHA1 Message Date
CraftBukkit/Spigot
3f728bab1a Update CraftBukkit to Minecraft 1.4.4.
By: Travis Watkins <amaranth@ubuntu.com>
2012-11-06 06:05:28 -06:00
CraftBukkit/Spigot
f6c50c0851 Updated version to 1.4.2-R0.3-SNAPSHOT for development towards next release.
By: EvilSeph <evilseph@gmail.com>
2012-11-03 01:08:15 -04:00
CraftBukkit/Spigot
bc548f4fc3 Updated version to 1.4.2-R0.2 in pom.xml for Beta.
By: EvilSeph <evilseph@gmail.com>
2012-11-03 00:51:40 -04:00
CraftBukkit/Spigot
e9a41e71d6 [Bleeding] Fix mistranslation affecting time of the server vs time of day.
Fixes BUKKIT-2797

By: md_5 <md_5@bigpond.com>
2012-11-02 18:55:42 +11:00
CraftBukkit/Spigot
ac64db58aa Improved the potion test to detect missing PotionType values.
By: Wesley Wolfe <weswolf@aol.com>
2012-11-01 03:38:25 -05:00
CraftBukkit/Spigot
927fe6d97c Fix compile issue with chunk generation.
By: Travis Watkins <amaranth@ubuntu.com>
2012-11-02 00:12:49 -05:00
CraftBukkit/Spigot
50236b9a97 Delegate recreateStructures to nms provider. Fixes BUKKIT-2760
This was a miss when updating to 1.4.2

By: feildmaster <admin@feildmaster.com>
2012-11-01 21:11:32 -05:00
CraftBukkit/Spigot
6577736185 Add CraftArt mappings for Wither. Fixes BUKKIT-2667.
The static assertions are not normally evaluated in the JVM, and failed
to fail when the enums went from size 25 to size 26. This meant missing
values would not be detected at runtime and instead return null,
compounding problems later. The switches should never evaluate to null
so will instead throw runtime assertion errors.

Additional unit tests were added to detect new paintings and assure they
have proper, unique mappings. The test checks both that a mapping
exists, is not null, and does not duplicate another mapping.

By: Wesley Wolfe <weswolf@aol.com>
2012-11-01 03:06:47 -05:00
CraftBukkit/Spigot
1816b5b800 Change ItemFrame to actually provide a defensive copy. Fixes BUKKIT-2784
If a defensive copy is not used in the API, changes to the item are
reflected in memory, but never updated to the client. It also goes
against the general contract provided in Bukkit, where setItem should be
the only way to change the underlying item frame.

By: Wesley Wolfe <weswolf@aol.com>
2012-10-31 18:07:27 -05:00
CraftBukkit/Spigot
725d2e84dc Updated version to 1.4.2-R0.2-SNAPSHOT for development towards next release.
By: EvilSeph <evilseph@gmail.com>
2012-10-31 20:51:53 -04:00
CraftBukkit/Spigot
cb5dfdd896 Updated version to 1.4.2-R0.1 in pom.xml for Beta.
By: EvilSeph <evilseph@gmail.com>
2012-10-31 15:59:34 -04:00
CraftBukkit/Spigot
7399bc6c11 Add inventory and slot types for new containers. Fixes BUKKIT-2741
By: Travis Watkins <amaranth@ubuntu.com>
2012-10-31 12:14:39 -05:00
CraftBukkit/Spigot
64a7434f5a Implement API for ambient mob spawn limit. Add spawn-limit.ambient to
bukkit.yml. Adds BUKKIT-2765

By: Travis Watkins <amaranth@ubuntu.com>
2012-10-31 11:18:41 -05:00
CraftBukkit/Spigot
31bd23bbfe Use BlockCommandSender for dispatching Command block commands
Also allow commands that don't start with a / to match vanilla behavior

By: Travis Watkins <amaranth@ubuntu.com>
2012-10-31 06:36:55 -05:00
CraftBukkit/Spigot
ef3acaeea9 Expose API for managing and using GameRules. Adds BUKKIT-2757
By: feildmaster <admin@feildmaster.com>
2012-10-30 21:24:48 -05:00
CraftBukkit/Spigot
6ea108ec2e Implement the API for ItemFrames. Adds BUKKIT-2668
By: h31ix <effectsdude@gmail.com>
2012-10-31 00:59:06 -04:00
CraftBukkit/Spigot
abdcae8885 Expose API for clearing a player's inventory with a successful count
return. Adds BUKKIT-2745

By: EvilSeph <evilseph@gmail.com>
2012-10-30 02:52:53 -04:00
CraftBukkit/Spigot
026494018e Expose API for giving and taking experience levels for use with ExpCommand's new behaviour with Minecraft 1.4. Adds BUKKIT-2739
By: EvilSeph <evilseph@gmail.com>
2012-10-29 12:37:45 -04:00
CraftBukkit/Spigot
c464cba5b2 Revert changing EntityType.FIREBALL to LARGE_FIREBALL
By: feildmaster <admin@feildmaster.com>
2012-10-29 20:17:52 -05:00
CraftBukkit/Spigot
28e9f1ac43 Get skull data before destroying block. Fixes BUKKIT-2723
Skull blocks store their type in a tile entity and use their block data
as rotation. When breaking a block the block data is used for determining
what item to drop. Simply changing this to use the skull method for getting
their drop data is not enough because their tile entity is already gone.
Therefore we have to special case skulls to get the correct data _and_ get
that data before breaking the block.

By: Travis Watkins <amaranth@ubuntu.com>
2012-10-29 12:38:34 -05:00
CraftBukkit/Spigot
9ddec3654f Add isHardcore API to check if the server is in hardcore mode or not. Adds BUKKIT-2707
By: EvilSeph <evilseph@gmail.com>
2012-10-29 01:35:31 -04:00
CraftBukkit/Spigot
cadb8c3aa7 Add new entities to World.spawn method. Fixes BUKKIT-2658
By: Travis Watkins <amaranth@ubuntu.com>
2012-10-28 02:20:41 -05:00
CraftBukkit/Spigot
1f7d5bc41b Remove spawn-radius setting in bukkit.yml in favour of spawn-protection in
server.properties. Fixes BUKKIT-2657

By: EvilSeph <evilseph@gmail.com>
2012-10-28 01:30:09 -04:00
CraftBukkit/Spigot
1177b02708 Update CraftBukkit to Minecraft 1.4(.2).
By: Travis Watkins <amaranth@ubuntu.com>
2012-10-24 22:53:23 -05:00
CraftBukkit/Spigot
b2439099d0 Updated version to 1.3.2-R3.0 in pom.xml for RB.
By: EvilSeph <evilseph@gmail.com>
2012-10-27 21:10:46 -04:00
CraftBukkit/Spigot
d451e774c8 Updated version to 1.3.2-R2.1-SNAPSHOT for development towards next release.
By: EvilSeph <evilseph@gmail.com>
2012-10-17 07:36:44 -04:00
CraftBukkit/Spigot
60dfb3206a Updated version to 1.3.2-R2.0 in pom.xml for RB.
By: EvilSeph <evilseph@gmail.com>
2012-10-17 07:30:23 -04:00
CraftBukkit/Spigot
246fa5b12f Implement chat tab completion API. Fixes BUKKIT-2608. Adds BUKKIT-2607.
The chat tab completion implementation also includes a sanity check to
assure type-safety in the list.

By: Wesley Wolfe <weswolf@aol.com>
2012-10-17 04:31:36 -05:00
CraftBukkit/Spigot
bb2c1736c3 Delegate tab-completion. Fixes BUKKIT-2181. Adds BUKKIT-2602
CommandMap now contains the functionality for tab completion. This
commit replaces the vanilla implementation and simply delegates it to
the Bukkit API.

By: Score_Under <seejay.11@gmail.com>
2012-10-09 19:44:04 +01:00
CraftBukkit/Spigot
730e3ceb1b Queue tasks from secondary threads. Fixes BUKKIT-2546 and BUKKIT-2600
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.

By: Wesley Wolfe <weswolf@aol.com>
2012-10-07 15:08:21 -05:00
CraftBukkit/Spigot
dd1816bda4 Implement new scheduler API. Adds BUKKIT-836
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.

By: Wesley Wolfe <weswolf@aol.com>
2012-10-06 16:23:56 -05:00
CraftBukkit/Spigot
e29c5d9725 Ensure entity isn't destroyed when trying to show it. Fixes BUKKIT-2038
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.

By: Travis Watkins <amaranth@ubuntu.com>
2012-10-13 15:27:45 -05:00
CraftBukkit/Spigot
515032c89a Updated version to 1.3.2-R1.1-SNAPSHOT for development towards next release.
By: EvilSeph <evilseph@gmail.com>
2012-09-28 16:34:17 -04:00
CraftBukkit/Spigot
15b7c17284 Updated version to 1.3.2-R1.0 in pom.xml for RB.
By: EvilSeph <evilseph@gmail.com>
2012-09-28 16:31:23 -04:00
CraftBukkit/Spigot
980784204e Remove player from destroy queue when they go visible. Fixes BUKKIT-2071
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.

By: Travis Watkins <amaranth@ubuntu.com>
2012-09-28 14:53:28 -05:00
CraftBukkit/Spigot
0d3ff61b07 Fix typo causing a task to be repeated in debug. Addresses BUKKIT-2549
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.

By: Wesley Wolfe <weswolf@aol.com>
2012-09-28 02:39:22 -05:00
CraftBukkit/Spigot
64da1ccd5c Updated version to 1.3.2-R0.3-SNAPSHOT for development towards next release.
By: EvilSeph <evilseph@gmail.com>
2012-09-26 19:20:20 -04:00
CraftBukkit/Spigot
59300b50a1 Updated version to 1.3.2-R0.2 in pom.xml for Beta.
By: EvilSeph <evilseph@gmail.com>
2012-09-26 19:16:20 -04:00
CraftBukkit/Spigot
f57bc0f77f Map org.bukkit.Sound to String values for sending to client.
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.

By: Wesley Wolfe <weswolf@aol.com>
2012-09-26 16:34:06 -05:00
CraftBukkit/Spigot
4277872612 Replace LongObjectHashMap with a more efficient implementation
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.

By: Travis Watkins <amaranth@ubuntu.com>
2012-09-11 05:51:09 -05:00
CraftBukkit/Spigot
42dfd206a6 [Bleeding] Add autosave interval setting in bukkit.yml. Adds BUKKIT-2507
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.

By: Mike Primm <mike@primmhome.com>
2012-08-18 17:36:39 -05:00
CraftBukkit/Spigot
2a57bac117 Bulk pending cleanup.
By: Wesley Wolfe <weswolf@aol.com>
2012-09-09 23:19:28 -05:00
CraftBukkit/Spigot
bc59fff79a Change local jline checks to not use String literals. Fixes BUKKIT-2455.
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).

By: Luke Granger-Brown <git@lukegb.com>
2012-09-02 00:56:13 +01:00
CraftBukkit/Spigot
c650c443b3 Add information about async tasks to CrashReports. Addresses BUKKIT-2491
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.

By: Wesley Wolfe <weswolf@aol.com>
2012-09-09 00:34:41 -05:00
CraftBukkit/Spigot
66380e6d14 Fix crash from console-commands throwing exception. Fixes BUKKIT-2479
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.

By: Wesley Wolfe <weswolf@aol.com>
2012-09-06 22:11:17 -05:00
CraftBukkit/Spigot
e719bbd88c Fix Future task waiting logic. Fixes BUKKIT-2408
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..

By: Wesley Wolfe <weswolf@aol.com>
2012-08-26 10:25:11 -05:00
CraftBukkit/Spigot
2ff57fb6b9 Updated version to 1.3.2-R0.2-SNAPSHOT for development towards next release.
By: EvilSeph <evilseph@gmail.com>
2012-08-25 04:02:20 -04:00
CraftBukkit/Spigot
e48ae897a2 Updated version to 1.3.2-R0.1 in pom.xml for Beta.
By: EvilSeph <evilseph@gmail.com>
2012-08-25 00:55:38 -04:00
CraftBukkit/Spigot
c535d5adc6 Update to 1.3.2
By: Travis Watkins <amaranth@ubuntu.com>
2012-08-24 19:51:51 -05:00
CraftBukkit/Spigot
1a7e5e4725 Don't refactor packages with natives
By: feildmaster <admin@feildmaster.com>
2012-08-22 18:32:48 -05:00