56 Commits

Author SHA1 Message Date
EvilSeph
5bf2aa9a9f We build for 1.5. 2012-03-01 04:41:25 -05:00
rmichela
b8444288a9 [Bleeding] Added Help API. Addresses BUKKIT-863 2012-03-01 04:28:21 -05:00
Wesley Wolfe
337860b7c0 [Bleeding] Optimized locToBlock. Addresses BUKKIT-815 2012-02-29 20:13:05 -05:00
rmichela
cd732ee3f7 [Bleeding] Added a Metadata framework for Entities, Blocks, and Worlds
This metadata implementation has the following features:

- All metadata is lazy. Metadata values are not actually computed until another plugin requests them. Memory and CPU are conserved by not computing and storing unnecessary metadata values.

- All metadata is cached. Once a metadata value is computed its value is cached in the metadata store to prevent further unnecessary computation. An invalidation mechanism is provided to flush the cache and force recompilation of metadata values.

- All metadata is stored in basic data types. Convenience methods in the MetadataValue class allow for the conversion of metadata data types when possible. Restricting metadata to basic data types prevents the accidental linking of large object graphs into metadata. Metadata is persistent across the lifetime of the application and adding large object graphs would damage garbage collector performance.

- Metadata access is thread safe. Care has been taken to protect the internal data structures and access them in a thread safe manner.

- Metadata is exposed for all objects that descend from Entity, Block, and World. All Entity and World metadata is stored at the Server  level and all Block metadata is stored at the World level.

- Metadata is NOT keyed on references to original objects - instead metadata is keyed off of unique fields within those objects. Doing this allows metadata to exist for blocks that are in chunks not currently in memory. Additionally, Player objects are keyed off of player name so that Player metadata remains consistent between logins.

- Metadata convenience methods have been added to all Entities, Players, Blocks, BlockStates, and World allowing direct access to an individual instance's metadata.

