Commit Graph

1497 Commits

Author SHA1 Message Date
Bukkit/Spigot
9a3633a13f Fix failing BukkitMirrorTest
By: Wesley Wolfe <wesley.d.wolfe+git@gmail.com>
2014-06-03 15:39:01 -05:00
Bukkit/Spigot
b4b7429f5b Rewrite BukkitMirrorTest
By: Wesley Wolfe <wesley.d.wolfe+git@gmail.com>
2014-06-03 15:06:47 -05:00
Bukkit/Spigot
07870a6164 Updated version to 1.7.9-R0.3-SNAPSHOT for development towards next release.
By: EvilSeph <evilseph@gmail.com>
2014-06-01 02:36:00 -04:00
Bukkit/Spigot
8f82b99879 Updated version to 1.7.9-R0.2 in pom.xml for Beta.
By: EvilSeph <evilseph@gmail.com>
2014-06-01 01:44:03 -04:00
Bukkit/Spigot
3dcbe9f463 Updated version to 1.7.9-R0.2-SNAPSHOT for development towards next release.
By: EvilSeph <evilseph@gmail.com>
2014-05-14 23:36:41 -04:00
Bukkit/Spigot
600511e5aa Updated version to 1.7.9-R0.1 in pom.xml for Beta.
By: EvilSeph <evilseph@gmail.com>
2014-05-14 22:40:49 -04:00
Bukkit/Spigot
300e61658e Change YamlConfiguration encoding styles.
On JVMs with UTF-8 default encoding, this commit has no change in behavior.

On JVMs with ascii default encoding (like some minimal linux installa-
tions), this commit now uses UTF-8 for YamlConfiguration operations.
Because all ascii is valid UTF-8, there is no feature degradation or data
loss during the transition.

On JVMs with any non-unicode but ascii-compliant encoding, this commit now
forces YamlConfiguration to escape special characters when writing to
files, effectively rendering the encoding to be plain ascii. Any affected
file will now be able to migrate to UTF-8 in the future without data-loss
or explicit conversion. When reading files, YamlConfiguration will use the
system default encoding to handle any incoming non-utf8 data, with the
expectation that any newly written file is still compliant with the
system's default encoding.

On JVMs with any non-unicode, but ascii-incompliant encoding (this may be
the case for some Eastern character sets on Windows systems), this change
is breaking, but is justified in claim that these systems would otherwise
be unable to read YamlConfiguration for implementation dependent settings
or from plugins themselves. For these systems, all uses of the encoding
will be forced to use UTF-8 in all cases, and is effectively treated as if
it was configured to be UTF-8 by default.

On JVMs with unicode encoding of UTF-16 or UTF-32, the ability to load any
configurations from almost any source prior to this change would have been
unfeasible, if not impossible. As of this change, however, these systems
now behave as expected when writing or reading files. However, when
reading from any plugin jar, UTF-8 will be used, matching a super-majority
of plugin developer base and requirements for the plugin.yml.

Plugin developers may now mark their plugin as UTF-8 compliant, as
documented in the PluginDescriptionFile class. This change will cause the
appropriate APIs in JavaPlugin to ignore any system default encoding,
instead using a Reader with the UTF-8 encoding, effectively rendering the
jar system independent. This does not affect the aformentioned JVM
settings for reading and writing files.

To coincide with these changes, YamlConfiguration methods that utilize a
stream are now deprecated to encourage use of a more strict denotation.
File methods carry system-specific behaviors to prevent unncessary data
loss during the transitional phase, while Reader methods are now provided
that have a very well-defined encoder behavior. For the transition from
InputStream methods to Reader methods, an API has been added to JavaPlugin
to provide a Reader that matches the previous behavior as well as
compliance to the UTF-8 flag in the PluginDescriptionFile.

Addresses BUKKIT-314, BUKKIT-1466, BUKKIT-3377

By: Wesley Wolfe <wesley.d.wolfe+git@gmail.com>
2014-03-25 00:05:21 -05:00
Bukkit/Spigot
14d4cd125c Add awake flag for bats. Adds BUKKIT-5606
By: Wesley Wolfe <wesley.d.wolfe+git@gmail.com>
2014-05-13 20:39:02 -05:00
Bukkit/Spigot
abd8cbed5e Allow inventory creation by InventoryType and title. Fixes BUKKIT-4045
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.

