Commit Graph

64 Commits

Author SHA1 Message Date
feildmaster
49690f9620 [BREAKING] Update BlockFace directions. Fixes BUKKIT-1567, BUKKIT-3069
If you use BlockFace in any way, to compensate the directionals being incorrect, you can still have backwards compatibility if you add in the handling in your plugin:
boolean legacyBlockFace = BlockFace.NORTH().getModX() == -1; (and then handle it accordingly)

If you didn't special case your directions to fix what's being fixed here... Hurray! Your plugin should now work.
2012-12-01 01:06:29 -06:00
Score_Under
ede3fd278d Add tab-completion API. Fixes BUKKIT-2181. Adds BUKKIT-2602
CommandMap contains a method that will auto-complete commands
appropriately. Before the first space, it searches for commands of which
the sender has permission. After the first space, it delegates to the
individual command.

Vanilla commands contain implementations to mimic vanilla
implementation. Exception would be give, that allows for name matching;
a feature we already allowed as part of the command is now supported for
auto-complete as well.

Plugin commands can get a tab completer set to delegate the completion
for. If no tab completer is set, it can check the executor to see if it
implements the tab completion interface. It will also attempt to chain
calls if null gets returned from these interfaces. Plugins also
implement the new TabCompleter interface, to add ease-of-use for plugin
developers, similar to the onCommand() method.

The default command implementation simply searches for player names.

To help facilitate command completion, a utility class was added with
two functions. One checks two strings, to see if the specified string
starts with (ignoring case) the second. The other method uses the first
to selectively copy elements from one collection to another.
2012-10-16 00:05:40 -05:00
feildmaster
c2e493480c Revive the toggledownfall permission! (and fix descriptions) 2012-08-02 18:31:19 -05:00
feildmaster
110ad8c196 Update Bukkit for 1.3.1 changes 2012-08-02 04:54:21 -05:00
Acrobot
5ae3c99bf5 Use existing function to get opposite block face 2012-05-25 05:01:47 -05:00
Wesley Wolfe
a75cbbff56 Adding ceil to NumberConversions 2012-04-15 18:25:57 -05:00
zml2008
55f18605a6 [Bleeding] Correct handling of blank lines in ChatPaginator. 2012-03-10 17:53:38 -05:00
rmichela
6fc7d4ae40 [Bleeding] ChatPaginator now preserves the color of a line after wrapping the line of text. Fixes BUKKIT-1048 2012-03-08 02:02:28 -05:00
EvilSeph
5d7f99acdf We build for 1.5. 2012-03-01 04:41:25 -05:00
rmichela
bba2e1cd2f [Bleeding] Added Help API. Addresses BUKKIT-863 2012-03-01 04:28:21 -05:00
Wesley Wolfe
5b3da3a044 [Bleeding] Optimized locToBlock. Addresses BUKKIT-815 2012-02-29 20:13:05 -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
TomyLobo
7a48899d2d 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
870d10b077 [Bleeding] Cleanup clone methods. 2012-02-20 05:47:03 -05:00
Erik Broes
7a06777e19 Deprecation cleanup. 2012-02-18 13:05:58 -05:00
EvilSeph
6160de9c28 Cleanup. 2012-01-27 18:23:27 -05:00
Erik Broes
eb9dc64493 Generic cleaning 2012-01-15 14:37:43 +01:00
Erik Broes
d24afc06a9 Vector.getMidpoint should not modify the current Vector. Thanks TomyLobo for noticing. 2012-01-04 09:17:33 +01:00
Erik Broes
dce83b6ce4 Generic cleanup of warnings, whitespace and style. 2011-12-25 16:02:30 +01:00
Nathan Adams
1927e22e33 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
d8e3602925 Added /xp and /toggledownfall commands from vanilla 2011-12-02 06:38:33 +00:00
Nathan Adams
14d3401121 Small javadoc cleanup 2011-10-10 21:58:44 +01:00
Dinnerbone
55f405f4a8 Added new Configuration classes 2011-10-10 21:06:34 +01:00
EvilSeph
b1451f58cb Revert "Added callback line of sight methods. Thanks xZise!"
This reverts commit 1df3a823ba.
2011-10-03 15:15:50 -04:00
EvilSeph
1df3a823ba Added callback line of sight methods. Thanks xZise! 2011-10-02 23:04:09 -04:00
Dinnerbone
e6c273e8b0 Many javadoc fixes thanks to Celtic Minstrel 2011-09-25 02:56:40 +01:00
EvilSeph
26c935cf2d Fixed GameModeCommand not being limited to Ops by default. 2011-09-14 23:22:05 -04:00
EvilSeph
39c0d81832 Added GameMode command. 2011-09-14 17:43:11 -04:00
Dinnerbone
57b454e2a2 New BroadcastPermissions default permission registrations 2011-09-03 00:52:28 +01:00
Dinnerbone
1ff5dfeda3 Added new Server.broadcast method to broadcast to specific groups of users, including non-players 2011-09-02 22:24:39 +01:00
Dinnerbone
8831a00b4e Commands now have the ability to set a permission required before execution 2011-09-02 19:27:12 +01:00
Dinnerbone
4fcd4aacb8 Fixed fast floor in NoiseGenerator 2011-07-18 18:19:43 +01:00
Erik Broes
04d58f8c8a Deprecated Block.getFace(Face) and Block.getFace(Face,int); use getRelative() 2011-07-17 17:02:37 +02:00
EvilSeph
b268859bf3 Made ConfigurationNode.getAll() more maintainable. Thanks devinsba! 2011-07-14 14:48:57 -04:00
Dinnerbone
7d1ed62041 Added unbiased octave generators + normalized argument to generating noise through octaves 2011-07-13 10:38:18 +01:00
Dinnerbone
dc504c01fd Fixed static methods in PerlinNoiseGenerator 2011-07-08 14:39:20 +01:00
Dinnerbone
58faa98de1 Added a Perlin and Simplex noise generator for utils 2011-06-26 17:41:25 +01:00
EvilSeph
f92e142e4f Added a method to retreive all fully qualified configuration values for a config. Thanks devinsba! 2011-06-21 15:39:29 -04:00
Dinnerbone
95484bba53 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
c54ec090c8 Generic cleanup 2011-06-12 12:49:08 +02:00
sk89q
46d4e20093 Added the ability to set a header when saving configuration files. 2011-06-09 23:31:00 -07:00
EvilSeph
9f1e911a3f Fixed the value of empty YAML nodes being written as "null". Thanks rcjrrjcr! 2011-06-07 18:21:14 -04:00
Erik Broes
c4d444ce98 Whitespace + general cleanup 2011-05-15 14:06:02 +02:00
EvilSeph
bb7b91b4d4 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
d94fce59ff Updated README for line-ending demands, also fixed line-endigs. 2011-04-25 13:24:32 +02:00
Dinnerbone
a250f66c2e Configuration tweaks - enforce default + parent file nullcheck 2011-04-01 16:09:23 +01:00
Dinnerbone
30d8d1f4dd Line-endings! 2011-03-31 16:37:56 +01:00
stevenh
33db4912d5 Fixed blank yaml config files throwing a null pointer exception 2011-03-11 20:07:49 +00:00
VictorD
cd490d826b 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
010cfd1781 Java 1.5 compat. 2011-03-02 15:23:15 +01:00