Commit graph

19209 commits

Author SHA1 Message Date
CraftBukkit/Spigot
c144b2459c Use a dynamic pool size for the iterator cache
Many codepaths only end up with one iterator being used at a time and
most of the rest only get up to two being used so using a static pool of
three is wasteful. This also allows us to efficiently handle cases that
exceed 3 iterators in use. Overall this dramatically increases the hit rate
and results in less iterators being created.

By: Travis Watkins <amaranth@ubuntu.com>
2012-08-19 19:59:58 -05:00
CraftBukkit/Spigot
7a4660c49e Implement API to retrieve and open EnderChests. Adds BUKKIT-2016
By: feildmaster <admin@feildmaster.com>
2012-08-20 15:52:44 -05:00
CraftBukkit/Spigot
4ada047593 [Bleeding] Remove redundant chunkList from ChunkProviderServer
This ArrayList duplicates part of the functionality of the much more
efficient chunk map so can be removed as the map can be used in the few
places this was needed.

By: Mike Primm <mike@primmhome.com>
2012-08-11 17:34:22 -05:00
CraftBukkit/Spigot
327e789c7f Add LongObjectHashMap and LongHashSet
Replace uses of LongHashtable and LongHashset with new implementations.
Remove EntryBase, LongBaseHashtable, LongHashset, and LongHashtable as they
are no longer used.

LongObjectHashMap does not use Entry or EntryBase classes internally for
storage so has much lower object churn and greater performance. LongHashSet
is not as much of performance win for our use case but for general use is
up to seventeen times faster than the old implementation and is in fact
faster than alternatives from "high performance" java libraries. This is
being added so that if someone tries to use it in the future in a place
unrelated to its current use they don't accidentally end up with something
slower than the Java collections HashSet implementation.

By: Travis Watkins <amaranth@ubuntu.com>
2012-08-17 18:53:59 -05:00
CraftBukkit/Spigot
9c569d394d Add iterator cache to UnsafeList and use it in hotspots
Adds a specialized iterator for the list and a pool of iterators to avoid
object churn. Also optimizes the clear() method to reduce object creation.

By: Travis Watkins <amaranth@ubuntu.com>
2012-08-17 12:55:33 -05:00
CraftBukkit/Spigot
f694f8215b Updated version to 1.3.1-R2.1-SNAPSHOT for development towards next release.
By: EvilSeph <evilseph@gmail.com>
2012-08-19 09:01:23 -04:00
CraftBukkit/Spigot
61e4d2c4ad Updated version to 1.3.1-R2.0 in pom.xml for RB.
By: EvilSeph <evilseph@gmail.com>
2012-08-19 08:47:47 -04:00
CraftBukkit/Spigot
4c88eae55b Fix issues with chunk saving. Fixes BUKKIT-2158, BUKKIT-2018 and BUKKIT-2229
By: Mike Primm <mike@primmhome.com>
2012-08-12 18:40:49 -05:00
CraftBukkit/Spigot
84483a55f2 Add more detailed CrashReport for CraftBukkit. Addresses BUKKIT-2319
By: Wesley Wolfe <weswolf@aol.com>
2012-08-17 23:11:26 -05:00
CraftBukkit/Spigot
c0ce2ea3a1 Use correct SlotType's for merchants. Fixes BUKKIT-2257
By: feildmaster <admin@feildmaster.com>
2012-08-14 18:28:00 -05:00
CraftBukkit/Spigot
73cf129db7 Implement methods for spawning FallingBlocks and add various FallingBlock methods. Adds BUKKIT-2282
By: feildmaster <admin@feildmaster.com>
2012-08-13 22:21:10 -05:00
CraftBukkit/Spigot
cc018c2203 Update CreatureSpawner.setSpawnedType(EntityType) to 1.3
They can spawn any valid entities now. What is a "valid" entity? A "valid" entity is an EntityType with a non-null getName(). (for example: PRIMED_TNT, FALLING_BLOCK)

By: feildmaster <admin@feildmaster.com>
2012-08-12 14:02:57 -05:00
CraftBukkit/Spigot
939c2c8477 Implement player speed API. Addresses BUKKIT-2205
By: Wesley Wolfe <weswolf@aol.com>
2012-08-10 00:00:04 -05:00
CraftBukkit/Spigot
7c3b98a7f9 Updated version to 1.3.1-R1.1-SNAPSHOT for development towards next release.
By: EvilSeph <evilseph@gmail.com>
2012-08-07 17:10:11 -04:00
CraftBukkit/Spigot
1fc2417f5d Updated version to 1.3.1-R1.0 in pom.xml for RB
By: EvilSeph <evilseph@gmail.com>
2012-08-07 02:31:21 -04:00
CraftBukkit/Spigot
24abca3c43 Implement new deprecated warning state configuration option
By: Wesley Wolfe <weswolf@aol.com>
2012-08-06 23:52:49 -05:00
CraftBukkit/Spigot
bf9001a3d3 Put forceChunkLoad back to its original value.
By: Travis Watkins <amaranth@ubuntu.com>
2012-08-05 20:03:12 -05:00
CraftBukkit/Spigot
7383d52df7 Implement new AsyncPlayerChatEvent. Addresses BUKKIT-2064
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.

