1028 Commits

Author SHA1 Message Date
EvilSeph
f28f674a3d Add isHardcore API to check if the server is in hardcore mode or not. Adds BUKKIT-2707 2012-10-29 01:45:08 -04:00
Travis Watkins
a446bb7e8f Update Bukkit for Minecraft 1.4(.2) changes. 2012-10-27 22:15:59 -04:00
Wesley Wolfe
ffbdc37ff9 Override toString() method in Command
Overriding the toString() method provides more human-readable feedback
when a problem occurs, including the version of the plugin if
applicable.
2012-10-19 15:46:28 -05:00
Wesley Wolfe
6c2c2c19a2 Add a tab completion API for chat messages. Adds BUKKIT-2607
This implementation provides access to a (mutable) list and the base
message. Also provided is a convenience method for getting the last
'token' in the provided string.
2012-10-17 04:56:11 -05:00
Score_Under
9fd9767a4a 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
Wesley Wolfe
3dc80e1563 Deprecate PlayerPreLoginEvent. Addresses BUKKIT-2600
PlayerPreLoginEvent was originally implemented with the intention that
putting synchronized blocks on the plugin manager made it thread safe.
Unintentionally, this causes the event to be executed when a plugin
would otherwise expect no events to be firing. It is now deprecated.
2012-10-14 03:36:08 -05:00
Wesley Wolfe
c23d7f4e06 Add simpler API for using the scheduler. Adds BUKKIT-836
The new methods return the actual task that gets created from the
scheduler. They are also named such that auto-complete puts the
asynchronous methods after the normal ones. These two additions are
simply semantic.

Tasks now have a method to cancel themselves using their task id. This
is provided as a convenience.

A new class called SimpleRunnable was added. It is an abstract Runnable
such that anonymous classes may subclass it. It provides six convenience
methods for scheduling as appropriate. It also provides a cancel method
for convenience. The functionality of SimpleRunnable only stores an
integer representing the task id. A SimpleRunnable can only be scheduled
once; attempting to reschedule results in IllegalStateException.
2012-10-14 02:05:29 -05:00
Wesley Wolfe
955e0c437c Clarify some of the verbose in SimplePluginManager.
When an exception occurs, the version of the plugin is not included.
Having this information would be beneficial to plugin authors performing
debug.

The list of authors for NagAuthorException verbose (although unused)
would be more appropriate to simply include all authors, as opposed to
the first appearing.
2012-09-30 03:35:06 -05:00
Wesley Wolfe
b23edfd2d3 Let version print partial matches for plugin name. Addresses BUKKIT-2383
If no plugin is found with the given name, the version command will
search all loaded plugins to find a case insensitive partial match for
the specified name and print to the sender all matches.
2012-09-28 16:50:32 -05:00
Wesley Wolfe
503151584c Remove internals from org.bukkit.Sound.
The internal Minecraft names of Sounds should not be exposed in the API.
2012-09-26 19:02:36 -04:00
mbax
bc6b976dac Updated null checks in MetadataStoreBase. Fixes BUKKIT-1412
Previously, the method could be called with a null MetadataStore and stored.
In later execution null pointer exceptions would be generated when checking
for the plugin that the set Metadata belongs to.

Additionally, places where a plugin is referenced will now throw an
IllegalArgumentException if specified plugin is null. Using null would be an
obvious logical flaw, and in some cases produce additional exceptions later
in execution.
2012-08-26 22:09:21 -05:00
Wesley Wolfe
555c40e387 Allow inherited methods to be event handlers. Addresses BUKKIT-2299
This change lets JavaPluginLoader use a temporary HashSet to store
methods that could possibly have the EventHandler annotation. Duplicates
are prevented by the nature of a Set.

Registering parent listeners is a breaking change for any listener
extending another listener and expecting parent listeners to not be
called. Changing this is justified by the ease-of-use and proper object
inheritance design. If this is undesired behavior, the method may be
overridden without reapplying the method with the EventHandler notation.
2012-08-26 21:14:28 -05:00
Wesley Wolfe
e04c1c2a18 Provide better verbose for registering listeners. Addresses BUKKIT-2391 2012-08-25 17:48:53 -05:00
feildmaster
5cc04e5398 Add API for Sound, and playing the sounds for Worlds and Players. Adds BUKKIT-1430, BUKKIT-1226 and BUKKIT-2019 2012-08-21 17:15:48 -05:00
feildmaster
b8d2882de6 Add API to retrieve a players EnderChest. Adds BUKKIT-2016 2012-08-20 16:01:35 -05:00
Mike Primm
88e837ae5d Add isChunkInUse() to World. Addresses BUKKIT-2330 2012-08-19 07:56:39 -04:00
Wesley Wolfe
4c766c92ac Fully restrict the org.bukkit and net.minecraft namespace 2012-08-19 07:42:20 -04:00
Wesley Wolfe
6bbeb93103 Let TripwireHook be attachable. Addresses BUKKIT-2278
This commit also makes TripwireHook consistent with other attachables
for the facing property.
2012-08-17 14:33:23 -05:00
feildmaster
11fd4acb56 Add interface for spawning FallingBlocks and correctly spawn a FallingBlock with the spawn(Location, FallingBlock.class) method. Adds BUKKIT-2282
Also add FallingBlock and methods.

