| Commit message (Collapse) | Author | Age | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Up until now it has not been possible to create a new Inventory using
a custom title and permit any InventoryType available.
The commit changes that by adding a method to optionally supply the title
for the given inventory type and holder, creating the functionality to
display any supported inventory type with a 32 character length String.
If the inventory title supplied is larger than 32 characters then an
IllegalArgumentException is thrown stating so.
|
|
|
|
|
|
|
|
|
|
| |
Prior to this commit MapFont#getWidth() did not account for the 1px
spacing inserted by CraftMapCanvas#drawText().
This commit adds the consideration of the 1px spacing per character
while taking care to not consider the last character as it will not
have a 1px space behind it. This commit also ensures the method will
not check a 0-length String.
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are many effects that were not present in the API prior to
this commit. These effects are being used by the implementation,
but cannot be accessed via plugins.
This commit exposes these effects using the EntityEffects enum,
allowing for plugin authors to make use of these effects. However,
many of the effects require certain conditions to be met before
they will be visible to the client, much like some of the existing
effects.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Some blocks, such as beds, doors, or flowers, are actually composed of
multiple blocks when they are placed. Currently, to detect how many
blocks are actually modified a plugin has to perform various calculations
to determine the directions of relative blocks, many of which are
difficult to perform and can easily return false positives.
This commit adds in a BlockMultiPlaceEvent, which adds in easy support for
accessing all blocks modified by the placement of a block.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds three new TargetReasons to EntityTargetEvent to address
missing cases where the event is not currently fired.
The first, TargetReason.TARGET_ATTACKED_NEARBY_ENTITY, is used when a
neutral wolf is attacked, causing all nearby wolves to turn hostile and
attack the first wolf's target.
The second, TargetReason.REINFORCEMENT_TARGET, is used when a zombie summons
reinforcements and the new zombie targets the first zombie's target.
The third, TargetReason.COLLISION, is used when an iron golem collides with
a hostile entity, causing it to begin targeting the entity it collided with.
|
|
|
|
|
|
| |
Adds BUKKIT-5370, BUKKIT-5378, BUKKIT-5382, BUKKIT-5482. Covers zombie
villagers, ocelot babies, silverfish popping out of blocks, and mobs
spawning with a mount.
|
|
|
|
|
|
|
|
| |
Previously, when calling the /tp command with coordinates, no TeleportCause
was passed, causing the resulting PlayerTeleportEvent to be called with
TeleportCause.PLUGIN instead of TeleportCause.COMMAND. This commit adds the
missing TeleportCause to ensure that the resulting PlayerTeleportEvent
reports the correct TeleportCause.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
BUKKIT-5442
|
|
|
|
|
|
| |
This change drops the previous plugin data folder migration based on the
plugin's file name, and adapts the migration to now instead consider
plugins that have spaces in their original name.
|
| |
|
|
|
|
|
|
| |
This change makes the lists of loadbefore, softdependency, and dependency
replace the spaces in the names with underscored to reflect the behavior
used with names.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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().
|
|
|
|
|
|
|
|
|
|
| |
Previously any entities spawned through dispensers (monster eggs) or
by nether portals were given the incorrect SpawnReason of SPAWNER_EGG.
This made it impossible to distinguish what exactly happened in regards
to the creature being spawned.
With the additional two SpawnReasons, plugins can identify sources of
creature spawning more easily and accuratly.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Previously, hotbar slots for player inventory would return 9 - 18 while in
Creative mode, rather than 0 - 9. This commit fixes the logic used for
calculating the returned slot based on the raw slot.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
BUKKIT-4932
|
|
|
|
| |
Addresses BUKKIT-5272, BUKKIT-5282, and BUKKIT-5283
|
| |
|