Commit graph

710 commits

Author SHA1 Message Date
Riley Park
2053af2fa3 Allow disabling armour stand ticking 2018-08-15 01:26:51 -07:00
Aikar
c3b33ee567 Updated Upstream (Bukkit/CraftBukkit) for LootTable API
I have tested that the Replenishing Feature still works as expected.
Lootable API's that now have Bukkit equivalents are now deprecated.

Bukkit Changes:
f0f33981 SPIGOT-1936: LootTable API

CraftBukkit Changes:
c0df4b82 SPIGOT-1936: LootTable API
2018-08-12 13:11:08 -04:00
Aikar
47f090a436 Updated Upstream (Bukkit/CraftBukkit/Spigot)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
c23d391f Update documentation of BlockPhysicsEvent
14fcd896 SPIGOT-4258: Add Player.updateCommands method

CraftBukkit Changes:
15da7067 SPIGOT-4258: Add Player.updateCommands method

Spigot Changes:
2b0e71c7 Rebuild patches
2018-08-12 02:08:09 -04:00
Automated
540bc6f440 [Auto] Updated Upstream (Bukkit/CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
1f85e526 SPIGOT-4253: Add way to prioritise item conversion

CraftBukkit Changes:
96778caa SPIGOT-4253: Add way to prioritise item conversion
2018-08-11 03:49:37 -04:00
Aikar
7c619bbae0 Updated Upstream (Bukkit/CraftBukkit), deprecate SentientNPC API
Upstream has added the equivalent of our SentientNPC API, with exception to the EnderDragon.

We've added Mob to the EnderDragon, and our SentientNPC API should behave the same.

Vex#getOwner has been deprecated and a replacement Vex#getSummoner has been added using Mob.

However, since 1.13 is not production ready, SentientNPC API is subject for removal in 1.13.1 since
1.13 API is not compatible with 1.12.

Please move to the Mob interface ASAP.

This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
c5ab54d8 Expand GameRule API
ab9a606c Improve entity hierarchy by adding Mob interface.

CraftBukkit Changes:
29e75648 Expand GameRule API
50e6858b Improve entity hierarchy by adding Mob interface.
0e1d79b4 Correct error in previous patch
2018-08-10 22:13:00 -04:00
Shane Freeder
3eaefbe3fc Don't reset current tick based on system time 2018-08-10 15:25:45 +01:00
Automated
49c56c04e7 [Auto] Updated Upstream (Bukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
6875ad8b Update documentation and status of command completion related events
2018-08-09 18:29:38 -04:00
Automated
19b215f3b2 [CI-SKIP] [Auto] Rebuild Patches
A recent commit has been made that caused patches to be out of order, rebuilding
2018-08-07 10:51:42 -04:00
BillyGalbreath
6dd8604bfd [1.13] Hand for bucket events (#1300)
This adds the `getHand()` method to the `PlayerBucketEvent`s
2018-08-07 09:44:44 -05:00
Automated
7979b22cc9 [Auto] Updated Upstream (Bukkit)
upcommit

Bukkit Changes:
dd18c0fc Deprecate and add note to regenerateChunk method
2018-08-06 23:19:31 -04:00
Brokkonaut
e9cbd7b668 [1.13] Skull block profile api (#1308)
Adds #1307
2018-08-06 07:24:55 +02:00
Automated
cfa9570036 [Auto] Rebuild Patches
A recent commit has been made that caused patches to be out of order, rebuilding
2018-08-05 18:55:03 -04:00
BillyGalbreath
720f7d920e SkeletonHorse Additions (#1283) 2018-08-04 20:12:41 -05:00
Aikar
c0b3072db5 Provide Chunk Coordinates as a Long API
Allows you to easily access the chunks X/z as a long, and a method
to look up by the long key too.
2018-08-04 19:38:58 -04:00
Aikar
6b7aea2582 Provide Chunk Coordinates as a Long API
Allows you to easily access the chunks X/z as a long, and a method
to look up by the long key too.
2018-08-04 19:38:58 -04:00
Aikar
913a75a412 remove PotionEffect color API as it was removed upstream
appears that value was never even used anyways
2018-08-03 21:23:57 -04:00
Aikar
4b75d48de3 update upstream 2018-08-03 20:31:44 -04:00
Aikar
66db17bdd4 Update upstream 2018-08-01 22:49:47 -04:00
Aikar
429c317232 Merge pull request #1214
55d5aef0 Add TNTPrimeEvent (Mark Vainomaa)

* pull/1214/head:
  Add TNTPrimeEvent
2018-07-31 01:49:40 -04:00
Aikar
720dabd2aa Update Upstream
Removed my ChunkLoadEvent patch as upstream fixed it
2018-07-30 01:08:59 -04:00
Aikar
ef22f9d531 Merge pull request #1244
07cf46c4 Rebuild Patches (BillyGalbreath)
9362271f AnvilDamageEvent (BillyGalbreath)

* pull/1244/head:
  Rebuild Patches
  AnvilDamageEvent
2018-07-30 00:12:03 -04:00
Anthony MacAllister
366c974474 EntityTransformedEvent (#1281) 2018-07-29 23:54:13 -04:00
willies952002
b6ba2877b7 Expand ArmorStand API (#1277)
Add the following:
- Add proper methods for getting and setting items in both hands. Deprecates old methods
- Enable/Disable slot interactions
2018-07-29 23:53:59 -04:00
Aikar
20bf0ed9ea Update upstream 2018-07-29 22:16:15 -04:00
Aikar
c33b679642 update upstream 2018-07-29 12:42:07 -04:00
BillyGalbreath
07cf46c4e3 Rebuild Patches 2018-07-28 22:15:52 -05:00
BillyGalbreath
3eb423d212 Merge branch 'pre/1.13' of https://github.com/PaperMC/Paper into AnvilDamageEvent 2018-07-28 22:02:56 -05:00
BillyGalbreath
28d01d85cc 1.13: EnderDragon Events (#1247)
Replaces PR #1185 for 1.13

Add some new cancellable enderdragon events dealing with its fireball shooting and the areaeffectcloud it spawns. Based on [talking with someone with a specific use-case](https://www.spigotmc.org/threads/cancel-projectilehitevent.326466/) this was [confirmed to work](http://i.imgur.com/ezlfpKC.png) for them in PM.
2018-07-28 01:03:10 -05:00
Zach Brown
b41dde0d2b Move part of last change into proper file 2018-07-25 21:55:25 -05:00
Zach Brown
0b2b5ecc33 Remove deprecated AuthLib API from Paper-API
Use the PlayerProfile API as a replacement
2018-07-25 21:49:43 -05:00
Aikar
8536a71daa Update upstream 2018-07-25 19:05:07 -04:00
Aikar
c5c7f03b19 Merge branch 'master' into pre/1.13
* master:
  Expand Location Manipulation API - Closes #1265
2018-07-25 01:38:59 -04:00
Aikar
3aa400a7ca Expand Location Manipulation API - Closes #1265
Adds set(x, y, z), add(base, x, y, z), subtract(base, x, y, z);
2018-07-25 01:38:37 -04:00
Aikar
af3bd62f9e Merge pull request #1248
1cff9820 PlayerElytraBoostEvent (BillyGalbreath)

* pull/1248/head:
  PlayerElytraBoostEvent

Also merged paper config into parent
2018-07-23 20:24:44 -04:00
Aikar
8e2ae7eb37 Merge pull request #1257
5e14f241 Put the decompile fixes into MC Dev Fixes patch (Andrew Steinborn)
9399a74c Optimize RegistryID.c() (Andrew Steinborn)

* pull/1257/head:
  Put the decompile fixes into MC Dev Fixes patch
  Optimize RegistryID.c()
2018-07-23 20:15:56 -04:00
Aikar
77c51f1785 Update upstream 2018-07-23 18:57:54 -04:00
Andrew Steinborn
5e14f2410c Put the decompile fixes into MC Dev Fixes patch 2018-07-23 13:10:06 -04:00
Andrew Steinborn
9399a74c2a Optimize RegistryID.c()
Fixes #1253
2018-07-23 12:58:01 -04:00
Shane Freeder
0c14fc6ee6 Update B/CB/S 2018-07-23 09:39:55 +01:00
Aikar
70c967fb6b Update Paper to 1.13 proper - THIS IS STILL HIGHLY UNSTABLE
DO NOT RUN ON PRODUCTION SERVERS!!! Use Backups!!
2018-07-22 01:27:46 -04:00
Aikar
58a8ca3eae Restore World.loadChunkAsync API - but load chunks sync
We are still missing Async Chunk Loading, but plugins may be
depending on this API, so it missing blocks upgrading.
2018-07-21 16:55:43 -04:00
BillyGalbreath
1cff982021 PlayerElytraBoostEvent 2018-07-21 02:00:31 -05:00
BillyGalbreath
9362271fc3 AnvilDamageEvent 2018-07-20 23:37:40 -05:00
Shane Freeder
7dd591d1a6 update B/CB/S 2018-07-20 20:57:43 +01:00
Zach Brown
1bac6d6d0b Use 1.13 branch and builds for versioning 2018-07-19 17:33:29 -05:00
Zach Brown
ef420aa25f Add an asterisk to plugins onEnable and in command
Easy visual indicator for server admins to tell which plugins are
operating under the legacy compat mode, and which have been updated.
2018-07-19 15:08:07 -05:00
Shane Freeder
bd34c3623b NOT FINISHED! She compiles, and she... suffers the wrath of chunkgen... 2018-07-19 05:42:43 +01:00
Mark Vainomaa
55d5aef00c Add TNTPrimeEvent 2018-07-16 00:06:26 +03:00
Aikar
6d1a918378 NOT FINISHED!!! Current Progress on 1.13-pre7 update
This work is 100% unfinished. I am pushing it up so that we as a team
can work on this update.

Do not try to use this branch. You will fail.
2018-07-14 21:53:17 -04:00
Aikar
898b8957a8 Initial Paper-API for Bukkit 1.13 Preview 4 - THIS IS NOT SERVER
This branch/commit is only useful to those who purely use a clean Bukkit/Spigot/Paper API
and does not use NMS/OBC references.

This will let you start updating your plugin to the latest 1.13 builds of Bukkit Preview (4 as of now)

Note that this release is not final!!! API breakages may occur!

It is up to you if you find use out of this work.
2018-07-13 21:44:35 -04:00
Zach Brown
c89e4105d2 Update upstream B/CB 2018-07-13 02:39:44 -05:00
Aikar
cc84e0fab8 Vex#getOwner API
Get's the NPC that summoned this Vex
2018-07-04 15:32:30 -04:00
Aikar
8778a2ef97 Current Chunk for Entity and Block Entities, counts by entity type
This enables us a fast reference to the entities current chunk instead
of having to look it up by hashmap lookups.

We also store counts by type to further enable other performance optimizations in later patches.
2018-07-04 03:55:24 -04:00
Aikar
58a2e2dc04 InventoryCloseEvent Reason API
Allows you to determine why an inventory was closed, enabling plugin developers
to "confirm" things based on if it was player triggered close or not.
2018-07-03 21:57:33 -04:00
Brokkonaut
651753d370 Add World.getEntity(UUID) API
This is the best way to get an entity when the world and its UUID are known.
It is faster than Server.getEntity(UUID) because it does not have to iterate all worlds
2018-07-03 16:16:01 +02:00
Brokkonaut
d47caaad6a Improve ProjectileHitEvent to include the BlockFace where the projectile has hit (#1182) 2018-06-30 05:50:17 +02:00
Aikar
14ccb8ebeb Add Critical missing Bukkit API - setTarget/getTarget moved down to SentientNPC
This fixes a CRITICAL missing part of the Bukkit API due to mistakes on upstream
refusing to implement the Sentient NPC baseclass of all NPC's.

Until now, the Bukkit API has not provided a way for accessing and setting
a non creature entities target.

Although Flying, Slime, Ambient, and Water mobs all supported targets internally,
you were unable to get/set it.

Now with the SentientNPC API and these API's moved down, every sentient NPC has
access to target data.
2018-07-01 22:07:35 -04:00
Aikar
2d646ba400 Subtraction goes down, not up. Silly me. 2018-06-30 04:45:17 -04:00
Aikar
d9c9b9a3d2 LivingEntity Hand Raised/Item Use API
How long an entity has raised hands to charge an attack or use an item

Also aliased isHandsRaised for isChargingAttack in RangedEntity
2018-06-29 00:55:29 -04:00
Aikar
278780623d RangedEntity API
Allows you to determine if an entity is capable of ranged attacks,
and to perform an attack.
2018-06-26 22:08:01 -04:00
Aikar
4342d72e74 EntityPathfindEvent should be an EntityEvent 2018-06-25 22:09:11 -04:00
Aikar
a0146a41f2 ItemStack API additions for quantity/flags/lore 2018-06-22 23:03:46 -04:00
Aikar
899149d68d Expand Explosions API
Add Entity as a Source capability, and add more API choices, and on Location.
2018-06-20 23:19:46 -04:00
Brokkonaut
fbe69b61a9 Add EntityKnockbackByEntityEvent (#1162)
This event is called when an entity receives knockback by another entity. The knockback can be modified in the event. If the event is cancelled the entity is not knocked back.
2018-06-21 03:59:11 +02:00
BillyGalbreath
63bf2ee267 Add "getNearbyXXX" methods to Location (#1160) 2018-06-20 20:30:09 -05:00
theminecoder
680e0ad864 Fix PluginCommand to not wrap exceptions before ServerExceptionEvent can get to it (#1130) 2018-06-19 07:03:09 +10:00
BillyGalbreath
283a4b7d60 [CI-SKIP] Clarify Event#callEvent() JavaDoc (#1158) 2018-06-18 15:42:39 -05:00
Aikar
be0d8a5f74 PlayerReadyArrowEvent
Called when a player is firing a bow and the server is choosing an arrow to use.
Plugins can skip selection of certain arrows and control which is used.
2018-06-18 01:13:16 -04:00
Aikar
9fc9d3f486 EntityShootBowEvent consumeArrow and getArrowItem API
Adds ability to get what arrow was shot, and control if it should be consumed.
2018-06-18 00:39:04 -04:00
BillyGalbreath
4a55e34625 Make shield blocking delay configurable (#1154)
Resolves #1153
2018-06-16 14:54:35 -05:00
Aikar
488c39f0f4 Make SentientNPC extend LivingEntity 2018-06-16 14:28:13 -04:00
Aikar
3368739906 Add SentientNPC Interface to Entities
Used to determine ACTUAL Living NPC's. Spigot mistakenly inversed the conditions for LivingEntity, and
used LivingEntity for Insentient Entities, and named the actual EntityLiving class EntityInsentient.

This should of all been inversed on the implementation side. To make matters worse, Spigot never
exposed the differentiator that there are entities with AI that are not sentient/alive such as
Armor stands and Players are the only things that do not implement the REAL EntityLiving class (named Insentient internally)

This interface lets you identify NPC entities capable of sentience, and able to move about and react to the world.
2018-06-16 14:01:01 -04:00
Shane Freeder
1470add5c4 Fix compat with PluginClassloader implementations 2018-06-12 16:10:01 +01:00
Shane Freeder
50eaba9503 Cleanup last commit (Remember, always git diff!)
Because the one time you don't...
2018-06-09 20:03:42 +01:00
Shane Freeder
6812a948db Only close classloaders unless implict, reload or error on enabling (Closes #1120)
We also expose the control of this behavior to the API, while retaining
the old behavior unless implictly requested.
2018-06-09 18:58:04 +01:00
Shane Freeder
056199bd92 Add EntityTeleportEndGatewayEvent for entities (closes #1124) 2018-06-09 14:21:40 +01:00
Aikar
d72d79efee Fix potential for NPE if receivers is null and the world was empty 2018-06-06 21:45:30 -04:00
Aikar
d4e763c30e ParticleBuilder.hasReceivers shouldnt return true if no players are in the world 2018-06-06 21:35:44 -04:00
Aikar
3f4bd3e8f7 Expand ParticleBuilder more with hasReceivers, fix empty receivers list 2018-06-06 21:27:50 -04:00
Aikar
052479037b Expand particle builder API with radius based radius methods 2018-06-06 20:59:04 -04:00
Aikar
4e86ff1c24 ItemStack#getMaxItemUseDuration
Allows you to determine how long it takes to use a usable/consumable item
2018-06-05 23:01:16 -04:00
Aikar
0cd3d13ae9 WitchReadyPotionEvent
Control what potion the witch readies to use
2018-06-05 22:48:27 -04:00
Aikar
de96024fe7 PotionEffect clone methods
Help with modifying potion effects
2018-06-04 01:55:52 -04:00
Aikar
cb9b5bfa82 add Escape Reason Drown for EndermanEscapeEvent
to detect rain specifically from every other armor ignoring hit
2018-05-31 18:16:26 -04:00
Aikar
b4d7828a4f rename method for center to toCenterLocation() 2018-05-24 21:06:06 -04:00
Aikar
b70c406245 Location.toBlockLocation
Convert location objects to their block coordinates, or the center of the block
2018-05-24 21:02:38 -04:00
Aikar
efe156b1f7 Fix Witch Throw Potion error - Resolves #1129 2018-05-23 23:08:04 -04:00
Foorack
bd9e73a2c6 Upgrade ASM to 6.1.1 to allow Java 9 and 10 plugins to load 2018-05-22 22:07:25 -05:00
Zach Brown
4b7080388e Update URLs
Redirects are in place (or will be shortly). This is mostly
housekeeping.

Maven repo URLs already redirect however we can't deploy through them.
Jenkins URLs do not currently redirect but will within 24 hours.

Also adds a Discord link to the README, because apparently that's what
people want.

Documentation will be updated and announcements made once all redirects
are in place, until then, consider this advanced notice.
2018-05-19 01:29:05 -05:00
Aikar
375b54fcd1 WitchThrowPotionEvent
Fired when a witch throws a potion at a player
2018-05-16 20:49:47 -04:00
Aikar
9b4be61ac6 WitchConsumePotionEvent
Fires when a witch consumes the potion in their hand
2018-05-16 20:35:33 -04:00
Shane Freeder
f6f8ff278f Update B/CB 2018-05-08 23:09:45 +01:00
Aikar
1a80507406 Close Plugin Class Loaders on Disable
This should close more memory leaks from /reload and disabling plugins,
by closing the class loader and the jar file.
2018-05-01 21:36:55 -04:00
Aikar
6f281bc19f EndermanAttackPlayerEvent
Allow control over whether or not an enderman aggros a player.

This allows you to override/extend the pumpkin/stare logic.
2018-05-01 20:19:47 -04:00
Aikar
c84c87f8b2 Expand World.spawnParticle API and add Builder
Adds ability to control who receives it and who is the source/sender (vanish API)
the standard API is to send the packet to everyone in the world, which is ineffecient.

This adds a new Builder API which is much friendlier to use.
2018-04-30 20:32:15 -04:00
Aikar
30e08681c8 Location.isChunkLoaded() API 2018-04-30 19:27:59 -04:00
Aikar
f4d5ad301c Additional world.getNearbyEntities API's
Provides more methods to get nearby entities, and filter by types and predicates
2018-04-30 18:27:42 -04:00
Aikar
c25c800a3c Enderman.teleportRandomly()
Ability to trigger the vanilla "teleport randomly" mechanic of an enderman.
2018-04-30 13:30:00 -04:00
Aikar
2c7a08b1df EndermanEscapeEvent
Fires an event anytime an enderman intends to teleport away from the player

You may cancel this, enabling ranged attacks to damage the enderman for example.

Resolves #1101
2018-04-30 13:16:42 -04:00
Aikar
582999642c Add Ban Methods to Player Objects
Allows a more logical API for banning players.

player.banPlayer("Breaking the rules");
2018-04-28 11:31:26 -04:00
Kyle Wood
f1924ad247 Track previous version and report in command
It is often difficult to diagnose new issues server admins get when
upgrading to a new server version because the only information they are
able to tell us regarding the server version they are running is
"latest". This commit attempts to mitigate this by keeping track of the
previous version of Paper they were running, which is then reported by
the `/version` or `/paper version` command. This gives us a better idea
of the commits included in the upgrade, which may help diagnose new
issues easier.
2018-03-01 19:57:22 -06:00
Zach Brown
40edc359b7 Make version command use the direct link
It was using a redirect, but apparently a small portion of systems,
networks, some mess, are having problems with that redirect.

Just use the direct link and skip the hassle.
2018-04-09 16:13:08 -04:00
Shane Freeder
72bd990d87 Allow logger instances to be used across reloads 2018-04-08 02:02:48 +01:00
Mark Vainomaa
50f348988d Add method to open already placed sign 2018-04-01 02:30:41 +03:00
Minecrell
99efa104db Call PaperServerListPingEvent for legacy pings (#1057)
* Make the legacy ping handler more reliable

The Minecraft server often fails to respond to old ("legacy") pings
from old Minecraft versions using the protocol used before the switch
to Netty in Minecraft 1.7.

Due to packet fragmentation[1], we might not have all needed bytes
available when the LegacyPingHandler is called. In this case, it will
run into an error, remove the handler and continue using the modern
protocol.

This is unlikely to happen for the first two revisions of the legacy
ping protocol (used in Minecraft 1.5.x and older) since the request
consists of only one or two bytes, but happens frequently for the
last/third revision introduced in Minecraft 1.6.

It has much larger, variable packet sizes due to the inclusion of
the virtual host (the hostname/port used to connect to the server).

The solution[2] is simple: If we find more than two matching bytes,
we buffer the remaining bytes until we have enough to fully read and
respond to the request.

[1]: https://netty.io/wiki/user-guide-for-4.x.html#wiki-h3-11
[2]: https://netty.io/wiki/user-guide-for-4.x.html#wiki-h4-13

* Add legacy ping support to PaperServerListPingEvent

Add a new method to StatusClient check if the client is a legacy
client that does not support all of the features provided in the
event.
2018-03-30 19:00:01 +02:00
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
Riley Park
67ec2cd957 Add PlayerUseUnknownEntityEvent 2016-04-02 18:10:38 -07:00
Aikar
1ac9958e8b Move fastutil from a patch file to a library, and improve EAR 2016-04-01 00:18:18 -04:00
Aikar
f16d938497 Paper 1.9.2 Update 2016-03-30 20:50:23 -04:00
Aikar
fb94038453 Use FastUtil Long/Int HashMap's
For DataWatcher, swap out plain Integer key HashMap for a Int2ObjectOpenHashMap
For ChunkProviderServer, swap out CB's custom LongHashMap with Long2ObjectOpenHashMap

These collections are super fast as seen
http://java-performance.info/hashmap-overview-jdk-fastutil-goldman-sachs-hppc-koloboke-trove-january-2015/
2016-03-30 02:10:27 -04:00
DemonWav
443a949bac Add getEntity by UUID API 2016-03-30 01:20:36 -05:00
Aikar
e007d80c16 Move Timings v2 TimingHandler to FastUtil Int map 2016-03-30 01:59:47 -04:00
Aikar
092dbc4bea Add Minimal FastUtil int/long collections.
Importing the full library would double the jar size... its way too large.
So lets just import the basic int/long based collections to then use
to improve performance on these kind of collections.
2016-03-30 01:57:56 -04:00
Aikar
88ef71592b Remove, not invalidate, Metadata on reload
Objects loaded over different class loaders are not the same. Nasty dragons lie here.

Also clean up the previous patch to no longer butcher imports.
2016-03-28 22:43:05 -04:00
Aikar
7d7810721e Remove last patch, doesn't exactly do what I thought it was doing 2016-03-28 22:28:52 -04:00
Aikar
a3d5c47c8a Remove Invalidated Metadata
Bukkit was using an unimplemented method to invalidate plugin meta.
2016-03-28 22:15:23 -04:00
crast
97c1f9402f Reduce thread synchronization in MetadataStoreBase
Use ConcurrentHashMap to allow thread-safe access methods and very
limited synchronized portions to allow much higher concurrency in
MetadataStore as well as far less locking, especially on reads
2016-03-28 22:10:01 -04:00
Aikar
7c38e54a9d Remove some code from Timings v2 that was only for EMC. 2016-03-28 21:41:17 -04:00
Aikar
2b55c92307 EntityPathfindEvent
Fires when an Entity decides to start moving to a location.

This is not the same as a move event. This only fires when an entity chooses
to start moving to a location, and allows cancelling that pathfind.

Additionally, only get is supported for now. Unsure if changing target location
is safe to do.
2016-03-28 21:24:45 -04:00
Aikar
a661a1737f Entity AddTo/RemoveFrom World Events
These events will give plugins a reliable way to track every entity that is added
or removed from a world, so that one may always ensure they are in a desired state.
2016-03-28 20:33:10 -04:00
Zach Brown
587aaefcc4 Update upstream B/CB/Spigot and rebuild 2016-03-27 20:48:50 -05:00
Zach Brown
8ec0ce4b89 Merge pull request #153 from kashike/feature/slot
Access items by EquipmentSlot
2016-03-27 02:24:12 -05:00
Zach Brown
1109dc8d70 Update upstream and rebuild 2016-03-27 01:38:58 -05:00
Riley Park
d880c248bf Access items by EquipmentSlot 2016-03-26 22:23:42 -07:00
Byteflux
bcc957e753 Add Entity Origin API
This replaces the TNT and Falling Block Source Location API with a more
general purpose API that works with all entities.
2016-03-25 02:02:35 -07:00
Aikar
4646f9b68f Allow command line arg to allow normal reload 2016-03-21 21:56:52 -04:00
Aikar
a3cc380333 Make /reload require typing confirm to actually reload 2016-03-21 21:40:29 -04:00
willies952002
7178332f2a Add Bukkit#reloadPermissions()
Fix issues with Paper build #544
2016-03-21 21:29:41 -04:00
Daniel Ennis
4916cd2551 Merge pull request #91 from willies952002/feature/permReload
Allow Reloading of Custom Permissions - resolves #49
2016-03-21 20:24:27 -04:00
William
13587006dc Allow Reloading of Custom Permissions
Add the ability to reload the custom permissions file by doing "/reload permissions"

Implements Feature Request: https://github.com/PaperMC/Paper/issues/49
2016-03-19 16:19:00 -04:00
Riley Park
6d01d7f9ea Custom replacement for eaten items 2016-03-19 09:57:19 -07:00
Aikar
3ad0e63a21 set default goals on all pom poms </cheer> 2016-03-18 02:13:51 -04:00
Aikar
588b01aed3 Add sender name to commands.yml replacement
This allows you to use $sender in commands.yml definitions to make
commands that auto target self.
2016-03-18 00:29:35 -04:00
Aikar
d35aeb50ee Add event call helper
This simplifies new event calling by reducing the diff to actually fire the event and check for cancelled state.
2016-03-18 00:24:00 -04:00
Zach Brown
b7d6f29245 Update and rebuild patches 2016-03-12 13:52:49 -06:00
Techcable
c114ab3fea Handle static methods 2016-03-12 09:43:39 -07:00
Zach Brown
a9f44f2240 Rebuild some patches 2016-03-12 00:40:16 -06:00
Techcable
88d0213190 Use ASM for event execution
Reflection (although highly optimized), has noticable overhead.
It also creates noticable GC overhead by allocating arrays with arguments, as @Aikar has said.

Based on WaterfallMC/Waterfall@1692934370

Merge pull request #45 from Techcable/feature/asm-executors
2016-03-03 13:26:03 -07:00
Techcable
99f7a9fcf5 Improve Paper's version checking system
Will now check commit hashes from this repo as a fallback when it is unable to find a build from our CI server. Because not everyone uses it directly
2016-03-11 22:30:18 -06:00
Zach Brown
67ae849417 Merge pull request #73 from kashike/feature/you-are-very-resourceful-you-know-yes-you-are-very-resourceful-yes 2016-03-09 19:45:55 -06:00
Riley Park
a80a692e2b Add more complete resource pack API 2016-03-08 22:23:59 -08:00
Riley Park
0eb02b3760 Add methods for working with arrows stuck in living entities 2016-03-08 20:21:08 -08:00
Riley Park
7feefdf40b Add BaseComponent sendMessage methods to CommandSender 2016-03-08 13:16:54 -08:00
Zach Brown
3a71da0bd3 Silence BeaconEffectEvent, swallow exception in version checking 2016-03-03 04:48:46 -06:00
Zach Brown
d83453116b Update for upstream changes 2016-03-03 03:46:26 -06:00
Zach Brown
26eb457a39 Paper 1.9 2016-02-29 17:09:49 -06:00
Joseph Hirschfeld
4856ba746b Add exception reporting events 2016-02-28 20:15:51 -05:00
Aikar
fbdb33981e Fix ServerListPingEvent flagging as Async 2016-02-24 00:32:44 -06:00
Aikar
5fbb42de01 Make Timings use less passes in its benchmark 2016-02-23 21:31:01 -06:00
Techcable
1bdbffaf84 Improve title API
Uses title objects instead of individual update methods
2016-02-17 19:03:21 -07:00
Zach Brown
004b2d584f Proper maven repo details 2016-02-21 04:12:03 -06:00