By: Wesley Wolfe <weswolf@aol.com>
2012-08-03 06:24:55 -05:00
CraftBukkit/Spigot
a1a672d052 Fix mapping of ChunkSection nibble data to snapshot. Fixes BUKKIT-1977
By: Mike Primm <mike@primmhome.com>
2012-08-02 11:21:40 -05:00
CraftBukkit/Spigot
0eee4963fb Add trailing / to BukkitDL URLs. Fixes BUKKIT-2015.
Also adds CraftBukkit version number to user agent when communicating with
BukkitDL.

By: Luke Granger-Brown <git@lukegb.com>
2012-08-02 23:35:08 +01:00
CraftBukkit/Spigot
fdfc871461 Add test for WorldType's
By: feildmaster <admin@feildmaster.com>
2012-08-02 09:10:15 -05:00
CraftBukkit/Spigot
6e2987bb35 Update CraftBukkit to Minecraft 1.3.1
By: feildmaster <admin@feildmaster.com>
2012-07-29 02:33:13 -05:00
CraftBukkit/Spigot
a45bcca987 Updated version to 1.2.5-R5.1-SNAPSHOT for development towards next release.
By: EvilSeph <evilseph@gmail.com>
2012-07-28 02:13:53 -04:00
CraftBukkit/Spigot
08dadaffd6 Updated version to 1.2.5-R5.0 in pom.xml for RB.
By: EvilSeph <evilseph@gmail.com>
2012-07-28 01:49:49 -04:00
CraftBukkit/Spigot
985d65840b Implement getExpToLevel method. Fixes BUKKIT-1906
By: feildmaster <admin@feildmaster.com>
2012-07-10 13:32:21 -05:00
Bukkit/Spigot
d8cfc3fa42 [BREAKING] Use event class instead of event for timings. Fixes BUKKIT-4664
TimedRegisteredListener uses a reference to the first event fired. This
causes a memory leak in the server for any references that event has. This
changes TimedRegisteredListener to only store a reference to the class of
the event.

This change is intentionally a breaking change, as it is an obscure part
of the API. A non-breaking change would require the leak to be maintained
or an immediate update for any plugins using the method, as it would be an
indirect break.

A unit test is also included to check behavior of shared superclass
functionality.

By: Score_Under <seejay.11@gmail.com>
2012-07-05 23:51:12 +01:00
Bukkit/Spigot
9bc7b6277e Add ConfigurationSerializable-Serializable compatibility. Adds BUKKIT-4662
This commit adds a comaptibility layer for use between
ConfigurationSerializable and Java Serializable, such that when using the
Bukkit object streams, any ConfigurationSerializable acts as if it
implements Serializable for purposes of that wrapped stream.

Included are a set of unit tests for the stream with a check for backward
compatibility across versions.

By: Wesley Wolfe <weswolf@aol.com>
2013-04-25 06:06:12 -05:00
Bukkit/Spigot
bdc0f04ee3 Relax generic types for ConfigurationSerialization
The method signatures are unnecessarily strict for the generic signatures.
This change may cause a compile-time error for extending classes overriding
methods, but no byte signature or compile time call signatures change.

By: Wesley Wolfe <weswolf@aol.com>
2013-04-25 03:53:54 -05:00
Bukkit/Spigot
7589be7e78 Updated version to 1.6.2-R0.2-SNAPSHOT for development towards next release.
By: EvilSeph <evilseph@gmail.com>
2013-08-04 00:44:08 -04:00
Bukkit/Spigot
440e84eeca Updated version to 1.6.2-R0.1 in pom.xml for Beta.
By: EvilSeph <evilseph@gmail.com>
2013-08-03 19:59:11 -04:00
Bukkit/Spigot
599ec05858 Pulling all pending Bukkit-JavaDoc changes
By: Edmond Poon <sagaciouszzzz@gmail.com>
2013-08-03 21:46:30 -04:00
Bukkit/Spigot
b9642786eb Use player as point of reference for min volume. Fixes BUKKIT-4640
When the minimum volume is being used because the distance is over a
threshold, the unit vector delta should be added to the player's
location, instead of where the command specified location.

This change makes the player's location the point of reference for
playing sounds when distance to volume scale is lower than minimum
specified volume.

