Commit Graph

164 Commits

Author SHA1 Message Date
Aikar d01d2d8cc5
Fix concurrency issues in DataFixers
We are seeing issues with DataFixers being not thread safe in async chunks
and even in some spigot packet sending code.

There are a few more global objects that are mutated that need to
be synchronized to be safe for use over multiple threads.

There may be more cases, but these are extremely obvious ones.
2018-09-03 22:36:41 -04:00
Aikar f90c38b8f5
[CI-SKIP] Download mojang libraries sources so we can modify them 2018-09-03 20:25:10 -04:00
Aikar 7cdfd6e538 [CI-SKIP] Improve last patch to not use wildcard
Since were having issues on windows for too many patch file names,
figured better use -R instead.

Also added $basedir back
2018-09-03 14:59:29 -04:00
Aikar ab56ada4d2 [CI-SKIP] Fix the NMS Imports detecting our own files
the way I handled this on my fork was using the metadata in the
git "stats" output of patches, however we don't include stats in
the patch files for paper so the code didn't work.

Changed the code to detect our own file editions inside of NMS
to a method that works without stats.

So we no longer need to manually add files to this list
2018-09-03 14:52:26 -04:00
Aikar 78dc176e5c
fix bug in needs redecomp deleting wrong directory 2018-08-31 23:59:03 -04:00
Aikar d089acb3bd
Switch to using ForgeFlower for Paper Only mc-dev imports
ForgeFlower is better than Spigots FernFlower at decompiling the source.

However, in order to maintain the CraftBukkit patches, we must keep
using spigots for the primary.

However, for any file that we import on top of Spigots imported files
there is nothing stopping us from using better decompiled files.

So these changes will use ForgeFlower to maintain a better set of
decomped files, so anything we add on top of Paper can start off
in a better spot.
2018-08-31 23:47:57 -04:00
Zach Brown 12cf81881c
Merge branch 'master' into pre/1.13 2018-08-24 12:15:59 -04:00
Aikar 0ade5595ad
[CI-SKIP] Ensure symlink process never fails build
not sure if this is source of #1365, but doesn't hurt to make
this a non fatal error if the symlink command fails.
2018-08-23 21:51:13 -04:00
Aikar ac87790299
fix makemcdevsrc auto rebuild 2018-08-14 19:59:53 -04:00
Aikar 668ad2cf0b
[CI-SKIP] Avoid rebuilding Paper-Server if Paper-API did not apply
This scenario occurs when Paper-API fails, we then rebuild the patches,
however Paper-Server was left un an outdated state since the most
recent patches did not get applied to it.

This results in us reverting Paper-Server to an older state.

If Paper-API fails to apply, then Paper-Server has to be considered dirty.

This should avoid us having accidental patch reversions
2018-08-12 11:54:35 -04:00
Aikar ac12a97076
[CI-SKIP] If mc-dev src folder exists, rebuild it on apply
This ensures your local copy of this folder is up to date whenever
mcdev imports change on the project.

Before, as we/upstream add/remove's imports, your local folder could
be out of sync and you have to randomly check 'do i need to run this?'