By: eueln <euelnd@gmail.com>
2013-04-11 14:13:11 -05:00
Bukkit/Spigot
ec20888a8a Account for spacing in MapFont#getWidth(). Fixes BUKKIT-4089
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.

By: eueln <euelnd@gmail.com>
2014-04-11 15:37:15 -06:00
Bukkit/Spigot
6ec832fffe Add missing entity effects. Adds BUKKIT-3311
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.

By: LordRalex <lordralex@gmail.com>
2014-04-11 16:22:37 -06:00
Bukkit/Spigot
6ad5dfa283 [Bleeding] Add COCOA_TREE to list of possible tree types.
By: GJ <gjmcferrin@gmail.com>
2014-04-28 10:17:12 -04:00
Bukkit/Spigot
7731218b97 Add BlockMultiPlaceEvent. Adds BUKKIT-5558
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.

By: Nate Mortensen <nate.richard.mortensen@gmail.com>
2014-04-21 17:23:36 -06:00
Bukkit/Spigot
181e1c1fb3 [Bleeding] Add new TargetReasons to EntityTargetEvent.
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.

By: GJ <gjmcferrin@gmail.com>
2014-02-08 08:32:54 -05:00
Bukkit/Spigot
413ff265d8 [Bleeding] Add SpawnReasons to cover new Minecraft features.
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.

By: GJ <gjmcferrin@gmail.com>
2014-02-05 11:38:58 -05:00
Bukkit/Spigot
515b357c19 [Bleeding] Use proper teleport reason for /tp command. Fixes BUKKIT-5348
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.

By: GJ <gjmcferrin@gmail.com>
2014-02-04 12:44:25 -05:00
Bukkit/Spigot
e7478f7b85 Update Bukkit for Minecraft 1.7.9
By: Travis Watkins <amaranth@ubuntu.com>
2014-04-17 13:44:58 -05:00
Bukkit/Spigot
328f4ee7c8 Revert changes to ban API from 1.7.8
By: Travis Watkins <amaranth@ubuntu.com>
2014-04-17 10:44:02 -05:00
Bukkit/Spigot
22428bb2fc Revert additions to skull BlockState API from 1.7.8
By: Travis Watkins <amaranth@ubuntu.com>
2014-04-17 08:40:04 -05:00
Bukkit/Spigot
0ebd864e63 Add methods to use arbitrary entries in scoreboards. Adds BUKKIT-3977
By: Travis Watkins <amaranth@ubuntu.com>
2014-04-12 11:13:14 -05:00
Bukkit/Spigot
07c1670354 Update Bukkit for Minecraft 1.7.8
By: Travis Watkins <amaranth@ubuntu.com>
2014-04-10 20:06:14 -05:00
Bukkit/Spigot
9581550637 Add method to send fake sign updates to players. Adds BUKKIT-2300
By: Patrick Seidel <psycowithespn1@aim.com>
2013-03-21 16:48:06 -04:00
Bukkit/Spigot
9476b86738 Add player unique ID to (Async)PlayerPreLoginEvent. Adds BUKKIT-5108
By: BlackHole <black-hole@live.com>
2013-12-09 02:41:17 +01:00
Bukkit/Spigot
cf7171f968 Deprecate missed magic values from 1f83111208ab3612f384a2e6b65cc28423dc625e
By: Wesley Wolfe <weswolf@aol.com>
2014-04-01 20:50:06 -05:00
Bukkit/Spigot
43e2fb9739 Add API for dealing with player UUIDs. Adds BUKKIT-5071, BUKKIT-5501
By: Travis Watkins <amaranth@ubuntu.com>
2014-03-28 21:12:42 -05:00
Bukkit/Spigot
a742349b87 Pulling all pending Bukkit-JavaDoc changes
By: Wesley Wolfe <weswolf@aol.com>
2014-03-24 13:20:52 -05:00
Bukkit/Spigot
8ea6ca64d1 [Bleeding] Add direct addresses for command aliases.
By: t00thpick1 <t00thpick1dirko@gmail.com>
2014-02-21 21:44:54 -05:00
Bukkit/Spigot
71ae039e05 [Bleeding] Plugin aliases should have higher priority than fallbacks. Fixes BUKKIT-5442
By: t00thpick1 <t00thpick1dirko@gmail.com>
2014-02-18 21:47:03 -05:00
Bukkit/Spigot
de55549866 Update Bukkit to 1.7.5
By: mbax <matt@phozop.net>
2014-03-03 20:00:43 -05:00
Bukkit/Spigot
181110e567 Update data folder migration for spaces in plugin names. Fixes BUKKIT-5417
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.