By: Wesley Wolfe <weswolf@aol.com>
2013-08-03 18:26:31 -05:00
Bukkit/Spigot
fcde9e65af Add leash API. Adds BUKKIT-4459 and BUKKIT-4583
By: T00thpick1 <t00thpick1dirko@gmail.com>
2013-07-30 15:40:12 -04:00
Bukkit/Spigot
47d09288b4 Account for relative coordinates in PlaySound. Fixes BUKKIT-4639
By: Wesley Wolfe <weswolf@aol.com>
2013-08-02 20:26:55 -05:00
Bukkit/Spigot
804827463e Add 1.6 effect clear functionality. Fixes BUKKIT-4473
By: h31ix <zero_gravity@outlook.com>
2013-07-19 18:02:40 -04:00
Bukkit/Spigot
c0822889d0 Add 1.6 SpreadPlayers command. Fixes BUKKIT-4508
By: h31ix <zero_gravity@outlook.com>
2013-07-19 18:02:40 -04:00
Bukkit/Spigot
06abcc1323 Add 1.6 PlaySound command. Fixes BUKKIT-4489
By: h31ix <zero_gravity@outlook.com>
2013-07-19 18:02:40 -04:00
Bukkit/Spigot
133585430c Add API to control scaled health. Adds BUKKIT-4590
By: T00thpick1 <t00thpick1dirko@gmail.com>
2013-07-19 23:00:15 -04:00
Bukkit/Spigot
a8125bab26 Minecraft spec has changed and we're required to follow. We now build with Java 6.
By: EvilSeph <evilseph@gmail.com>
2013-07-10 19:30:45 -04:00
Bukkit/Spigot
33843978fc Add Horse API. Adds BUKKIT-4424
API has been added to interface with Horses and to modify their inventories. A new event, HorseJumpEvent, has been added to be fired whenever a horse jumps.

This commit fixes BUKKIT-4393.

By: h31ix <zero_gravity@outlook.com>
2013-07-10 12:18:45 -04:00
Bukkit/Spigot
74dfd2ceb7 Update Bukkit for Minecraft 1.6.2
By: Nate Mortensen <nate.richard.mortensen@gmail.com>
2013-07-07 22:31:48 -06:00
Bukkit/Spigot
cd6af522b1 Add scale health display API. Adds BUKKIT-4432
By: Wesley Wolfe <weswolf@aol.com>
2013-07-03 01:15:53 -05:00
Bukkit/Spigot
153cde6043 Update Bukkit for Minecraft 1.6.1
By: Wesley Wolfe <weswolf@aol.com>
2013-07-01 05:50:24 -05:00
Bukkit/Spigot
4a573b3312 Updated version to 1.5.2-R1.1-SNAPSHOT for development towards next release.
By: EvilSeph <evilseph@gmail.com>
2013-06-14 22:25:39 -04:00
Bukkit/Spigot
aab6f84dde Updated version to 1.5.2-R1.0 in pom.xml for RB.
By: EvilSeph <evilseph@gmail.com>
2013-06-14 21:52:51 -04:00
Bukkit/Spigot
0f08f915ec Add PlayerBookEditEvent. Adds BUKKIT-1995
Event related to book & quill and written book items.

By: Des Herriott <des.herriott@gmail.com>
2013-01-18 08:53:23 +00:00
Bukkit/Spigot
1839404cbf Consider full team display name. Fixes BUKKIT-4186
Through a miscalculation, team display names were being created via
command ignoring the first word in the submitted display names.

By: mbax <github@phozop.net>
2013-05-04 14:19:19 -04:00
Bukkit/Spigot
1078240410 Improve events for new inventory features. Adds BUKKIT-3859
This commit brings the InventoryClickEvent up to date with the new Minecraft
changes in 1.5.

InventoryDragEvent (thanks to @YLivay for his PR) is added to represent the
new "dragging" or "painting" functionality, where if you hold an itemstack and
click-drag over several slots, the items will be split evenly (left click) or
1 each (right click).

The ClickType enum is used to represent what the client did to trigger the
event.

The InventoryAction enum is reserved for future expansion, but will be used to
indicate the approximate result of the action.

Additionally, handling of creative inventory editing is improved with the new
InventoryCreativeEvent, and handling of numberkey presses is also improved
within InventoryClickEvent and CraftItemEvent.

Also, cancelling a creative click now displays properly on the client.

Adresses BUKKIT-3692, BUKKIT-4035, BUKKIT-3859 (new 1.5 events),
BUKKIT-2659, BUKKIT-3043, BUKKIT-2659, and BUKKIT-2897 (creative click events).

By: riking <rikingcoding@gmail.com>
2013-04-13 18:17:27 -07:00
Bukkit/Spigot
1366d7b502 Pulling all pending Bukkit-JavaDoc changes
By: Wesley Wolfe <weswolf@aol.com>
2013-05-16 04:41:09 -05:00
Bukkit/Spigot
a25fb951f6 Updated version to 1.5.2-R0.2-SNAPSHOT for development towards next release.
By: EvilSeph <evilseph@gmail.com>
2013-05-03 18:39:18 -04:00