Deprecated FallingSand to emphasize FallingBlock.
2012-08-14 07:39:44 -05:00
Wesley Wolfe
c72b55f12e Add API to set and get movement modifiers. Addresses BUKKIT-2205 2012-08-10 00:19:21 -05:00
feildmaster
a54fdd96e8 Add API for getting and setting experience for BlockBreakEvent. Addresses BUKKIT-2033 2012-08-08 19:48:50 -05:00
feildmaster
3c91fdc121 Add spaces to gamemode message. Fixes BUKKIT-2148 2012-08-08 19:48:49 -05:00
Wesley Wolfe
b626fb894a Purge outdated biomes. Fixes BUKKIT-1087 2012-08-07 01:55:48 -05:00
Wesley Wolfe
1acd7401c7 Add Warning API and settings for Deprecated events 2012-08-07 00:16:57 -05:00
feildmaster
9835a9868f Don't send duplicate messages for Gamemode and Time commands.
Gamemode gets sent with the packet.
2012-08-06 11:29:38 -05:00
feildmaster
61d302c232 Update commands to match 1.3 vanilla commands 2012-08-06 06:59:46 -05:00
feildmaster
b374b3b2cd Fail silently on incorrect number input 2012-08-06 06:59:45 -05:00
Wesley Wolfe
9528f47727 Change inheritance for new MaterialData. 2012-08-05 22:01:54 -05:00
Mike Primm
91de17c900 [Bleeding] Add new MaterialData classes for new blocks and update existing blocks with new data 2012-08-05 19:55:46 -05:00
Wesley Wolfe
0249a23179 BREAKING: replace defunct PlayerChatEvent with async chat. Addresses BUKKIT-2064
PlayerChatEvent is now Deprecated. It should be fired asynchronously, but
has not been so traditionally. To do so would massively break plugins that
rely on it.

AsyncPlayerChatEvent now replaces PlayerChatEvent. It uses comparable
functionality, but can be fired without synchronizing to the event manager.
The event will sometimes fire synchronously if triggered by a plugin.

Because PlayerChatEvent is now deprecated, PlayerCommandPreprocessEvent will
no longer extend PlayerChatEvent. This is almost completely source and
binary compatible, bar plugins that downcast to PlayerChatEvent.
Additionally, some methods that are non-functional have been marked
deprecated and indicate such.

Additionally, new constructors are now provided to allow for lazier
initialization of the receiving player set. A note has been added stating
plugins should be prepared for UnsupportedOperationExceptions if the caller
provides an unmodifiable collection.
2012-08-03 20:31:01 -05:00
Wesley Wolfe
bd309e212c Warn server owners of plugins using deprecated events. Fixes BUKKIT-2027 2012-08-02 23:21:02 -05:00
Travis Watkins
7789f67744 Test command permissions before running them. 2012-08-02 19:02:23 -05:00
feildmaster
bd5dd94afb Revive the toggledownfall permission! (and fix descriptions) 2012-08-02 18:31:19 -05:00
feildmaster
638bdde9bc Add LargeBiomes WorldType. 2012-08-02 08:55:11 -05:00
feildmaster
0b304a288e Update Bukkit for 1.3.1 changes 2012-08-02 04:54:21 -05:00
feildmaster
77bdf88cd6 Add API to get a players experience to level (getExpToLevel). Implements BUKKIT-1906
This is the total experience one needs to gain a level.
2012-07-11 17:12:26 -05:00
feildmaster
eb3f24011f Implement server.getMotd() for BUKKIT-1799 2012-07-04 23:21:03 -05:00
feildmaster
3b42b1d170 Don't "setLastDamageCause" in the DamageEvent constructor. Addresses BUKKIT-1881
This is now done after the event to allow you to be able to get previous damageCauses, and is now only applied if the event is not canceled.
2012-07-03 14:09:51 -05:00
TomyLobo
16d0694dcf Add an isValid() method to Entity. Addresses BUKKIT-810 2012-06-28 19:33:33 -05:00
Wesley Wolfe
34b63c06cc Add check for existing config file. Addresses BUKKIT-1851 2012-06-28 16:39:19 -05:00
TomyLobo
d3bf76da9d Add LivingEntity.hasLineOfSight. Addresses BUKKIT-1255 2012-06-23 10:58:01 -05:00
V10lator
f735129254 Deprecate spawnCreature and add spawnEntity. Addresses BUKKIT-1168 2012-06-23 10:57:59 -05:00
Wesley Wolfe
9cb65fd1cd Add plugin channel events. Addresses BUKKIT-1844 2012-06-21 02:39:35 -05:00
Travis Ralston
e7396e74c4 Add PlayerItemBreakEvent. Addresses BUKKIT-1600 2012-06-21 02:08:31 -05:00
Wesley Wolfe
b17ca47d88 Revert "Shift plugin initialization; Addresses BUKKIT-1788"
This reverts commit 27cb5e7c9c6b2cfc5419262df75d89bc6bfe7879. Issues
were discovered with shared class loaders.
2012-06-16 00:48:47 -05:00
Wesley Wolfe
d21cc6a999 Shift plugin initialization; Addresses BUKKIT-1788 2012-06-15 23:48:09 -05:00
obnoxint
d7ff46b10c Add NotePlayEvent. Fixes BUKKIT-1779 2012-06-14 20:58:19 -05:00
Wesley Wolfe
8c68913506 Add asynchronous pre-login event; Addresses BUKKIT-1213 2012-06-13 23:01:03 -05:00
Wesley Wolfe
9e73a8887c Support asynchronous events; Addresses BUKKIT-1212 2012-06-13 23:01:03 -05:00
H31IX
ef1748ef68 Add PlayerToggleFlightEvent. Fixes BUKKIT-1696 2012-06-13 22:19:51 -05:00