- Players and OfflinePlayers share a single metadata store, allowing player metadata to be manipulated regardless of the player's current online status.
2012-02-29 19:16:04 +01:00
TomyLobo
07f964813c Reduced excessive exception handling in NumberConversions. Addresses BUKKIT-825
This also allows, for instance, to parse complex numbers with imaginary part=0, if the according toString method omits zero components.
This also saves some unboxing (Foo.valueOf returns a wrapper, while Foo.parseFoo returns a primitive)
2012-02-28 17:20:51 -05:00
Wesley Wolfe
3bb6fa8849 [Bleeding] Cleanup clone methods. 2012-02-20 05:47:03 -05:00
Erik Broes
049a7cc1d0 Deprecation cleanup. 2012-02-18 13:05:58 -05:00
EvilSeph
76dc09be3c Cleanup. 2012-01-27 18:23:27 -05:00
Erik Broes
88c17a7f86 Generic cleaning 2012-01-15 14:37:43 +01:00
Erik Broes
2312c4d258 Vector.getMidpoint should not modify the current Vector. Thanks TomyLobo for noticing. 2012-01-04 09:17:33 +01:00
Erik Broes
b9fca3c04d Generic cleanup of warnings, whitespace and style. 2011-12-25 16:02:30 +01:00
Nathan Adams
03fa22001b Configuration methods .getX (int/double/etc) now try to cast existing values where possible. This fixes BUKKIT-290 2011-12-12 18:34:26 +00:00
Nathan Adams
edf26dfd5e Added /xp and /toggledownfall commands from vanilla 2011-12-02 06:38:33 +00:00
Nathan Adams
4485364e17 Small javadoc cleanup 2011-10-10 21:58:44 +01:00
Dinnerbone
ee27cc07f0 Added new Configuration classes 2011-10-10 21:06:34 +01:00
EvilSeph
2276eb899e Revert "Added callback line of sight methods. Thanks xZise!"
This reverts commit 1df3a823ba477d68b359e5ac246345a05fe82ebd.
2011-10-03 15:15:50 -04:00
EvilSeph
35761eb83e Added callback line of sight methods. Thanks xZise! 2011-10-02 23:04:09 -04:00
Dinnerbone
fe4f4c5f58 Many javadoc fixes thanks to Celtic Minstrel 2011-09-25 02:56:40 +01:00
EvilSeph
f0b709432d Fixed GameModeCommand not being limited to Ops by default. 2011-09-14 23:22:05 -04:00
EvilSeph
879fc912f4 Added GameMode command. 2011-09-14 17:43:11 -04:00
Dinnerbone
6dab14e2d7 New BroadcastPermissions default permission registrations 2011-09-03 00:52:28 +01:00
Dinnerbone
e54b7ba74c Added new Server.broadcast method to broadcast to specific groups of users, including non-players 2011-09-02 22:24:39 +01:00
Dinnerbone
0d11aa7cca Commands now have the ability to set a permission required before execution 2011-09-02 19:27:12 +01:00
Dinnerbone
d894e11b51 Fixed fast floor in NoiseGenerator 2011-07-18 18:19:43 +01:00
Erik Broes
9b0dbed88e Deprecated Block.getFace(Face) and Block.getFace(Face,int); use getRelative() 2011-07-17 17:02:37 +02:00
EvilSeph
652bf7ad33 Made ConfigurationNode.getAll() more maintainable. Thanks devinsba! 2011-07-14 14:48:57 -04:00
Dinnerbone
654042d056 Added unbiased octave generators + normalized argument to generating noise through octaves 2011-07-13 10:38:18 +01:00
Dinnerbone
3c65461a9d Fixed static methods in PerlinNoiseGenerator 2011-07-08 14:39:20 +01:00
Dinnerbone
9e51583ca2 Added a Perlin and Simplex noise generator for utils 2011-06-26 17:41:25 +01:00
EvilSeph
2c04c75fe1 Added a method to retreive all fully qualified configuration values for a config. Thanks devinsba! 2011-06-21 15:39:29 -04:00
Dinnerbone
30ee49f209 Server administrators can now specify custom aliases in bukkit.yml which override any aliases set by plugins. 2011-06-17 04:07:17 +01:00
Erik Broes
0ac6a0bfe6 Generic cleanup 2011-06-12 12:49:08 +02:00
sk89q
9e762a9191 Added the ability to set a header when saving configuration files. 2011-06-09 23:31:00 -07:00
EvilSeph
000e0cdcbf Fixed the value of empty YAML nodes being written as "null". Thanks rcjrrjcr! 2011-06-07 18:21:14 -04:00
Erik Broes
992f1f2bf3 Whitespace + general cleanup 2011-05-15 14:06:02 +02:00
EvilSeph
6d4df77586 Added support for an update on load feature for plugins. Thanks Raphfrk!
Any files placed in the new (optional) update folder are automatically copied into the plugins directory the next time a reload happens. This allows safe updating of the plugin .jar files.
2011-05-05 20:18:12 -04:00
Erik Broes
b39503de71 Updated README for line-ending demands, also fixed line-endigs. 2011-04-25 13:24:32 +02:00
Dinnerbone
be4b01bf28 Configuration tweaks - enforce default + parent file nullcheck 2011-04-01 16:09:23 +01:00
Dinnerbone
e1055afd1f Line-endings! 2011-03-31 16:37:56 +01:00
stevenh
c08b5f3558 Fixed blank yaml config files throwing a null pointer exception 2011-03-11 20:07:49 +00:00
VictorD
aa0614d785 Added a few null pointer checks and performed minor touchups (tried improving a few equals, clone and hashCode methods). 2011-03-05 12:27:51 +01:00
Erik Broes
c383d1f385 Java 1.5 compat. 2011-03-02 15:23:15 +01:00
Dinnerbone
e5db796188 Replaced Vector.hashCode with a more reliable method 2011-02-19 23:11:56 +00:00
Raphfrk
52954911bd Added target block ray trace functionality. 2011-02-18 20:47:59 -05:00
Simon Rigby
5d60a1bc48 Adds removeProperty(String path) and getEmptyNode() 2011-02-11 21:26:33 -05:00
Animosity
3a05654540 Adds suppport for node lists. Tested and verified in CraftIRC 2011-02-07 03:26:51 +08:00
sk89q
1d8cd948d2 Added BlockVector a la WorldEdit as requested by #246. This BlockVector is safe to be used as keys in hash sets and hash maps, but it is mutable and careful attention must be paid to not modify the vector post-insertion into a set or map. 2011-02-05 23:20:06 -08:00
sk89q
481aec9ee6 Added node and writing functions to Configuration. 2011-02-05 22:45:12 -08:00
Dinnerbone
7f6f90a20e You shouldn't be here, little guy. The ConfigurationNode is a tough place for a young keyword to live. 2011-02-04 12:17:47 +00:00
Erik Broes
01988e8f6b General cleanup (deprecated+whitespace) 2011-02-02 00:28:41 +01:00