Commit Graph

89 Commits

Author SHA1 Message Date
Travis Watkins
90d2cedd56 Add API for managing mob spawn limits per-world. Fixes BUKKIT-1565 2012-04-23 21:53:52 -04:00
Mike Primm
2a310576d1 [Bleeding] Add APIs for editing biome data. Addresses BUKKIT-1075 2012-03-08 01:52:01 -05:00
Celtic Minstrel
18a4a25c8b Adding/expanding documentation 2012-02-29 21:31:33 -05:00
Celtic Minstrel
17403d617a Fix javadoc errors/warnings 2012-02-29 21:31:28 -05:00
Celtic Minstrel
aaea53c517 Implementation of richer playEffect methods. Addresses BUKKIT-857 2012-02-29 15:02:59 -05:00
rmichela
a2c69f9f51 [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
Celtic Minstrel
cbb9bc0fa3 [Bleeding] Added EntityType to replace CreatureType. 2012-02-22 22:06:19 -05:00
Mike Primm
bdfe249fd7 Add getEntitiesByClass(Class<T>) and getEntitiesByClasses(Class<?>...), deprecate getEntitiesByClass(Class<T>...) 2012-02-18 21:36:06 -05:00
Erik Broes
7a06777e19 Deprecation cleanup. 2012-02-18 13:05:58 -05:00
EvilSeph
43815ca003 Added configurable animal and monster ticks per spawn setting. 2012-02-10 12:52:41 -05:00
Eric Stokes
33dd7cd0c7 Added 'generate-structure' setting support and WorldCreator property.
Fixes BUKKIT-655 and BUKKIT-592
2012-01-29 13:06:23 -05:00
Mike Primm
cd30d470e7 [Bleeding] Added: <T extends Entity> Collection<T> World.getEntitiesByClass(Class<T>... classes) 2012-01-17 19:44:41 +01:00
Nathan Adams
dba43691ca Added a World.getWorldType() method 2012-01-15 17:43:53 +00:00
Erik Broes
eb9dc64493 Generic cleaning 2012-01-15 14:37:43 +01:00
Nathan Adams
55cc8722c8 Implemented new Plugin Message API - see http://dinnerbone.com/blog/2012/01/13/minecraft-plugin-channels-messaging/ 2012-01-13 08:53:14 +00:00
Erik Broes
dce83b6ce4 Generic cleanup of warnings, whitespace and style. 2011-12-25 16:02:30 +01:00
Nathan Adams
d6f29fc8f3 Added world.getWorldFolder, server.getWorldContainer 2011-11-25 03:46:47 +00:00
Nathan Adams
4a9efb9064 BREAKING CHANGE: Renamed Environment.SKYLANDS to THE_END 2011-11-21 22:38:06 +00:00
EvilSeph
ab1591b013 Added Difficulty API. 2011-10-03 10:11:46 -04:00
Dinnerbone
e6c273e8b0 Many javadoc fixes thanks to Celtic Minstrel 2011-09-25 02:56:40 +01:00
Dinnerbone
f36d65e910 Added world.getSeaLevel() 2011-09-25 01:05:32 +01:00
Dinnerbone
5132d893e4 Added new autosave methods to World 2011-09-02 20:46:44 +01:00
EvilSeph
79ac053ef6 Revert "Interface for changing the view distance." 2011-08-15 14:26:42 -04:00
Andrew Ardill
362f1163d0 Interface for changing the view distance.
Can be changed server wide, per world and per player.
Only server wide changes are kept between server restarts.

Setting the server or world view distance should fail if the
view distance is not between 3 and 15
2011-08-15 15:11:34 +10:00
Rigby
85df0bcfef Implemented per world setting to keep the spawn in memory or not. 2011-08-05 14:37:56 -04:00
EvilSeph
7b2e455b25 Added various utility methods to make chunk handling easier. Thanks Meaglin! 2011-07-28 00:32:28 -04:00
Dinnerbone
f3f66d84d7 Added world.getMaxHeight (currently static until 1.8) 2011-07-20 00:03:16 +01:00
Erik Broes
46d8c4d92f Remove superfluous javadocs 2011-07-17 17:20:22 +02:00
Erik Broes
902fb0451a Remove some deprecated methods in World 2011-07-17 17:02:37 +02:00
Dinnerbone
c7518e7033 Added helper methods World.getHighestBlockAt, Block.isEmpty, Block.isLiquid. Added methods to safely retrieve biome/temperature/humidity data for a block without generating the block. 2011-07-13 10:39:41 +01:00
Tahg
1dde11e274 uuid changes 2011-07-13 00:15:47 -04:00
Rigby
8230758bc1 Implements World UID. 2011-07-07 13:56:29 -04:00
EvilSeph
410d791547 Added API to allow plugins to set the world's spawn flags. 2011-06-19 06:34:07 -04:00
EvilSeph
944b128690 Added ChunkSnapShot improvements. Thanks mikeprimm!
Added support for biome data to chunk snapshot
Added method for returning empty chunk snapshot (for ungenerated chunks)
2011-06-17 09:21:56 -04:00
sunkid
a005d0a65d Added a general spawn method. 2011-06-17 01:57:12 -04:00
sunkid
52b7edc1ed Added setFire option to createExplosion methods. 2011-06-17 01:42:26 -04:00
Erik Broes
c54ec090c8 Generic cleanup 2011-06-12 12:49:08 +02:00
sk89q
e2bab1d47c Added World.createExplosion() that takes a Location, instead of just raw X, Y, Z values. 2011-06-09 23:13:36 -07:00
sk89q
a00efd634c Cleaned up some Javadocs. 2011-06-09 23:11:35 -07:00
sk89q
febba495d8 Moved playSound/Effect(Player, ...) to Player.playEffect(Location, ...) to be consistent, and because the code didn't really do what the Javadoc said. 2011-06-09 23:07:45 -07:00
sk89q
c0dfb02c10 Changed sound playing to effect dispatching, since these seem more like more like encompassing effect than mere sounds. 2011-06-09 22:57:44 -07:00
sk89q
a220975dec Merge branch 'sound' of https://github.com/sunkid/Bukkit 2011-06-09 22:38:21 -07:00
sunkid
069df1b6e6 added playSound methods to the World interface and a utility method to Location 2011-06-09 12:32:55 -07:00
EvilSeph
01a273d9a6 Added method to create an explosion in world. Thanks Zaraza107! 2011-06-09 04:12:39 -04:00
Dinnerbone
bca3b8d0c5 Added custom world generator API 2011-06-06 18:37:20 +01:00
Dinnerbone
e7019b40e3 Added new World.Environment 2011-05-26 06:14:48 +01:00
Erik Broes
c4d444ce98 Whitespace + general cleanup 2011-05-15 14:06:02 +02:00
sk89q
b09635228e Added World.strikeLightningEffect() that does no damage. 2011-05-06 19:25:43 -07:00
Rigby
d9593800e6 Added per world PVP setting support. 2011-05-02 00:28:33 -04:00
Rigby
3081b6ad16 Added the ability to retrieve a world's Seed. 2011-04-25 16:48:44 -04:00