Commit graph

455 commits

Author SHA1 Message Date
Minecrell
f556e7652a Improve backward compatibility of deprecated player sample API (#1065)
Some plugins (e.g. older builds of EssentialsX) assume that
ServerListPingEvent.getSampleText() returns a mutable copy of
the player sample list. This was the case until it was refactored
on top of the new API introduced in #980.

As a result, they may run into an error when trying to modify the
returned list directly. Modify getSampleText() to return a mutable
copy (a plain ArrayList) to mimic the old behavior.
2018-03-26 23:45:18 +02:00
Aikar
31c3ae2bb4 Add Setters for ID/Name and add completeByCache for Profile API 2018-03-25 21:50:46 -04:00
Aikar
3c6db79e46 Use copies for PlayerProfile in PaperServerList and SkullMeta
Don't want to risk mutating players properties in server list (unlikely, but lets be proper)

and Skull also has a setter API, so that should be used too.
2018-03-22 23:32:55 -04:00
Minecrell
5336a6b6bb Add extended PaperServerListPingEvent (#980)
* Drop original implementation for old player sample API

* Add extended PaperServerListPingEvent

Add a new event that extends the original ServerListPingEvent
and allows full control of the response sent to the client.

* Implement deprecated player sample API
2018-03-23 04:19:59 +01:00
Aikar
1b8ea6f3bb Fix Profile Textures and expand PlayerProfile .complete() API
I mistakenly thought .complete() also checked for textures, which was not the case

So the logic was not working as desired.

Also some undesired logic paths lead to textures of the logging in player being dropped, forcing
us to always load the textures immediately again on login, leading to rate limits.

Everythings now good

the .complete() api now will default specify to also complete textures, but you may
pass false to it to skip loading textures.
2018-03-22 21:40:57 -04:00
Aikar
e92baf5367 getPlayerUniqueId API
Gets the unique ID of the player currently known as the specified player name
In Offline Mode, will return an Offline UUID

This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer
2018-03-22 01:41:44 -04:00
Aikar
9e2678f71a Update javadoc on setPlayerProfile 2018-03-18 13:28:01 -04:00
Aikar
aa8ad3124a Player.setPlayerProfile API
This can be useful for changing name or skins after a player has logged in.
2018-03-18 12:32:09 -04:00
Aikar
87dc694af9 Ability to change PlayerProfile in AsyncPreLoginEvent
This will allow you to change the players name or skin on login.
2018-03-18 11:46:14 -04:00
Aikar
0094c1669c Add PlayerProfile.complete() API to trigger skin lookup 2018-03-18 11:31:32 -04:00
Shane Freeder
3af34bfe45 Fix NPE when getting location from players EnderChest (fixes #1041) 2018-03-10 13:07:40 +00:00
MiniDigger | Martin
12012ab589 Toggleable player crits, helps mitigate hacked clients. (#1040)
This is a port of https://github.com/PaperMC/Paper/blob/ver/1.8.8/Spigot-Server-Patches/0040-Toggleable-player-crits-helps-mitigate-hacked-client.patch
Also adds me to the MIT list.
2018-03-10 05:14:47 +01:00
Minecrell
1894a7a608 [CI-SKIP] Add Minecrell to MIT list (#1035)
Change email address for some older patches to make it clear that
they are MIT licensed too.
2018-03-08 16:08:21 +01:00
Aikar
d39553c217 Rename getOwnerUUID to Tameable#getOwnerUniqueId for consistency
for the @kashike, thanks for adding a server diff to use this name!
2018-02-24 01:16:01 -05:00
Aikar
d285cd8073 Tameable#getOwnerUUID API
This is faster if all you need is the UUID, as .getOwner() will cause
an OfflinePlayer to be loaded from disk.

This method is already implemented on the server, just needed to expose it.
2018-02-24 00:57:03 -05:00
Aikar
3d9d0a7227 Optimize Hoppers
- Lots of itemstack cloning removed. Only clone if the item is actually moved
- Return true when a plugin cancels inventory move item event instead of false, as false causes pulls to cycle through all items.
  However, pushes do not exhibit the same behavior, so this is not something plugins could of been relying on.
- Add option (Default on) to cooldown hoppers when they fail to move an item due to full inventory
- Skip subsequent InventoryMoveItemEvents if a plugin does not use the item after first event fire for an iteration
2018-01-18 01:00:51 -05:00
Shane Freeder
26144e31b3 Update B/CB 2018-02-08 10:07:27 +00:00
Zach Brown
963ddeb6ed Properly flag profile events as async as needed 2018-02-01 23:24:27 -05:00
Aikar
79e1eb906f Remove warning for custom entities in precreaturespawn, add note to event
We can't fix this. The event will simply not fire for hacky plugins replacing
entity registrations.
2018-01-28 22:50:35 -05:00
Zach Brown
690c955207 Add ArmorStand Item Meta
This is adds basic item meta for armor stands. It does not add all
possible metadata however.

There are armor, hand, and equipment types, as well as position data
that can also be added here. This initial implementation should serve as
a starting point for future additions in this area.

Fixes GH-559
2018-01-27 20:40:42 -05:00
Aikar
8d654f26d3 Make PlayerProfile.getProperties mutable
Most other collections returned like this is mutable, lets be consistent.
2018-01-21 14:09:09 -05:00
BillyGalbreath
b89d7add43 PlayerAdvancementCriterionGrantEvent (#978) 2018-01-21 12:23:34 -06:00
Aikar
0d9f8672b1 Fill Profile Property Events
Allows plugins to populate profile properties from local sources to avoid calls out to Mojang API
to fill in textures for example.

If Mojang API does need to be hit, event fire so you can get the results.

This is useful for implementing a ProfileCache for Player Skulls
2018-01-19 00:55:38 -05:00
Aikar
e06cc30ff7 Add SkullMeta.setPlayerProfile API
This allows you to create already filled textures on Skulls to avoid texture lookups
which commonly cause rate limit issues with Mojang API
2018-01-19 00:38:49 -05:00
Aikar
d065e0b00e Move ProfileWhitelistVerifyEvent to use new PlayerProfile API
Also update javadocs on lookup events to link the new methods to use
2018-01-19 00:12:03 -05:00
Aikar
17bec29ef0 Update Profile Lookup Events to use new PlayerProfile API 2018-01-19 00:03:09 -05:00
Aikar
a7da447b88 Add PlayerProfile API to replace GameProfile
This simply provides the base API to create the objects. Further commits will come that adds
adds usage of this API to existing GameProfile based API's, as well as new API's.
2018-01-15 22:13:17 -05:00
Aikar
70f7748553 PlayerNaturallySpawnCreaturesEvent
This event can be used for when you want to exclude a certain player
from triggering monster spawns on a server.

Also a highly more effecient way to blanket block spawns in a world
2018-01-14 17:36:24 -05:00
Aikar
2e05bc73b3 PreCreatureSpawnEvent - Closes #917
Adds an event to fire before an Entity is created, so that plugins that need to cancel
CreatureSpawnEvent can do so from this event instead.

Cancelling CreatureSpawnEvent rapidly causes a lot of garbage collection and CPU waste
as it's done after the Entity object has been fully created.

Mob Limiting plugins and blanket "ban this type of monster" plugins should use this event
instead and save a lot of server resources.

See: https://github.com/PaperMC/Paper/issues/917
2018-01-14 17:02:38 -05:00
Zach Brown
ef505a9a32 Update upstream B/CB/S 2018-01-04 02:04:31 -06:00
Shane Freeder
77f24f0be5 Update B 2017-12-28 16:56:31 +00:00
Zach Brown
fa8db475d6 Update upstream B/CB/S 2017-12-27 22:45:33 -06:00
Aikar
c3791a5225 Ability to apply mending to XP API
This allows plugins that give players the ability to apply the experience
points to the Item Mending formula, which will repair an item instead
of giving the player experience points.

Both an API To standalone mend, and apply mending logic to .giveExp has been added.
2017-12-20 17:50:26 -05:00
Aikar
4f6b49e007 Always copy completions for #setCompletions in Tab Complete Events
Per feedback on 6364cb2
2017-12-20 01:09:54 -05:00
Aikar
8665021cdb ExperienceOrbMergeEvent
Fired when the server is about to merge 2 experience orbs
Plugins can cancel this if they want to ensure experience orbs do not lose important
metadata such as spawn reason, or conditionally move data from source to target.
2017-12-19 22:57:46 -05:00
Aikar
0968270200 Make PlayerPickupExperienceEvent extend PlayerEvent 2017-12-19 22:08:28 -05:00
Aikar
ac0ae12415 PlayerPickupExperienceEvent
Allows plugins to cancel a player picking up an experience orb
2017-12-19 22:05:16 -05:00
Aikar
6364cb2591 AsyncTabCompleteEvent shouldn't store Immutable Lists 2017-12-19 16:52:53 -05:00
Aikar
db3cc65511 ExperienceOrbs API for Reason/Source/Triggering player
Adds lots of information about why this orb exists.

Replaces isFromBottle() with logic that persists entity reloads too.
2017-12-19 16:46:27 -05:00
Aikar
7cc544d715 Add World#createExplosion(Location, float, boolean, boolean) API
don't know why this API was missing
2017-12-19 16:25:38 -05:00
Aikar
fa254542bc Display warning on deprecated recipe API
Any plugin still using this API will result in the server saving an inconsistent UUID to player data files,
which then triggers warnings such as "Tried to load unrecognized recipe: bukkit:9e5b92f5-e549-4f47-b0a8-9f89390ed77b removed now."
on the players login.

Plugin authors need to define a key to keep it consistent between server restarts.
2017-12-09 12:42:11 -05:00
Shane Freeder
786d044753 Update B/CB/S 2017-12-05 01:34:10 +00:00
Aikar
f7f8c59f60 AsyncTabCompleteEvent
Let plugins be able to control tab completion of commands and chat async.

This will be useful for frameworks like ACF so we can define async safe completion handlers,
and avoid going to main for tab completions.

Especially useful if you need to query a database in order to obtain the results for tab
completion, such as offline players.

Also adds isCommand and getLocation to the sync TabCompleteEvent
2017-11-26 22:05:48 -05:00
Shane Freeder
2a3e13cc52 Fix javadocs 2017-11-25 17:53:42 +00:00
Aikar
584a612fc0 API to get a BlockState without a snapshot
This allows you to get a BlockState without creating a snapshot, operating
on the real tile entity.

This is useful for where performance is needed
2017-11-24 07:28:57 +00:00
Shane Freeder
a907e21341 Update B/CB/S 2017-11-18 03:04:21 +00:00
Shane Freeder
03960c3d95 Update B/CB/S 2017-11-17 09:40:49 +00:00
pkt77
c849f4f132 Add PlayerArmorChangeEvent
Closes GH-928
2017-11-10 23:46:55 -05:00
BillyGalbreath
222aac9769 PlayerAttemptPickupItemEvent additions 2017-11-10 22:49:53 -05:00
Zach Brown
f141bae102 Update B/CB/S 2017-11-10 17:31:39 -05:00
Shane Freeder
6d76e5b46a Update B/CB/S 2017-11-08 16:13:57 +00:00
Minecrell
90e48db51c Expose client protocol version and virtual host 2017-10-10 18:45:43 +02:00
Minecrell
4b3dd7c7e8 Deprecate player sample list that includes only the player name 2017-10-12 15:50:17 +02:00
Riley Park
7cecdeca83 Some logging changes 2017-10-03 12:13:38 -04:00
Zach Brown
91e639e718 Update documentation around PlayerJumpEvent 2017-09-29 14:58:24 -04:00
Zach Brown
12bf7a15ad Add PlayerJumpEvent 2017-09-28 17:38:17 -04:00
Minecrell
241a264046 Add workaround for plugins modifying the parent of the plugin logger
Essentials uses a custom logger name ("Essentials") instead of the
plugin logger. Log messages are redirected to the plugin logger by
setting the parent of the "Essentials" logger to the plugin logger.

With our changes, the plugin logger is now also called "Essentials",
resulting in an infinite loop. Make sure plugins can't change the
parent of the plugin logger to avoid this.
2017-09-21 19:44:24 +02:00
Minecrell
a64c8c70da Allow plugins to use SLF4J for logging
SLF4J is a commonly used abstraction for various logging frameworks
such as java.util.logging (JUL) or Log4j. Currently, plugins are
required to do all their logging using the provided JUL logger.
This is annoying for plugins that target multiple platforms or when
using libraries that log messages using SLF4J.

Expose SLF4J as optional logging API for plugins, so they can use
it without having to shade it in the plugin and going through
several layers of logging abstraction.
2017-09-21 16:34:36 +02:00
Minecrell
57d987e936 Handle plugin prefixes in Log4j configuration 2017-09-21 16:18:30 +02:00
DemonWav
81d69d5889 Move eclipse compiler patch to POM changes patch
Also update to Paperclip 1.1-SNAPSHOT
2017-09-23 13:17:20 -05:00
DemonWav
52c741517f Remove eclipse compiler for Paper-API
Fixes building with JDK9
2017-09-22 20:12:23 -05:00
Shane Freeder
5ce5ef1c9f Update to 1.12.2, May the Tacos be with you 2017-09-18 12:04:01 +01:00
Shane Freeder
0ccfc595a4 Cache generated EventExecutors (fixes #786)
the first 'major' change in this PR is to cache the generated event
executrs from the ASM class, by doing this we only generate a single
class for every method that we need an executor for, thus reducing the
number of classes that are needed, especially in cases where plugins
re/unregister events all the time.

The second change is to modify the generated classloader map, generated
classloaders are not held against the plugin itself but the classloader
that the event is declared in, the implication here is that we cannot
drop generated classloaders when a plugin disable, and so we use a guava
weak-key'd hashmap, downfall here is that classes won't be GC'd until
guava drops the generated classloader, however the first change should
deal with most of the grunt.
2017-09-06 21:18:36 +01:00
Shane Freeder
89e69d652f Update CB/S 2017-09-09 08:17:12 +01:00
BillyGalbreath
8fc7933953 LivingEntity#setKiller 2017-08-24 15:18:41 -04:00
Riley Park
b90a8b6df4 Deprecate usages of authlib
ref #828
2017-08-22 19:08:41 -07:00
Shane Freeder
7fc4d26c3f Update CB 2017-08-16 16:47:06 +01:00
Shane Freeder
a6eb798352 Update S 2017-08-12 22:32:01 +01:00
Zach Brown
e70452db81 Remove null values in TileEntity tick list
Because who wouldn't want to tick a null tile entity right?
Fixes GH-851
2017-08-11 17:59:44 -05:00
Aikar
64b2b87256 Upstream update 2017-08-07 23:05:16 -04:00
Shane Freeder
2c4293b0f6 Update B/CB/S 2017-08-05 23:36:47 +01:00
BlackHole
01d1cc351b Update to 1.12.1 2017-08-03 16:36:06 +02:00
BillyGalbreath
0ab8f79870 Make /plugins list alphabetical 2017-07-31 02:09:13 -05:00
Aikar
489fda430a Update Upstream 2017-07-30 18:41:08 -04:00
Shane Freeder
fe649493e3 Update B/CB 2017-07-28 14:45:16 +01:00
Aikar
8ff15ca2af ProfileWhitelistVerifyEvent
Fires when the server is validating if a player is whitelisted.

Allows you to do dynamic whitelisting and change of kick message
2017-07-27 23:39:31 -04:00
Aikar
5495450456 Add getI18NDisplayName API
Gets the Display name as seen in the Client.
Currently the server only supports the English language. To override this,
You must replace the language file embedded in the server jar.
2017-07-26 23:44:09 -04:00
Aikar
5617a28291 Implement ensureServerConversions API
This will take a Bukkit ItemStack and run it through any conversions a server process would perform on it,
to ensure it meets latest minecraft expectations.
2017-07-26 23:40:49 -04:00
Aikar
cab448bd32 Improve the Saddle API for Horses
Not all horses with Saddles have armor. This lets us break up the horses with saddles
and access their saddle state separately from an interface shared with Armor.
2017-07-26 23:31:58 -04:00
willies952002
e021202107 Allow Changing of Player Sample in ServerListPingEvent 2017-07-20 18:59:51 -04:00
Aikar
a289bd5949 Update upstream (memory leak fix) 2017-07-16 20:36:27 -04:00
Shane Freeder
43d46feb48 Update B/CB 2017-07-10 14:04:41 +01:00
BillyGalbreath
99f530c937 Add Entity#fromMobSpawner API
Merges and closes GH-752
2017-07-09 01:38:30 -05:00
Shane Freeder
6e57283e32 Fix javadoc warnings 2017-07-03 16:38:49 +01:00
Zach Brown
f63f531f42 Make timings more tolerant of corrupt chunks
Fixes GH-744
2017-07-02 20:54:29 -05:00
Aikar
46e300045a Update upstream 2017-06-25 20:26:00 -04:00
Aikar
b8fb29dc77 SPIGOT-3381: Alias SWEEPING to SWEEPING_EDGE 2017-06-25 19:40:06 -04:00
Zach Brown
3f5b488720 Update upstream B/CB 2017-06-25 18:00:32 -05:00
Zach Brown
604b92968e Update upstream B/CB/S 2017-06-21 22:12:40 -05:00
Aikar
95ae0890a6 Allow plugins to override Vanilla commands with aliases
Spigot broke this in 1.12, re-adding the logic back
2017-06-20 18:59:23 -04:00
Aikar
43e2c9c48c Profile Lookup Events
Adds a Pre Lookup Event and a Post Lookup Event so that plugins may prefill in profile data, and cache the responses from
profiles that had to be looked up.
2017-06-17 17:15:25 -04:00
sweepyoface
5d51c00fac Add UnknownCommandEvent (#746) 2017-06-17 20:53:31 -04:00
Aikar
60177fdfaf Shoulder Entities Release API
Let's you eject the Parrot naturally and get the newly spawned Parrot.
2017-06-17 15:20:25 -04:00
Zach Brown
964e06c9a5 Update upstream B/CB/S 2017-06-12 22:28:09 -05:00
Zach Brown
cd7f5199e8 Renumber patches, fix conflicts, update for 1.12 2017-06-11 20:02:57 -05:00
BillyGalbreath
a86bd09bb7 PlayerAttemptPickupItemEvent (#732) 2017-06-11 19:46:11 -05:00
BillyGalbreath
899f4969c1 PlayerPickupItemEvent#setFlyAtPlayer (#683)
* PlayerPickupItemEvent#setFlyAtPlayer
2017-06-11 19:43:59 -05:00
BillyGalbreath
e91f3880b7 EntityPickupItemEvent (#679)
EntityPickupItemEvent
2017-06-11 19:42:01 -05:00
BillyGalbreath
d1f99dde16 Item#canEntityPickup (#680)
Item#canEntityPickup
2017-06-11 19:40:42 -05:00
Zach Brown
3b5e6cd48f Properly fix JavaDoc linting issues
Fixes our own, and upstream's, issues with the stricter Java 8 JavaDoc
linter.

Also removes the destroystokyo-release maven repository. I'm not sure
why I added it originally, but it's unnecessary now.
2017-06-10 17:11:10 -05:00
Zach Brown
6caa4fe122 Go back to disabling javadoc linting for now
It's breaking our maven deployments. This should be fixed properly in
the future when I have more time and have had less to drink.
2017-06-09 19:40:41 -05:00
Riley Park
991082d2a2 Add configuration option to prevent player names from being suggested 2017-06-09 07:29:59 -07:00
Zach Brown
bdeb75ada8 Remove 1.12 prerelease changes patch 2017-06-08 17:19:12 -05:00
Shane Freeder
8bb457e352 Update Paper to MC 1.12 2017-06-08 15:16:51 +01:00
Zach Brown
74ffc20767 Update upstream B/CB 2017-06-02 23:41:05 -05:00
Shane Freeder
9cf2e3b3dc Update to 1.12-pre6 2017-05-31 09:04:52 +01:00
Zach Brown
d1a100c11e Remove unnecessary doclint param on API 2017-05-27 23:36:18 -05:00
Zach Brown
81159a37d4 Update upstream B/CB/S 2017-05-27 23:25:17 -05:00
Zach Brown
16113437c6 Update upstream B/S 2017-05-23 17:11:28 -05:00
Zach Brown
b39f2133a1 Update Paper to MC 1.12-pre5 2017-05-20 23:41:39 -05:00
Zach Brown
f7d8aa4188 Update upstream B/CB/S 2017-05-15 11:25:20 -05:00
Zach Brown
22910b09c3 Switch 1.12-pre2 to its own version checks
Fix stream formatting issue that had been bugging me
2017-05-15 10:28:28 -05:00
Zach Brown
b712d77d72 Update API patches to MC 1.12pre2 2017-05-14 08:46:44 -05:00
Zach Brown
54e5a2e4da Publicly execute the main thread at dawn
GH-684

Better handles most true deadlock situations
2017-05-13 05:51:09 -05:00
Shane Freeder
4200b785dc Remove Ignore invalid Marker Icon ID's in maps
Spigot has patched this issue inside MapIcon, meaning that we no longer need to maintain this patch; Spigots patch also fixes #668 in that it will verify the length of the array, as well as protect against a negative type value being fetched from the array. Only real change is that Spigots patch returns a MapIcon.Type.PLAYER, instead of the RED_MARKER as originally PR'd by Aikar.
2017-04-22 15:32:06 +01:00
Zach Brown
66a6db73e0 Update upstream B/CB 2017-03-31 23:24:42 -05:00
Zach Brown
1471ac1b64 Merge pull request #628 from willies952002/feature/reloadCommands
Don't Display Success Message on Alias Reload Fail
2017-03-24 22:34:13 -05:00
Zach Brown
b73556fc5c Update upstream B/CB 2017-03-18 21:01:13 -05:00
willies952002
cb08e8ae4c Don't Display Success Message on Alias Reload Fail
Also add "commands" to Tab Completion
Note: This required a signature change to Bukkit#reloadCommandAliases() so that it returns a boolean based on if the command aliases reloaded or not.
2017-03-12 13:19:04 -04:00
Zach Brown
12310fa5f3 Update upstream B/CB/S 2017-02-17 20:03:38 -06:00
Spottedleaf
19fa8bcffc Use invokeinterface for methods defined in interfaces in the ASM executor 2017-02-14 03:04:20 -08:00
Zach Brown
e741a89374 Update upstream CB, reduce version cache time
Closes GH-602
2017-02-07 16:29:26 -06:00
Aikar
01e765f886 Add API to get the url in a timing report listener 2017-02-04 23:07:09 -05:00
Aikar
8246be5c3d More improvements to Timings, RCON now is no longer blocking!
Finally made timings accept "Callback style" reports, so plugins
can listen for when the report is done.

Added new Util interfaces, MessageCommandSender and BufferedCommandSender

This restores and improves using RCON to generate timings reports
2017-02-04 22:47:39 -05:00
Aikar
adc43dff10 Run timings reports after end of tick
I believe we are getting data corruption by doing it in the middle of the tick, as I was seeing
really odd reports from automated ones vs command ones.

This will break issueing timings over rcon single command mode and getting the report link in the response back

But I will try to restore that (and make RCON no longer cause spikes) soon.

Reports will still generate, just because its async, the RCON connection
will drop if not in terminal mode before its done.
2017-02-04 20:46:27 -05:00
Zach Brown
a3cc3e37bd Update upstream S 2017-01-30 22:33:54 -06:00
Zach Brown
65a99a06a8 Update upstream B/CB/S 2017-01-25 22:27:42 -06:00
Zach Brown
4cce8f0cda Expose WorldBorder@isInBounds(Location) check 2017-01-21 17:06:28 -06:00
BillyGalbreath
5d4b4bd35d Add fromBottle flag to Experience Orbs (#584)
* Add fromBottle flag to Experience Orbs
2017-01-20 09:01:53 -06:00
Zach Brown
b0348aea3e Update upstream B/CB/S 2017-01-20 05:21:44 -06:00
Michael Himing
726b291d90 Add World.getPlayerCount 2017-01-13 23:00:33 +11:00
Aikar
11711a201d Enforce Sync Chunk Unloads
Unloading Chunks async is extremely dangerous. This will force it to main
the same way we handle async chunk loads.
2017-01-07 16:08:16 -05:00
Aikar
9bdc25e99b Provide E/TE/Chunk count stat methods
Provides counts without the ineffeciency of using .getEntities().size()
which creates copy of the collections.
2017-01-07 15:27:46 -05:00
Zach Brown
b6dd3fb9d3 Update upstream B/CB
Closes GH-569
2017-01-06 15:45:59 -06:00
Aikar
0d5ac24919 Remove my copyright headers, copy/pasted 2016-12-31 21:51:49 -05:00
Aikar
3eec7df88a PlayerTeleportEndGatewayEvent
Allows you to access the Gateway being used in a teleport event
2016-12-31 21:46:34 -05:00
Aikar
9db5f4c20a New Firework API's
Get the launcher of a Firework and who it is boosting
2016-12-28 02:25:35 -05:00
Aikar
422dc4fa06 JavaDoc String ActionBar API and Deprecate Component based methods.
The Component based methods are not even safe to use, as it may result in invalid items being sent to the client.

The string based method we have added is the only safe way to send with the API.

The client is stricter about componenents being sent for this API, and does not accept children components.

The client is expecting a legacy string.
2016-12-27 15:20:09 -05:00
Aikar
86925b4446 Change implementation of String based Action Bar API
Appears colors did not work for Bungee version, as Action Bar is stricter
2016-12-27 15:06:14 -05:00
Aikar
06e82119e2 IllegalPacketEvent - Resolves #419
Fire an event when an illegal packet is received to let plugins handle it

Lets plugins change the kick message and if it should kick or not.
2016-12-21 21:22:02 -05:00
Riley Park
a0b12ef1e0 API for ArmorStand movement and option for entity lookups 2016-12-21 11:53:41 -06:00
Zach Brown
0fa5771dac Update to Paper to MC 1.11.2 2016-12-21 11:21:40 -06:00
Zach Brown
ec68dfff5a Update Paper to MC 1.11.1 2016-12-20 16:34:27 -06:00
Aikar
f7f9ba8639 Actually set the ChatPosition 2016-12-20 16:02:05 -05:00
Aikar
252c3ff471 Add String based Action Bar API 2016-12-20 15:56:41 -05:00
Zach Brown
8076a6a231 Add ProjectileCollideEvent
Base our vanish changes on top of that event.
2016-12-16 22:13:45 -06:00
Zach Brown
dbfd2a3406 Update upstream B/CB 2016-12-16 15:00:16 -06:00
AlphaBlend
37d3c5cd55 Add source to PlayerExpChangeEvent 2016-11-30 17:31:46 -06:00
willies952002
63870333cb Allow Reloading of Command Aliases
Use "/reload commands" to reload the aliases stored in commands.yml
2016-11-28 10:24:22 -05:00
Zach Brown
4241b49b85 Update upstream B/CB - hitEntity added upstream 2016-11-28 17:16:07 -06:00
vemacs
53bdc0450b Optimize network queue by making size() constant-time
Idea from @AlfieC
2016-11-23 13:02:47 -05:00
Zach Brown
464b0455bd Add ShulkerBoxes to the LootTable API 2016-11-19 11:31:01 -06:00
Aikar
7d73fa7ae0 Update Upstream 2016-11-18 23:58:56 -05:00
Aikar
8f3325047c Re-add dependency reduced pom
Learned the correct way to handle that file
2016-11-18 21:09:03 -05:00
Zach Brown
4832b1a385 Update Paper to MC 1.11 2016-11-16 20:23:38 -06:00
Zach Brown
8c5be62ad9 MC uses JSR 1.3.9 2016-11-03 14:51:00 -05:00
Zach Brown
2e15610701 t 2016-11-03 14:28:58 -05:00
Zach Brown
c189dd9576 Move nullable annotation dependency to JSR 2016-11-03 14:25:50 -05:00
Zach Brown
e49e4020ac Remove some handlers 2016-10-30 21:42:38 -05:00
AlphaBlend
e0f49c8788 Add EntityZapEvent 2016-10-16 23:27:02 -07:00
Zach Brown
b2b163b8ec Add usage message to ReloadCommand
Used when the wrong arguments are supplied, missed when we added the
permissions reload functionality.
2016-10-30 00:13:31 -05:00
Zach Brown
122d3d9d43 Update upstream S 2016-10-26 16:05:22 -05:00
Zach Brown
2515c80051 Update upstream B/CB 2016-10-21 15:28:44 -05:00
AlphaBlend
793dc2df52 Add hit entity to ProjectileHitEvent 2016-10-05 16:07:29 -05:00
Riley Park
c6667c09f3 Fix @aikar's oops with verbose timings 2016-09-23 23:18:36 +00:00
Zach Brown
d9c982ac17 Add javax.annotations to the API
Used this set specifically because they are present in NMS already.
2016-09-16 14:38:52 -05:00
Riley Park
7a403d82a0 @Zbob750 missed a few name changes 2016-09-04 06:26:05 +00:00
Zach Brown
e1423d87ba Update upstream B/CB/S 2016-09-02 22:44:52 -05:00
Zach Brown
fcbbc76319 Update upstream B/CB/S
Remove two features added upstream
2016-08-27 18:41:58 -05:00
Aikar
6b24c4cfde Timings v2: confirm before reset. Add delays before report generation
Require user to confirm the timings reset, warning them that they should not be doing this.
Also require Timings to have ran for 3 minutes before allowing the report command.
Also require 1 minute intervals between reports to stop report spam.
2016-08-19 23:42:38 -04:00
Zach Brown
eacefd4282 Kick git and rebuild patches 2016-08-15 19:22:10 -05:00
Zach Brown
cae6930ae4 Update maven repo urls 2016-08-06 16:49:55 -05:00
Aikar
869b06ea1e Timings v2 cleanups - potential overflow fix and fix bad hostnames
if hostname is invalid on system, just use a static string

also cleans up visibility of a lot of code, hopefully will help jvm optimize more.
2016-06-30 01:31:00 -04:00
Zach Brown
de4a16ead0 Update upstream B/CB/S 2016-06-26 14:13:00 -05:00
Zach Brown
57cff1f17f Update to MC 1.10.2 2016-06-25 12:19:04 -05:00
Aikar
997285e344 Update Entity AddTo|RemoveFrom World events to be EntityEvents 2016-06-24 00:16:46 -04:00
DemonWav
1114f55d45 Add repo to handle the bungee-cord chat dependency 2016-06-23 00:32:41 -05:00
Zach Brown
9b192b2708 Update to Minecraft 1.10 2016-06-08 22:57:14 -05:00
Aikar
8e62fb709b Timings v2: Start methods return self for use in try-with-resources
try (Timing ignored = timing) {
  // Code to time
}
// auto stops timing, even if you return in 42 other places in the block
2016-05-15 17:34:26 -04:00
Zach Brown
f623f903cd Move bad command registration workaround into SMP#dispatch
Fixes GH-274
2016-05-13 00:13:38 -05:00
Aikar
34fcd8ccc2 Paper 1.9.4 Update 2016-05-11 22:07:46 -04:00
Aikar
3da6be053f LootTable API & Replenishable Lootables Feature
Provides an API to control the loot table for an object.
Also provides a feature that any Lootable Inventory (Chests in Structures)
can automatically replenish after a given time.

This feature is good for long term worlds so that newer players
do not suffer with "Every chest has been looted"

API and Event added to control the Auto Replenish feature for players.
2016-05-01 23:54:08 -04:00
Aikar
3b3f85f88f Try to determine plugin name on bad plugin command registration 2016-04-30 12:53:20 -04:00
Zach Brown
81f624837f Timings v2: Plugins don't always register commands properly
*mumbles*
2016-04-30 00:09:29 -05:00
Riley Park
9d57423ba3 Merge pull request #230 from kashike/feature/arrow-pickup
Arrow pickup rule API
2016-04-25 13:27:51 -07:00
Aikar
71db253321 update upstream 2016-04-23 22:41:46 -04:00
Zach Brown
36394d5284 Update upstream Spigot and rebuild 2016-04-22 22:20:34 -05:00
Zach Brown
1ed12cfca6 Fix EntityDismountEvent and VehicleExitEvent cancellation
Perhaps "workaround" would be the better term
2016-04-22 15:45:22 -05:00
Riley Park
a1de1619c6 Arrow pickup rule API 2016-04-22 00:07:16 -07:00
Zach Brown
ebff483051 EntityHealthRegain isFastRegen API 2016-04-22 01:48:49 -05:00
Zach Brown
dea3485028 Remove non-zero BlockIterator block and Loading chunks earlier in player TP patches
Allowing only non-zero BlockIterators breaks an API contract explicitly allowing them
(*eyeroll*)

And loading chunks earlier in the TP patch did not resolve the original issue, and now
that it is resolved, shouldn't actually provide any tangible benefits
2016-04-18 09:40:58 -05:00
Spottedleaf
949de05c01 Also fix javadocs in the Server interface 2016-04-17 13:35:31 -05:00
Spottedleaf
903001bbea Fix silly Javadocs in Bukkit.broadcast 2016-04-16 09:23:37 -07:00
Zach Brown
92d86e55ed Merge pull request #205 from kashike/feature/handshake
Add handshake event
2016-04-13 23:10:34 -05:00
Riley Park
30175bcf9d Add handshake event to allow plugins to handle client handshaking logic themselves 2016-04-13 20:23:07 -07:00
Zach Brown
567224a84c Update bungeecord chat API graduations 2016-04-13 22:18:46 -05:00
Zach Brown
1aa718c217 Only allow non-zero value maxDistances for BlockIterators
Prevents them from iterating infinitely and hanging the server
2016-04-12 23:08:55 -05:00
Zach Brown
f54aa3ca2c Update upstreams 2016-04-11 10:30:12 -05:00
Zach Brown
d79fcf72fa Use 'Paper' for our config file in timings 2016-04-05 23:27:53 -05:00
Aikar
092d08f15c Update Timings to use Region based chunk reporting
This will drastically reduce file size on large servers and help
avoid the parser failing to load the report.

This will also reduce memory usage of timings data.
2016-04-05 01:20:25 -04:00