Commit Graph

68 Commits

Author SHA1 Message Date
t00thpick1
4a47cf3e83 [Bleeding] Add direct addresses for command aliases. 2014-03-22 16:45:34 -04:00
t00thpick1
fa88ff4138 [Bleeding] Plugin aliases should have higher priority than fallbacks. Fixes BUKKIT-5442 2014-03-22 16:42:39 -04:00
Travis Watkins
fa7b3c26c8 Clean up alias handling.
There is no need to print a stacktrace when an alias fails, we do not do
this for normal commands. We also now give error messages when attempting
to register an alias instead of having them just silently not function.
2014-02-09 23:16:19 -06:00
t00thpick1
72a6f60a53 [Bleeding] Fix getCommand for conflicting plugin commands. 2014-02-09 19:25:46 -05:00
t00thpick1
5023fe375e [Bleeding] Improve alias system.
Adds a large expansion of the aliases system. Aliases can now take arguments,
reorder their arguments, and only pass certain arguments to certain commands.
New syntax added to the aliases are $1 for optional arguments, $$1 for
required arguments, $1- for optionally using all the arguments from the
specified position onward, and $$1- to do the same thing but require at least
the specified position exist. These exist for numbers 1 through 9. You are
able to pass arguments to one command of a multiple command argument and not
others. You can also use the argument as a prefix and/or suffix. A raw $ can
be represented in the arguments by using \$.

Examples:

aliases:
# Usage: /testobjective score_deaths 1 5
testobjective:
- "testfor @p[$$1=$$3,$$1_min=$$2]"

# Usage: /ban Amaranthus Because reasons
ban:
- ban $$1 $2-
- say Banned $$1

# Usage: /icanhasbukkit
icanhasbukkit:
- version

# Usage: /icanhasplugin HomeBukkit
icanhasplugin:
- version $$1

One change from the previous aliases system is that commands are no longer
passed all arguments implicitly. You must explicitly pass the arguments
you want to pass to the command.
2014-02-08 03:11:46 -06:00
t00thpick1
d7e0197e9d [Bleeding] Simplify command handling.
Instead of duplicating code to handle two pools of commands
we can instead just add the fallback commands after all
plugin commands are loaded and achieve the same effect. We
also now always register the direct address of a command
to ensure it is always possible to access it.

In addition, aliases can be determined by whether or not
the command label of the command matches the command address,
thereby rendering the aliases HashSet redundant.
2014-02-08 03:11:46 -06:00
t00thpick1
fe360273a5 [Bleeding] Add /achievement command. Addresses BUKKIT-4932 2014-01-16 00:50:49 -06:00
t00thpick1
bff28d83d9 [Bleeding] Add 1.7 setworldspawn and setidletimeout commands. Addresses BUKKIT-4932 2014-01-14 19:05:14 -05:00
Wesley Wolfe
8a1dbc38da Pulling all pending Bukkit-JavaDoc changes
A special thanks goes to @aerouk for almost all of the changes found here.
2013-12-15 01:09:18 -05:00
Phillip Schichtel
6ae876a38c Add support for command tab completion in the console. Adds BUKKIT-4168
This commit corrects tab-completion logic to consider non-player command
senders.
2013-09-10 20:58:23 -05:00
h31ix
7f67959c24 Add 1.6 SpreadPlayers command. Fixes BUKKIT-4508 2013-08-02 15:38:55 -05:00
h31ix
dd0aa63021 Add 1.6 PlaySound command. Fixes BUKKIT-4489 2013-08-02 00:09:46 -05:00
mbax
6fb1647394 Add Scoreboard API and Command. Adds BUKKIT-3776, BUKKIT-3834
The implementation is designed around having both a main scoreboard and
numberous plugin managed scoreboards that can be displayed to specific
players.

