Commit Graph

181 Commits

Author SHA1 Message Date
t00thpick1
d45788bbf9 [Bleeding] Update Tell and Help aliases to use alias system. 2014-02-10 17:19:39 -06:00
Travis Watkins
c9581cec84 Remove extra events from alias execution.
When executing an alias we already call an event for the alias itself. The
extra events are not needed for logging purposes as the alias itself is
logged and the events cause issues for plugins trying to do spam checking
on their own.
2014-02-10 16:18:36 -06: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
18a2a9f5bf [Bleeding] Support any number of arguments in aliases 2014-02-09 20:12:04 -05:00
t00thpick1
3dfe3d1594 [Bleeding] Implement escape sequence for aliases. 2014-02-09 19:25:46 -05:00
t00thpick1
72a6f60a53 [Bleeding] Fix getCommand for conflicting plugin commands. 2014-02-09 19:25:46 -05:00
t00thpick1
64481e3e24 [Bleeding] Also blacklist ":" in plugin command aliases. 2014-02-08 15:50:59 -05:00
t00thpick1
ca3433b1bd [Bleeding] Fix formatting of optional arguments. 2014-02-08 15:50:58 -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
a2b5d6a907 [Bleeding] Blacklist ":" in command names. 2014-02-08 03:11:46 -06:00
mbax
75427e084d Add banning API and resolve associated command issues. Adds BUKKIT-3535.
Fixes BUKKIT-5371 and BUKKIT-4285

Prior to this commit, ban reasons were not supported by banning commands.
Additionally, the player(s) affected by the ban-ip command would not have
been removed from the server via a kick.

The Bukkit API lacked support for modifying various attributes associated
with bans, such as the reason and expiration date. This caused various plugins
to use external or other means to store a ban reason, making the built-in
banning system on the server partially useless.

Now the ban commands will accept reasons for the bans as well as kick the
player from the server once banned. That means that if an IP is banned
that all players using that IP will be removed from the server.

The API provided now supports editing the ban reason, creation date,
expiration date and source. The ban list has also been created to
provide this information more easily. Editing the data requires an
implementing plugin to manually save the information with the provided
method in BanEntry or BanList once changes have been made.