This will just automate it. For those people who don't use this
folder (not sure why you don't!), it won't change anything.
2018-08-11 13:42:15 -04:00
Aikar c341aad25e
[CI-SKIP] Add script to commit upstream changelogs
Paper team can do paper upcommit when manual upstream updates are needed
this will generate a changelog of everything that has changed between then and now.
2018-08-05 21:31:40 -04:00
Aikar cae5a06b92
[CI-SKIP] Merge branch 'master' into pre/1.13
* master:
  Properly forward exit 1 code from the paper root command
2018-07-30 17:41:05 -04:00
Aikar d54ce6c17f
Properly forward exit 1 code from the paper root command
This is so the CI server can pick up when applying patches fails,
and mark the build as a failure.
2018-07-30 17:37:24 -04:00
Aikar bf2c56e8ae
Readd configurable max chunk gens per tick 2018-07-21 17:24:18 -04:00
Aikar 6b63a88df0
Merge branch 'master' into pre/1.13
* master:
  Duplicate UUID Resolve Option
  Add more information to Entity.toString
  change LAST_EDIT to PAPER_LAST_EDIT for edit commands
  Add more information to Entity.toString()
  Add Debug Entities option to debug dupe uuid issues
  Guard the Entity.SHARED_RANDOM from seed changes
  Create a symlink on not-windows to current minecraft decompile dir
2018-07-21 16:25:36 -04:00
Aikar fa8406dab4
Create a symlink on not-windows to current minecraft decompile dir
This is useful for project developers switching back and forth between
1.12.2 and 1.13 so we can have our IDE automatically use the
current version we are working on for included mc-dev files.
2018-07-21 08:09:40 -04:00
Shane Freeder 84c98c2ba8
NOT FINISHED! She compiles, and she... suffers the wrath of chunkgen... 2018-07-19 05:42:43 +01:00
Aikar 87cdf6c201
build minecraft commit before applying CraftBukkit
allows us to see what craft bukkit changed
2018-07-18 00:50:32 -04:00
Aikar 5b6dfb3463
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-16 00:13:29 -04:00
Aikar a8c28e1920
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-14 21:53:22 -04:00
Aikar 467d4d463e
Configurable Bed Search Radius
Allows you to increase how far to check for a safe place to respawn
a player near their bed, allowing a better chance to respawn the
player at their bed should it of became obstructed.

Defaults to vanilla 1.
2018-07-04 15:23:15 -04:00
BillyGalbreath 8f1e26286f
Add config to disable ender dragon legacy check (#1167) 2018-07-03 14:48:54 -05:00
Aikar 7abf2eeeac
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 d5817e9910
Fire EntityShootBowEvent for Illusioner 2018-06-18 22:19:59 -04:00
Aikar 708d52ca03
Ignore Missing Recipes in RecipeBook to avoid data errors
This code was causing NPE's in saving player data, potentially related to reloads.
2018-06-16 16:30:29 -04:00
Aikar 50a23d5ea3
Configurable Alternative LootPool Luck Formula
Rewrites the Vanilla luck application formula so that luck can be
applied to items that do not have any quality defined.

See: https://luckformula.emc.gs for data and details
-----------

The rough summary is:
My goal was that in a pool, when luck was applied, the pool
rebalances so the percentages for bigger items is
lowered and smaller items is boosted.

Do this by boosting and then reducing the weight value,
so that larger numbers are penalized more than smaller numbers.
resulting in a larger reduction of entries for more common
items than the reduction on small weights,
giving smaller weights more of a chance

-----------

This work kind of obsoletes quality, but quality would be useful
for 2 items with same weight that you want luck to impact
in varying directions.

Fishing still falls into that as the weights are closer, so luck
will invalidate junk more.

This change will result in some major changes to fishing formulas.

-----------

I would love to see this change in Vanilla, so Mojang please pull :)
2018-06-15 00:32:35 -04:00
Kyle Wood d45565f83b Handle gpg signing better (#1123)
Instead of checking whether it was set previously, setting it to false,
then setting it back to true if it was true before, just use the
command-line argument in git to override the config for that command.
Using a variable makes it pretty painless to do.
2018-05-24 13:41:50 -05:00
Zach 01c6454ead Apply workaround for patch application on Windows (#1122)
This is not a perfect workaround but it seems to be the best solution
for the moment.

On Windows, this means that when a patch fails to apply, you would now
need to fix that patch, finish the apply (AM), then rebuild all patches,
and then finally re-run the patch apply procedure in order to continue.

This adds a small amount of overhead compared to the traditional method
(which will still work on *nix environments, including WSL). However, it
seems preferable to the build not working on Windows at all.
2018-05-16 20:41:10 -05:00
Aikar dc7680211c
WitchConsumePotionEvent
Fires when a witch consumes the potion in their hand
2018-05-16 20:49:43 -04:00
Minecrell 16869992a8 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 13:00:01 -04:00
Minecrell e15167251b 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-22 23:19:59 -04:00
Aikar 75640df894
Fix Dragon Server Crashes
If the dragon tries to find "ground" and hits a hole, or off edge,
it will infinitely keep looking for non air and eventually crash.
2018-03-21 20:55:46 -04:00
Kyle Wood 1b2c45f9d0
Use a more general method of aliasing md5sum
Rather than checking the platform or operating system, simply check if
the command exists. If the check fails, check if the md5 command exists.
If that fails as well, cancel the build script. Otherwise, assign the
alias as before.
2018-02-23 18:58:45 -06:00
ShelLuser 0c7e011b78 This patch allows Paper to be build on FreeBSD using the paper script. FreeBSD also doesn't have md5sum and uses md5, just like OS X. As such I added an extra check for the presence of FreeBSD. 2018-02-22 11:43:31 +01:00
Nikita Rudy 91bd6a049c Added options to disable additional ore generation in Mesa and Extreme Hills (#1006) 2018-02-12 19:44:50 -05:00
Aikar fc194dfaae
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
Shane Freeder d82250d611
[CI-SKIP] Fix apatch zsh support 2017-12-20 13:21:08 +00:00
Aikar d4c3a3b967
add latest copy of my apatch to the repo for easy access 2017-12-09 12:37:31 -05:00
Aikar 0f2c274998 Improve Structures Checking
Improves performance by keying every chunk thats part of a structure to a hashmap
instead of only the first one.

This allows us to avoid iterating the entire structures value set to see
if a block position is inside of a structure.

This should have pretty decent performance improvement to any standard world
that has been around for a whilewith lots of structures due to ineffeciencies
in how MC stores structures (even unloaded chunks has structured data loaded)
2017-11-11 19:06:45 -05:00
Zach Brown e04bef9785
Add Obfuscation helper for armor change impl
Also alphabetize the importmcdev script... heathens, all of you
2017-11-11 00:07:45 -05:00
Zach Brown a1ea3785ca
Add command for listing entities in a world
Port of 303a775fc3

Will display a list of all entities in a world, as well as which chunks
they are in. Hopefully, this will make tracking down chunks with lots of
entities easier.

Only real change from the forge version is that instead of dimension
IDs, we accept world names in the form of a string.

/paper entity list - Lists all entities in the player's current world
/paper entity list minecraft:zombie - Lists all zombies in the player's
current world

/paper entity list * world_nether - Lists all entities in the nether
/paper entity list minecraft:ghast world_nether - Lists all ghasts in
the nether
2017-10-15 17:53:49 -04:00
stonar96 524ebe97d7
Anti Xray v2 (#858) 2017-10-06 04:39:34 +01:00
DemonWav 142fc0d3c5
Add clean command and fix critical script issue 2017-09-28 17:52:05 -05:00
DemonWav 1eadde1ee5
Use absolute paths for pointing Paperclip to files 2017-09-23 13:30:55 -05:00
DemonWav f3b8afd56a
Move eclipse compiler patch to POM changes patch
Also update to Paperclip 1.1-SNAPSHOT
2017-09-23 13:21:02 -05:00
Zach Brown a8c70655c0
Update paperclip script for folder move 2017-08-13 15:44:27 -05:00
Zach Brown 9ff170660b
Move mc decompile source to its own folder
Makes caching easier, ever so slightly more organized.
2017-08-12 18:56:59 -05:00
Zach Brown 0181286eb9
Fix MC-117075: TE Unload Lag Spike
PaperMC port of https://github.com/MinecraftForge/MinecraftForge/pull/4281
2017-08-10 21:06:53 -05:00
Zach Brown c1d0b4b4c6
Update Paper to MC 1.12-pre5 2017-05-20 23:49:56 -05:00
Aikar ce5d34a9ab Update test server JVM flags. Bad me not even using my own flags! 2017-05-17 22:51:42 -04:00
Zach Brown 491286def4
Update to MC 1.12-pre2 2017-05-14 16:06:27 -05:00
Aikar ec31ab32af Shame on you Mojang
Someone wrote some horrible code that throws a world accessing task
onto the HTTP DOWNLOADER Thread Pool, for an activity that is not even
heavy enough to warrant async operation.

This then triggers async chunk loads!

What in the hell were you thinking?
2017-02-05 19:19:35 -05:00
Aikar d49de13c00 Add more timings to Scheduler and other improvements 2017-02-05 00:13:16 -05:00
Zach Brown 327535741d
Do not allow a zero max height in BiomeJungle
Fixes GH-592

Thanks to the forge team who noticed this issue long ago
2017-01-23 15:11:07 -06:00
Zach Brown aa86f4829a
Assign the World in WorldGenStronghold
Fixes GH-580
2017-01-14 01:31:38 -06:00
Aikar 49aca0c04d New Firework API's
Get the launcher of a Firework and who it is boosting
2016-12-28 02:25:35 -05:00
Aikar 4bf7275588 Activation Range Improvements
Fixes and adds new Immunities to improve gameplay behavior
2016-12-28 00:19:58 -05:00
Aikar f63a055b8b Change default Debugging port to avoid conflicts 2016-12-27 16:12:39 -05:00
Zach Brown 748d86a540
Cleanup 'nerfed spawner mobs can float' patch 2016-12-20 21:57:07 -06:00
Zach Brown b41a5ab566
Update upstream B/CB 2016-12-09 18:07:35 -06:00
Aikar 5d1cc02e6a Ignore "Unable to resolve BlockEntity" debug messages - Fixes #489 2016-12-02 00:02:18 -05:00
Mark Vainomaa b872639961 Fix building when directory with spaces is used 2016-11-20 23:58:20 +02:00
Zach Brown 7e37e54053
Simplify the affects spawning API implementation
Get the hell away from EntitySelectors, not that that one right anyway
Fixes GH-482
2016-11-18 18:55:14 -06:00
Zach Brown a6d146a939
Update Paper to MC 1.11 2016-11-18 16:21:06 -06:00
Zach Brown dec715e07b
Filter bad data from ArmorStand and SpawnEgg items
Fixes GH-478
2016-11-12 23:32:40 -06:00
Zach Brown 65e3df5cf4
Remove log redirection in CB init script
This section seems to be a relatively common source of errors. We may as well be as
verbose as the command output, at least for this section.
2016-11-11 13:57:09 -06:00
Zach Brown 2b244fb51e
Update upstrean CB/S 2016-09-11 14:55:02 -05:00
Zach Brown c02c01b2c5
Add rate limiting to PacketPlayInUseItem as well
Also removes our toggle for Spigot's option, I doubt anyone uses it.
2016-09-10 21:44:06 -05:00
Zach Brown c094c7880d
Commit CB changes as "Auto"
Helps when using git's annotate function
2016-09-10 21:43:58 -05:00
Aikar 3170a408da fix order of mc dev imports 2016-08-30 18:54:03 -04:00
killme 078b6fb1e0 Disable ticking of snow blocks 2016-08-30 23:45:59 +02:00
Zach Brown c1932e0290
Add upstreamMerge script to paper tool 2016-08-19 16:02:31 -05:00
Alfie Cleveland d9afd08cee
Optimise BlockStateEnum 2016-08-19 13:06:37 -05:00
Zach Brown 56d669ca52
Push based hoppers cleanup 2016-07-22 18:54:48 -05:00
Zach Brown 36f28b9cae
Stop overwriting block locations, root issue looks to be the TE fixer itself
Fixes GH-352
2016-06-26 18:39:33 -05:00
Zach Brown bb3c7b16e5
Move setBlock tile->tile transition workaround into TE removal 2016-06-26 14:13:27 -05:00
Aikar 18433121dc Fix Old Sign Conversion
1) Sign loading code was trying to parse the JSON before the check for oldSign.
       That code could then skip the old sign converting code if it triggers a JSON parse exception.
    2) New Mojang Schematic system has Tile Entities in the new converted format, but missing the Bukkit.isConverted flag
       This causes Igloos and such to render broken signs. We fix this by ignoring sign conversion for Defined Structures
2016-06-22 22:56:57 -04:00
Techcable bf40dd5557
Make entities look for hoppers
Cherry-pick of PR GH-319
2016-06-18 01:06:44 -05:00
Zach Brown c442e96eb9
Update to Minecraft 1.10 2016-06-08 23:42:46 -05:00
Aikar 6b016cfcbf clean up spigot working files out of our Paper folder 2016-05-12 22:11:11 -04:00
Aikar 9a0f54ce99 Use a more reliable fixed width sequence for rebuild patches 2016-05-12 21:37:14 -04:00
Aikar 0ebd642d15 Be more targetted with patch deletion 2016-05-12 21:24:19 -04:00
Zach 153c12dfb3 Merge pull request #279 from DemonWav/tmux
Add tmux support to Paper test and add test to paper command help.
2016-05-12 13:09:51 -05:00
Aikar b59e2a51de Paper 1.9.4 Update 2016-05-12 01:01:13 -04:00
DemonWav f6ef574012
Add tmux support to Paper test and add test to paper command help. 2016-05-11 22:08:19 -05:00
Aikar c10df228a7 Don't save empty scoreboard teams to scoreboard.dat - Fixes #244
While I can't think of any reason to do this except some REALLY weird workflow, I still added a config
to let you save them incase someone runs into issues.
2016-05-07 23:39:22 -04:00
Aikar 3f0e24eaf3 Do not load chunks for pathfinding 2016-05-04 19:53:33 -04:00
Aikar 211cba970b 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-04 19:46:28 -04:00
kashike db8f9e663c
Add ability to disable, and to set min/max next tick delay, of frosted_ice. Resolves #172 2016-04-25 13:36:21 -07:00
Zach Brown ef64712c6c
SPIGOT-1401: Fix dispenser/dropper/furnace placement being different from SP 2016-04-24 19:56:04 -05:00
Zach Brown 13652bda9f
Add arguments to test server to allow local debug 2016-04-17 13:32:55 -05:00
Aikar 8ba4b64739 Configurable RCON IP address to bind to 2016-04-16 00:46:01 -04:00
Zach Brown 86722e02bf
Z plays with scripts and GPG part 2 2016-04-14 19:15:40 -05:00
Zach Brown 8ccd31ed38 Water mobs should only spawn in the water
Closes GH-199
2016-04-14 18:06:29 -05:00
Zach Brown 9de6a01c18 Revert "Z plays with the scripts and GPG some more"
This reverts commit 834b29c2dc.
2016-04-13 22:39:54 -05:00
Zach Brown 834b29c2dc
Z plays with the scripts and GPG some more 2016-04-13 22:20:23 -05:00
Aikar 4ee5d3eb31 Configurable Player Collision - Resolves #161 2016-04-13 02:11:40 -04:00
Zach Brown 189235906d
Update upstream 2016-04-12 11:31:54 -05:00
Aikar 38b8a26236 Provide ability to wrap test server command for willies... 2016-04-09 21:46:09 -04:00