Commit graph

209 commits

Author SHA1 Message Date
Aikar
8833b1ba15 Preload important classes such as Logger and JLine
This is for 2 reasons:
1) Ensuring our log4j is mostly loaded at OUR version.
   I've seen stack traces with line numbers that do not match our version. This means that some
   plugin has shaded in log4j and their loaded version is mixing with ours....
   So by at least trying to load a bunch of log4j classes before we load plugins, we can be
   more sure mixed versions are not loading.

2) If the jar file is replaced while the server is runnimg class not found errors galore
   This will preloaod a bunch of classes commonly seen to error during shutdown due to this.

   The goal here is to help let the server shutdown gracefully as possible. Some plugins will
   still blow up here if they access a class that hadn't been loaded yet, but goal is to at least
   stop freezing the shutdown process as it does with JLine and Log4j errors requiring an external kill.

   Ideally you should not replace jars while the server is running, but it is something that happens in
   development for testing.

Updated test server to do a copy though to avoid this happening in Paper development.
2020-05-24 13:09:02 -04:00
Aikar
ad73c0eb38 Many fixes and improvements to chunk prioritization
I believe this brings us back to stable. A lot of complexity was
learned about juggling priorities.

We were essentially promoting more chunks to urgent than really
needed to be urgent.

So this commit adds a lot more logic to juggle neighbor priorities
and demote their priority once they meet the requirements needed of
them.

This greatly improves the performance of "urgent" chunks".

Fixes #3410
Fixes #3426
Fixes #3425
Fixes #3416
2020-05-22 00:46:44 -04:00
Aikar
ade297307f Fix pooled buffer leak resulting in dynmap black spots - Fixes #3386
Dynmap accessed the raw bytes because it utilized NBT locally, but the
NBTTagcompound was garbage collected while the bytes were still being used.

This will return getBytes() back to being safe, and add a new PoolSafe method
that will prevent the additional allocations for general chunk loading.

Also fixed applyPatches for people with paths in their working directory
if they have mcdev sources built.
2020-05-20 00:51:28 -04:00
Minecrell
9856baa629 Speed up rebuilding patches and reduce diff 2020-05-06 11:31:08 +02:00
Aikar
e5a14f71d5 Update test server startup script 2020-04-09 20:45:38 -04:00
Aikar
a25f99d254 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:
122289ff Add FaceAttachable interface to handle Grindstone facing in common with Switches
a6db750e SPIGOT-5647: ZombieVillager entity should have getVillagerType()