Plugin managed scoreboards are active so long as a reference is kept by a
plugin, or it has been registered as a player's active scoreboard. Objects
specific to a scoreboard remain active until unregistered (which remove a
reference to the owning scoreboard), but quickly fail if accessed
post-unregistration.
2013-04-03 23:32:54 -05:00
feildmaster
9e614c1b0e Add Effect command. Adds BUKKIT-3763 2013-03-31 19:33:05 -05:00
Travis Watkins
8846f9ec4c Add dummy /testfor command in Bukkit. Addresses BUKKIT-3813
This command only functions in command blocks so the bukkit command for it
simply spits out an error message.
2013-03-18 17:10:52 -05:00
EvilSeph
ea864fbaf7 Add default EnchantCommand. Tim, The Enchanter - I AM DEATH! Adds BUKKIT-2961 2012-11-17 01:14:41 -05:00
EvilSeph
f3468327b9 Essential core commands shouldn't be overriden. Fixes BUKKIT-1546 2012-11-17 00:27:36 -05:00
feildmaster
5fb6a4f82b Add default GameRule command. Fixes BUKKIT-2671 2012-10-31 03:45:26 -04:00
EvilSeph
d9fdd9084e Add default Clear command. Partially fixes BUKKIT-2671 2012-10-30 04:53:42 -04:00
EvilSeph
2bc78a82fe Revert "Clear" commit, was not meant to be pushed.
This reverts commit bdf5d326f5.
2012-10-30 02:50:38 -04:00
EvilSeph
bdf5d326f5 Clear 2012-10-30 01:18:01 -04:00
EvilSeph
1bf5267f8a Add default SpawnpointCommand. Partially fixes BUKKIT-2671 2012-10-29 05:06:04 -04:00
EvilSeph
012b814619 Add default WeatherCommand. Partially fixes BUKKIT-2671 2012-10-29 02:48:40 -04:00
EvilSeph
05876e9042 Add default DifficultyCommand. Partially fixes BUKKIT-2671 2012-10-29 01:53:31 -04: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
110ad8c196 Update Bukkit for 1.3.1 changes 2012-08-02 04:54:21 -05:00
rmichela
bba2e1cd2f [Bleeding] Added Help API. Addresses BUKKIT-863 2012-03-01 04:28:21 -05:00
Tahg
3d4c2010eb Added timings command. 2012-01-09 23:44:17 -05:00
EvilSeph
187a961d2e Added banlist command. Fixes BUKKIT-373. Thanks md-5! 2012-01-07 19:54:02 -05:00
Erik Broes
dce83b6ce4 Generic cleanup of warnings, whitespace and style. 2011-12-25 16:02:30 +01:00
Nathan Adams
d8e3602925 Added /xp and /toggledownfall commands from vanilla 2011-12-02 06:38:33 +00:00
Nathan Adams
5700db0ea7 Few more style cleanups 2011-10-11 02:16:44 +01:00
EvilSeph
39c0d81832 Added GameMode command. 2011-09-14 17:43:11 -04:00
Dinnerbone
0914132467 Moved all vanilla commands into Bukkit 2011-09-03 15:56:35 +01:00
Dinnerbone
0484a8bd84 Added the ability to access offline players & more reverse lookup fixes in Permissible. 2011-09-03 00:41:22 +01:00
Dinnerbone
20dd09d983 Some small fixes to permissions to register the correct Permissible in base and more accurate reverse lookups 2011-09-02 23:39:01 +01:00
Dinnerbone
8831a00b4e Commands now have the ability to set a permission required before execution 2011-09-02 19:27:12 +01:00
EvilSeph
fb3e9605d8 Fixed 'bad aliases' error output. 2011-06-23 16:16:14 -04:00
Dinnerbone
7524109bf0 The server config can now specify aliases to multiple (or none) commands, for example "debug: [version, plugin]" to run both version and plugin, or "plugins: []" to disable the plugins command 2011-06-22 19:08:21 +01: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
stevenh
ff73db325b Fixed fallbackPrefix not being lowercased, which would break prefixes for plugins with an uppercase char in the name 2011-06-12 16:35:26 +01:00
Erik Broes
c54ec090c8 Generic cleanup 2011-06-12 12:49:08 +02:00
stevenh
7a035d60ea Fixed no command found being sent to the command sender for command handlers which return failure (false) 2011-05-23 23:59:47 +01:00
stevenh
801132b89f Reworked command registration so that aliases are secondary to the primary command label requested
Updated docs to reflect what the code really does
This adds a few new methods to Command including:-
* A full constructor that takes descriptio, usageMassage and aliases for convenience
* getLabel() which returns the active label for a command, which is derived from the Command name or subsiquent call to setLabel(..)
* A number of registration functions for use in the CommandMap implementer
Also of note is Command.getAliases() no returns the "active" aliases
2011-05-22 20:42:26 +01:00
Celtic Minstrel
764ef1c25d Fixed command aliases priorities.
Command aliases are now given lower weight than the "official" name of the command; this allows you to define aliases without worrying about them overriding someone else's command.
2011-05-16 00:41:51 -04:00
EvilSeph
86ca0f5c67 Made disabled plugins show up in red in the plugins list. Thanks Yetanotherx! 2011-05-15 20:07:53 -04:00
Erik Broes
c4d444ce98 Whitespace + general cleanup 2011-05-15 14:06:02 +02:00
EvilSeph
54fc471ec5 Fixed AIOOBE when entering a space into console and hitting enter. 2011-04-24 21:49:45 -04:00
stevenh
99df8e88c4 Removed unneeded string constant concat
Note: editor removed spaces on otherwise empty lines
2011-03-12 17:51:57 +00:00
Erik Broes
010cfd1781 Java 1.5 compat. 2011-03-02 15:23:15 +01:00