The addition of this API has deprecated the use of OfflinePlayer#setBanned()
as it has been replaced by BanList#addBan().
2014-02-07 23:49:44 -07:00
t00thpick1
fe360273a5 [Bleeding] Add /achievement command. Addresses BUKKIT-4932 2014-01-16 00:50:49 -06:00
Wesley Wolfe
ce94a3555c Modify give command to support 1.7 features. Fixes BUKKIT-5286
Necessary additions include an interface to add internal value conversions
that are inappropriate for proper API design. This acts as a substitute
for properly formed, user-friendly commands in an effort to maintain
relatively vanilla behavior.
2014-01-14 22:37:00 -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
ccc56c8f7e Fix some messages
Addresses BUKKIT-5272, BUKKIT-5282, and BUKKIT-5283
2014-01-06 14:20:22 -06:00
EvilSeph
00aac779b2 Handle commandBlockOutput GameRule for Command Minecarts.
Fixes BUKKIT-5207
2013-12-20 23:35:10 -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
Wesley Wolfe
16b340dd38 Pulling all pending Bukkit-JavaDoc changes 2013-11-30 21:14:02 -06:00
Luke A
b7eaa4a13f Display command-message closing bracket correctly. Fixes BUKKIT-4894
This commit adds proper formatting to the closing bracket used when certain
commands send messages to all players with the broadcast-channel
permission.
2013-10-19 20:41:00 -05:00
feildmaster
9296ebf83b Actually display correct effect duration in seconds. Fixes BUKKIT-3983 2013-09-23 13:19:00 -05:00
Joe
7ab753599a Display correct effect duration in seconds. Fixes BUKKIT-3983 2013-09-23 12:59:02 -05:00
Wesley Wolfe
6d03f7a638 Pulling all pending Bukkit-JavaDoc changes 2013-09-10 21:02:53 -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
Kezz101
eaf0265f5b Update /say to vanilla behaviour. Fixes BUKKIT-4224
Prior to this commit all /say command output would be a generic "[Server]"
prefixed line. This commit changes that by adding the source into the
message, such as a player. By doing this Bukkit more closely matches
vanilla behaviour and gives a more descriptive message to the client.
2013-09-10 19:40:03 -06:00
feildmaster
fcd62eec61 Make /spreadplayers command work. Fixes BUKKIT-4720 2013-09-09 20:03:15 -05:00
Kane York
47ef04fe48 Use command block's world for /gamerule. Fixes BUKKIT-3274
In vanilla, gamerules are global, across all worlds. Maps created for
vanilla that use command blocks expect this behavior, which is broken
when they are placed on a world that is not the default world (world #0).

This commit changes that by using the command block's current world when
executing the command, forcing the game rules executed to be executed in
the world the command block is currently in.
2013-08-21 00:08:50 -06:00
Score_Under
e7f3d55221 [BREAKING] Use event class instead of event for timings. Fixes BUKKIT-4664
TimedRegisteredListener uses a reference to the first event fired. This
causes a memory leak in the server for any references that event has. This
changes TimedRegisteredListener to only store a reference to the class of
the event.

This change is intentionally a breaking change, as it is an obscure part
of the API. A non-breaking change would require the leak to be maintained
or an immediate update for any plugins using the method, as it would be an
indirect break.

A unit test is also included to check behavior of shared superclass
functionality.
2013-08-07 02:04:31 -05:00
Wesley Wolfe
2ccd6714a1 Use player as point of reference for min volume. Fixes BUKKIT-4640
When the minimum volume is being used because the distance is over a
threshold, the unit vector delta should be added to the player's
location, instead of where the command specified location.

This change makes the player's location the point of reference for
playing sounds when distance to volume scale is lower than minimum
specified volume.
2013-08-03 18:26:31 -05:00
Wesley Wolfe
02f2b5e290 Account for relative coordinates in PlaySound. Fixes BUKKIT-4639 2013-08-02 20:26:55 -05:00
h31ix
d789396b2d Add 1.6 effect clear functionality. Fixes BUKKIT-4473 2013-08-02 15:49:08 -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
cbd5e3bfe5 Consider full team display name. Fixes BUKKIT-4186
Through a miscalculation, team display names were being created via
command ignoring the first word in the submitted display names.
2013-06-05 19:43:25 -05:00
Wesley Wolfe
faea684c23 Pulling all pending Bukkit-JavaDoc changes 2013-05-16 04:41:09 -05:00
Wesley Wolfe
18c46487ad Consider first player name in leave command. Fixes BUKKIT-4051 2013-04-11 22:56:31 -05:00
Wesley Wolfe
be1429665d Consider arguments to team leave properly. Fixes BUKKIT-3994
Two checks to argument length were changed to properly consider if the
sender is a player instead of an off-by-one logical error.
2013-04-05 12:49:59 -05:00
Wesley Wolfe
5ca534dc9b Use utility method for team-join display. Fixes BUKKIT-3997
The method to make a string from a collection of strings already exists
and should be used when adding multiple players to a team.
2013-04-05 12:40:03 -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
Edmond Poon
409595c2a2 Pulling all pending Bukkit-JavaDoc changes 2013-04-02 00:11:22 -04: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
feildmaster
3fc631fd72 Fix invalid integers in spawnpoint command. Fixes BUKKIT-3509
getInteger returns min value on illegal number formats, so we change
behavior to throw an exception when requested.
2013-01-26 13:54:00 -06:00
feildmaster
6eeaee4c38 Don't try listing something that may not exist. Fixes BUKKIT-3471
The player name may not be provided, in which case the command will
fail hard.
2013-01-23 05:51:46 -06:00
feildmaster
bbc75c4a68 Improve javadoc in 26 files.
Addresses:
BUKKIT-1643, BUKKIT-1868, BUKKIT-1846, BUKKIT-2632, BUKKIT-3196,
BUKKIT-3187, BUKKIT-3198, BUKKIT-3200, BUKKIT-3201 and BUKKIT-3417.
2013-01-22 16:41:00 -06:00
Travis Watkins
601df7d25f Remove duplicate message for console. Fixes BUKKIT-3267 2012-12-23 02:33:25 -06:00
feildmaster
c8150a3428 Apply commandBlockOutput to broadcastMessage. Addresses BUKKIT-3117 2012-12-18 04:47:56 -06:00
feildmaster
f3dfe8bd01 An executor set to null will now use the plugin. Fixes BUKKIT-3127 2012-12-09 00:31:25 -06:00
feildmaster
74a6fb9834 Add getShutdownMessage() and stop command arguments. Adds BUKKIT-3031 2012-12-05 06:06:44 -06:00
EvilSeph
288ec65421 Add ability to pass 'max' as 'level' for EnchantCommand. 2012-11-18 17:45:00 -05:00