CraftBukkit Changes:
bbe3d58e SPIGOT-5650: Lectern.setPage(int) causes a NullPointerException
3075579f Add FaceAttachable interface to handle Grindstone facing in common with Switches
95bd4238 SPIGOT-5647: ZombieVillager entity should have getVillagerType()
4d975ac3 SPIGOT-5617: setBlockData does not work when NotPlayEvent is called by redstone current
2020-04-02 17:07:06 -04:00
Shane Freeder
f1cb780357 [CI-SKIP] Add PAPER_TEST_APP_ARGS 2020-03-04 22:27:59 +00:00
Spottedleaf
6745971d4e Performance patches prerequisite (#2802)
Prereq changes for the coming storm of performance patches.
Includes optimising incremental saving
2020-01-27 16:16:53 -08:00
Shane Freeder
bbaca0408f Address gen concurrency issue causing crashes (Fixes #2746) 2019-12-16 01:38:00 +00:00
Shane Freeder
c16a21caee Prevent TRAP while loading Fireballs 2019-12-14 01:11:59 +00:00
Zach Brown
1740293b68 [CI-SKIP] The wheel in the sky keeps on turning
Add extra another fix for directory names with spaces I missed in last
2019-08-10 10:04:10 -05:00
Zach Brown
61524adbca [CI-SKIP] Fix regression with scripts in directories with spaces
Regression introduced with the ability to apply patches directly to
upstream patches in 0e0501c9df
2019-08-10 09:59:43 -05:00
Zach Brown
534b2c8747 Move presource patches out of work/
I forgot we had a clean command in the paper util
2019-06-16 14:34:36 -05:00
Zach Brown
0e0501c9df Update upstream B/CB/S
--- work/Bukkit
Submodule work/Bukkit 6eac6d70..1ef8b9d9:
  > Add Player#openBook(ItemStack) method

--- work/CraftBukkit
Submodule work/CraftBukkit 17543ecf..649921e5:
  > Add Player#openBook(ItemStack) method
  > SPIGOT-2000: Picking up items to shield slot working inconsistently when inventory is full
  > SPIGOT-5037: Player.openMerchant does not show merchant level
  > SPIGOT-5038: Inventory.getHolder returns null for wandering traders

--- work/Spigot
Submodule work/Spigot baafee91..df0eb250:
  > SPIGOT-5043: Desync if world is changed in PlayerSpawnLocationEvent
  > Rebuild patches

Implementation developer note:
This patch adds a "pre-source" patch system for fixing malformed patches
from upstream directly. This seems to keep happening so it's best we
have some way to deal with them. This system brings those issues into
our domain rather than needing to wait for upstream to fix their
malformed files.
2019-06-08 15:33:05 -05:00
Spottedleaf
78a4e64734 Move getTypeIfLoaded and friends to IBlockAccess (#2077) 2019-05-26 23:14:14 -07:00
Shane Freeder
29a22e708f Aim towards real 1.14 2019-04-25 07:53:51 +01:00
Shane Freeder
43b4755c1b More work towards 1.14 pre5 2019-04-24 02:00:24 +01:00
Shane Freeder
a84170f6a0 Initial work on 1.14 pre-5 2019-04-23 05:47:07 +01:00
Timardo
acde3bb1da [CI-SKIP] Update makemcdevsrc.sh (#1950)
[Aikar note] we really should figure out a way to skip CI again :(
2019-04-09 01:55:49 +02:00
Aikar
3c57e007e9 Improve upstream merge script to rebuild patches
this will help ensure that upstreams apply as cleanly as it does manually

the filtering makes the patches more fragile, but usually not an issue for small updates.

this will unfilter, apply the cleanest patches, then the next rebuild will
filter out unnecessary changes
2019-04-02 23:20:10 -04:00
Aikar
1ba5ee72ff Clean upstream before merging to ensure clean state 2019-04-02 21:46:32 -04:00
Zach Brown
bf3ce069c8 [dev] Make init script use different author names
Lets us differentiate whats Vanilla and whats from CB at a glance in IJ.
2019-03-06 00:14:07 -05:00
Shane Freeder
2a69500a1f Fix newline inconsistencies from libraries 2019-02-10 21:53:53 +00:00
Shane Freeder
ac7c46edf3 fix mcdev nms root 2019-02-10 20:43:40 +00:00
Shane Freeder
08b01ae4df 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

Warning: this commit contains more mapping changes from upstream, As always, ensure that you
have working backups and test this build before deployment; Developers working on paper will,
yet again, need to delete their work/Minecraft/1.13.2 folder

Bukkit Changes:
7fca5fd4 SPIGOT-4558: Preserve user order in the face of copied defaults in configurations
15c9b1eb Ignore spurious slot IDs sent by client, e.g. in enchanting tables
5d2a10c5 SPIGOT-3747: Add API for force loaded chunks
d6dd2bb3 SPIGOT-3538: Add getHitBlockFace for ProjectileHitEvent
771db4aa SPIGOT-794: Call EntityPlaceEvent for Minecart placement
55462509 Add InventoryView#getSlotType
2f3ce5b6 Remove EntityTransformEvent and CustomItemTagContainer from draft API
f04ad7b6 Make ProjectileLaunchEvent extend EntitySpawnEvent
ccb85808 Define EntitySpawnEvent
b8cc3ebe Add PlayerItemDamageEvent
184a495d Ease ClassLoader Deadlocks Where Possible
11ac4728 Expand Boolean Prompt Values in Conversation API
aae62d51 Added getAllSessionData() to the Conversation API.
9290ff91 Add InventoryView#getInventory API
995e530f Add API to get / set base arrow damage

CraftBukkit Changes:
c4a67eed SPIGOT-4556: Fix plugins closing inventory during drop events
5be2ddcb Replace version constants with methods to prevent compiler inlining
a5b9c7b3 Use API method to create offset command completions
2bc7d1df SPIGOT-3747: Add API for force loaded chunks
a408f375 SPIGOT-3538: Add getHitBlockFace for ProjectileHitEvent
b54b9409 SPIGOT-2864: Make Arrow / Item setTicksLived behave like FallingBlock
79ded7a8 SPIGOT-1811: Death message not shown on respawn screen
b4a4f15d SPIGOT-943: InventoryCloseEvent called on death regardless of open inventory
0afed592 SPIGOT-794: Call EntityPlaceEvent for Minecart placement
2b2d084a Add InventoryView#getSlotType
01a9959a Do not use deprecated ItemSpawnEvent constructor
9642498d SPIGOT-4547: Call EntitySpawnEvent as general spawn fallback event
963f4a5f Add PlayerItemDamageEvent
63db0445 Add API to get / set base arrow damage
531c25d7 Add CraftMagicNumbers.MAPPINGS_VERSION for use by NMS plugins
d05c8b14 Mappings Update
bd36e200 SPIGOT-4551: Ignore invalid attribute modifier slots

Spigot Changes:
518206a1 Remove redundant trove depend
1959ad21 MC-11211,SPIGOT-4552: Fix placing double slabs at y = 255
29ab5e43 SPIGOT-3661: Allow arguments in restart-script
7cc46316 SPIGOT-852: Growth modifiers for beetroots, potatoes, carrots
82e117e1 Squelch "fatal: Resolve operation not in progress" message
0a1a68e7 Mappings Update & Patch Rebuild
2019-01-01 03:15:55 +00:00
Shane Freeder
21ae8ff67e Updated Upstream (Bukkit/CraftBukkit/Spigot)
Developers!: You will need to clean up your work/Minecraft/1.13.2 folder for this

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:
b850a822 SPIGOT-4526: Add conversion time API for Zombie & subclasses

CraftBukkit Changes:
38cf676e SPIGOT-4534: CreatureSpawnEvent not being called for CHUNK_GEN
b446cb5d SPIGOT-4527: Fix sponges with waterlogged blocks
6ec8ea5c SPIGOT-4526: Add conversion time API for Zombie & subclasses
c64fe508 Mappings Update
a3c2ec03 Fix missing ServerListPingEvent call for legacy pings

Spigot Changes:
1dc156ce Rebuild patches
140f654d Mappings Update
2018-12-17 05:18:06 +00:00
Zach Brown
090b025ed3 [CI-SKIP] Stop trying to standardize commit hashes
This appears to be creating more problems than its actually solving.
Oh and put my echo back in here just because I want it there.
2018-10-26 23:58:58 -04:00
Zach Brown
4bc185d0d7 Try and make zsh complain less
My turn to make "this cant possibly break" changes to the scripts.
2018-10-24 12:35:42 -04:00
Mark Vainomaa
a6fb2b44fa [CI-SKIP] Fix "grep: repetition-operator operand invalid" (#1612)
Some flavours of grep don't like '?' in their expressions (also `.*?` means "match zero or more times or maybe do not match at all" as far as I know).
2018-10-24 18:05:10 +03:00
Aikar
caddaa85a6 [CI-SKIP] use cross platform strategy for sed -i
BSD sed can DIAF.
2018-10-24 01:24:17 -04:00
Aikar
c64c016957 [CI-SKIP] make rebuildPatches support BSD sed
because the world can't be a nice place where all seds are equal
2018-10-24 00:53:08 -04:00
Aikar
6ca5deba8b Don't sleep after profile lookups if not needed
Mojang was sleeping even if we had no more requests to go after
the current one finished, resulting in 100ms lost per profile lookup
2018-10-23 21:14:03 -04:00
Shane Freeder
18ac1d68c0 Update for Minecraft 1.13.2 2018-10-23 00:16:21 +01:00
Aikar
8593ac6ec5 Remove useless hashes from patches
This avoids annoying conflicts as well as gets rid of diff noise
from clients preferring different hash lengths
2018-10-18 22:36:03 -04:00
Aikar
ed7f9b32de [CI-SKIP] Fix build script for version detection
Apparently grep was being greedy even when it shouldn't.
This ensures it doesn't be too greedy.
2018-10-16 23:55:54 -04:00
Zach Brown
39d7c99598 [CI-SKIP] Remove debug echo statements from last 2018-10-16 20:41:07 -04:00
Zach Brown
963393ce85 Fix decompile script json regex
When Mojang added 1.13.2-pre2 to their manifest page it exposed a flaw
in the way the script's regex was getting the version json manifest.

I've tweaked the regex such that it will always first get the version
entry and then use that entry to get the json url, rather than trying to
do the whole thing in one shot.

Fixes GH-1582
2018-10-16 20:38:05 -04:00
Aikar
f481fac7c9 Improvements to DataFixers for performance
Mojang asked me to make some changes, so applied them here.
2018-10-12 01:29:28 -04:00
Aikar
f0ade197ea Fix rebuildPatches and grep colors not reverting junk changes
we've seen some index lines change in length in some PR's, though
this script was suppose to ignore those changes already.

The only way I can see that not working is if the color mode
of grep is breaking the pattern matching, as some people
default their grep to use color=always

this adds color=none to ensure colors are disabled, should ensure it.
2018-10-10 23:16:18 -04:00
Aikar
1800f3b561 [CI-SKIP] Update checkout-pr
Supports usage on any github repo now
2018-10-08 20:42:10 -04:00
Aikar
03d7841172 [CI-SKIP] Update test server rebuild logic
Many times I've ran paper test trying to SHUTDOWN
the existing test server, only for it to see that my target folder
is missing (for whatever reason), and it try to build paper to make
the jar exists.

Well, the patch process will wipe out any uncommitted changes, causing
loss of work.

Now we will only build patches if your missing your entire Paper-Server
folder, and only trigger a mvn compile if the jar is missing.
2018-10-02 21:44:03 -04:00
Aikar
1b44fd3c1b [CI-SKIP] Add copy of my checkout-pr script for other team members 2018-09-22 23:32:22 -04:00
Aikar
69b80568e9 Concurrency and Performance Improvements to DataFixers
Found some more unsafe operations in DataFixers.

Also replaced quite a few bad uses of Map.containsKey

containsKey is a common newbie mistake that "reads" cleaner, but
results in double the performance cost of all map operations as
containsKey in MOST cases where null values are not used is identical to get() == null

Considering how deep datafixers go in call stacks, with tons of map lookups,
this micro optimization could provide some gains.

Additionally, many of the containsKey/get/put style operations were
also a concurrency risk, resulting in multiple computation/insertions.
2018-09-15 13:22:14 -04:00
Aikar
c5811952b4 [CI-SKIP] adjust test server memory flags 2018-09-09 16:59:33 -04:00
Aikar
a1590d9769 Fix yet another issue with concurrency with datafixers 2018-09-04 01:50:14 -04:00
Aikar
0753080fe7 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
ce32154f65 [CI-SKIP] Download mojang libraries sources so we can modify them 2018-09-03 19:55:14 -04:00
Aikar
bc78ff210a [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:57:29 -04:00
Aikar
a289645aa9 [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
6d1e141269 fix bug in needs redecomp deleting wrong directory 2018-08-31 23:59:03 -04:00
Aikar
e82ef9ec05 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 18:56:57 -04:00
Zach Brown
438e10fb48 Merge branch 'master' into pre/1.13 2018-08-24 11:57:11 -04:00
Aikar
356b56351e [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:50:36 -04:00
Aikar
45df85fc40 fix makemcdevsrc auto rebuild 2018-08-14 19:59:53 -04:00
Aikar
9ac6f9a94f [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
2cb4cf8d52 [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
6ed32b2c2d [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
be0ed31821 [CI-SKIP] Merge branch 'master' into pre/1.13
* master:
  Properly forward exit 1 code from the paper root command
2018-07-30 17:40:54 -04:00
Aikar
15735117d7 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
1db0b7ed58 Readd configurable max chunk gens per tick 2018-07-21 17:24:18 -04:00
Aikar
7c13469d6c 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:13:27 -04:00
Aikar
185b6b4c59 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
bd34c3623b NOT FINISHED! She compiles, and she... suffers the wrath of chunkgen... 2018-07-19 05:42:43 +01:00
Aikar
0af7fd4996 build minecraft commit before applying CraftBukkit
allows us to see what craft bukkit changed
2018-07-18 00:45:27 -04: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
Aikar
3ed90751c5 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
dcfc5893e7 Add config to disable ender dragon legacy check (#1167) 2018-06-22 10:49:10 -05: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
5bf1029d82 Fire EntityShootBowEvent for Illusioner 2018-06-18 22:19:59 -04:00
Aikar
43a2693ca0 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
133396a0c9 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
fdc7459143 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 Brown
cf82968f35 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
9b4be61ac6 WitchConsumePotionEvent
Fires when a witch consumes the potion in their hand
2018-05-16 20:35:33 -04: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
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
feaa8460b1 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:51:12 -04:00
Kyle Wood
b2eb1e7f00 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
f512fe2faa 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
9105e06867 Added options to disable additional ore generation in Mesa and Extreme Hills (#1006) 2018-02-13 03:44:50 +03: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
Shane Freeder
21e410d42e [CI-SKIP] Fix apatch zsh support 2017-12-20 13:17:32 +00:00
Aikar
036910d741 add latest copy of my apatch to the repo for easy access 2017-12-09 12:37:31 -05:00
Aikar
41afad51da 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 18:47:30 -05:00
Zach Brown
9650c9dddc 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
689fdea2c7 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:43:16 -04:00
stonar96
3a9f17bc4b Anti Xray v2 (#858) 2017-10-05 14:38:21 +01:00
DemonWav
f29c81c414 Add clean command and fix critical script issue 2017-09-28 17:52:05 -05:00
DemonWav
60f643684a Use absolute paths for pointing Paperclip to files 2017-09-23 13:30:55 -05: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
Zach Brown
7a4c06e567 Update paperclip script for folder move 2017-08-13 15:44:27 -05:00
Zach Brown
67f96885aa 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
b8cda19a77 Fix MC-117075: TE Unload Lag Spike
PaperMC port of https://github.com/MinecraftForge/MinecraftForge/pull/4281
2017-08-09 18:11:57 -05:00
Zach Brown
b39f2133a1 Update Paper to MC 1.12-pre5 2017-05-20 23:41:39 -05:00
Aikar
f73ec445b6 Update test server JVM flags. Bad me not even using my own flags! 2017-05-17 22:51:42 -04:00
Zach Brown
ab4ae72fd5 Update to MC 1.12-pre2 2017-05-14 13:05:01 -05:00
Aikar
7daac312a5 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
36ce1b950a Add more timings to Scheduler and other improvements 2017-02-05 00:13:16 -05:00
Zach Brown
21a724147a 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