By: Wesley Wolfe <weswolf@aol.com>
2014-02-15 12:05:20 -06:00
Bukkit/Spigot
bc562b3f5b Provide warnings for spaces in plugin names. Addresses BUKKIT-5419
By: Wesley Wolfe <weswolf@aol.com>
2014-02-15 11:37:33 -06:00
Bukkit/Spigot
edd5dc6155 Fix loadbefore, soft, and normal dependencies with spaces. Fixes BUKKIT-5418
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.

By: Wesley Wolfe <weswolf@aol.com>
2014-02-15 11:17:14 -06:00
Bukkit/Spigot
05512d64d0 Updated version to 1.7.2-R0.4-SNAPSHOT for development towards next release.
By: EvilSeph <evilseph@gmail.com>
2014-02-12 01:58:55 -05:00
Bukkit/Spigot
61908819bf Updated version to 1.7.2-R0.3 in pom.xml for Beta.
By: EvilSeph <evilseph@gmail.com>
2014-02-12 01:33:04 -05:00
Bukkit/Spigot
2244f53bdd [Bleeding] Update Tell and Help aliases to use alias system.
By: t00thpick1 <t00thpick1dirko@gmail.com>
2014-02-10 12:36:00 -05:00
Bukkit/Spigot
0d884197d5 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.

By: Travis Watkins <amaranth@ubuntu.com>
2014-02-10 16:18:36 -06:00
Bukkit/Spigot
cd6bf023f6 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.

By: Travis Watkins <amaranth@ubuntu.com>
2014-02-09 23:16:19 -06:00
Bukkit/Spigot
5e5173aeb4 [Bleeding] Support any number of arguments in aliases
By: t00thpick1 <t00thpick1dirko@gmail.com>
2014-02-09 20:12:04 -05:00
Bukkit/Spigot
6da9e19042 [Bleeding] Implement escape sequence for aliases.
By: t00thpick1 <t00thpick1dirko@gmail.com>
2014-02-09 19:25:27 -05:00
Bukkit/Spigot
aecd846814 [Bleeding] Fix getCommand for conflicting plugin commands.
By: t00thpick1 <t00thpick1dirko@gmail.com>
2014-02-09 12:27:08 -05:00
Bukkit/Spigot
2c68d4b554 [Bleeding] Also blacklist ":" in plugin command aliases.
By: t00thpick1 <t00thpick1dirko@gmail.com>
2014-02-08 15:50:30 -05:00
Bukkit/Spigot
2ee5a01e78 [Bleeding] Fix formatting of optional arguments.
By: t00thpick1 <t00thpick1dirko@gmail.com>
2014-02-08 15:22:45 -05:00
Bukkit/Spigot
04d5aec52c Pulling all pending Bukkit-JavaDoc changes
By: Wesley Wolfe <weswolf@aol.com>
2014-02-08 06:05:41 -05:00
Bukkit/Spigot
67a85bef54 [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.

By: t00thpick1 <t00thpick1dirko@gmail.com>
2014-02-08 04:07:11 -05:00
Bukkit/Spigot
2a23e6bfaf [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.

By: t00thpick1 <t00thpick1dirko@gmail.com>
2014-02-08 04:07:11 -05:00
Bukkit/Spigot
0057d2f32f [Bleeding] Blacklist ":" in command names.
By: t00thpick1 <t00thpick1dirko@gmail.com>
2014-02-08 01:56:15 -05:00
Bukkit/Spigot
e833c88a72 [Bleeding] Blacklist certain plugin names
By: t00thpick1 <t00thpick1dirko@gmail.com>
2014-02-07 20:30:34 -05:00
Bukkit/Spigot
4d3aba0a11 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().

By: mbax <matt@phozop.net>
2014-02-03 22:16:14 -07:00
Bukkit/Spigot
d105ec8617 Added SpawnReasons for nether portals and dispensers. Fixes BUKKIT-3148
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.

By: Kodekpl <Kodekgames@gmail.com>
2013-08-21 15:41:58 +02:00
Bukkit/Spigot
05119d68ce [Bleeding] Add setCharged and getCharged to WitherSkull. Adds BUKKIT-3060
By: t00thpick1 <t00thpick1dirko@gmail.com>
2014-01-26 20:08:28 -05:00