Commit graph

189 commits

Author SHA1 Message Date
Black Hole
e27f334bb2
[CI-SKIP] Fix makemcdevsrc.sh for nms relocations (#5389) 2021-03-21 04:07:14 +00:00
Mariell Hoversholm
fac9cc5d5c [CI-SKIP] Ignore .gitignore
A `.gitignore' will make packages such as
`net.minecraft.world.entity.ai.goal.**target**` be ignored. This causes
the entire patch to not apply, which is very suspicious. This commit
adds a `--force' parameter to the `git add' command we run, as per `man
git-add':

```
       -f, --force
           Allow adding otherwise ignored files.
```

The global configuration file was proven problematic, then fixed by
this by commit by Prof_Bloodstone#0123 and thekinrar#0001 on Discord
(`#paper-dev').

CI-SKIP: This does not apply to the CI, therefore it is not worthy of
its own build.
2021-03-19 18:36:06 +01:00
Mariell Hoversholm
700e9e6a56 rebase 2021-03-18 18:03:22 +01:00
Mariell Hoversholm
cf4dc464a8 Revert de5f4e469...c270abe96 2021-03-18 18:03:22 +01:00
Mariell Hoversholm
6870db6137 script & POM fix 2021-03-18 18:03:22 +01:00
Mariell Hoversholm
743c6533c3 Replace ** with * (BSD/macOS) 2021-03-18 18:03:22 +01:00
Mariell Hoversholm
376d7b0975 Don't remove the .java 2021-03-18 18:03:22 +01:00
Mariell Hoversholm
fcb3fd42a7 Fix macOS/BSD support 2021-03-18 18:03:22 +01:00
Mariell Hoversholm
8cfc052497 Link correctly 2021-03-18 18:03:22 +01:00
Mariell Hoversholm
ba1031ca7c Rename work dir 2021-03-18 18:03:22 +01:00
Mariell Hoversholm
1c03cf8987 It's mojang math, not minecraft math 2021-03-18 18:03:22 +01:00
Mariell Hoversholm
39b1257716 Use revision file 2021-03-18 18:03:22 +01:00
Mariell Hoversholm
956150da7f Welcome to 1.16.5-R0.2 2021-03-18 18:03:22 +01:00
Mariell Hoversholm
f6d820f077 It compiles 2021-03-18 18:03:22 +01:00
jmp
b28d461145 Update scripts for NMS repackaging 2021-03-18 18:03:22 +01:00
Mariell Hoversholm
be7cde2c76
[CI-SKIP] Always check PATH for JDK (#5315) 2021-03-06 13:50:24 +00:00
Aikar
c83a661f6e
Optimize Dynamic#get Missing Keys
get was calling toString() on every NBT object that was ever asked for an optional
key from the object to build a string for the error text.

When done on large NBT objects, this was using a ton of computation time building the
JSON representation of the NBT object.

Now we will just skip the value when 99.9999% of the time the text is never even printed.
2020-12-21 11:03:36 -05:00
Shane Freeder
bfa122ae6a [CI-SKIP] Misc script changes (Closes #4346)
testserver - use printf instead of echo, as echo is apparently
              inconsistent across environments
requireDeps - change message slightly, maybe more useful to people?
2020-11-29 06:24:39 +00:00
l1ttleO
8535eca3bf
[CI-SKIP] Fix an error in commit message when updating upstream (#4796) 2020-11-23 08:47:27 -08:00
Jake Potrebic
e6d7bdca1d
[CI-SKIP] fixed sed -i for bsd sed (#4782) 2020-11-19 10:47:22 -05:00
Ben Kerllenevich
858a6e3320
[CI-SKIP] Add curl requirement for building paper. (#4768)
* Add curl to contributing.md

* change semicolons and periods

Co-authored-by: Mariell <proximyst@proximyst.com>
2020-11-15 16:42:05 -06:00
Aikar
e6faa36eb9
Cache DataFixerUpper Rewrite Rules on demand
Mojang precaches every single potential rewrite rule that could ever
exist on server startup. This includes rules from all the way back to versions from 6+ years ago.

This is the source of why the server hogs every CPU core at 100% every start.

For anyone who hard resets for updates or has force upgraded their entire world, this
results in completely wasted cpu cycles.

This massive CPU usage also delays server startup time.

We improve this by making "min version to precache" that defaults to a future version
so that no rewrite rules are precached.

someone who expects to be converting a lot chunks could theoretically set
-DPaper.minPrecachedDatafixVersion=<dataVersionConvertingFrom> as a startup
parameter and only build from that point on.

However this will likely never be needed as the server will still run
the same cache logic on demand when it's actually needed. The only
cost would be some delay on the FIRST chunk conversion, but paper already
runs chunk conversions on another thread so this will likely never be
a concern for TPS.

This patch will significantly reduce CPU use on startup, reduce memory usage,
and improve server startup time.
2020-09-12 17:56:00 -04:00
Shane Freeder
563f77ad23
install remapped server jar to paper package space
Spigot has been stripping the minecraft-server jar down in order to
reduce it's size, primarily by removing classes they don't use from
fastutil. as we use fastutil and offer it as API, this is useless
to us, and creates headaches when it breaks builds due to spigots
version of this being installed.
2020-09-01 23:20:58 +01:00
Daniel Ennis
c97ce029e9
1.16.2 Release (#4123)
PaperMC believes that 1.16.2 is now ready for general release as we fixed the main issue plagueing the 1.16.x release, the MapLike data conversion issues.

Until now, it was not safe for a server to convert a world to 1.16.2 without data conversion issues around villages and potentially other things. If you did, those MapLike errors meant something went wrong.

This is now resolved.

Big thanks to all those that helped, notably @BillyGalbreath and @Proximyst who did large parts of the update process with me.

Please as always, backup your worlds and test before updating to 1.16.2!

If you update to 1.16.2, there is no going back to an older build than this.

---------------------------------

Co-authored-by: William Blake Galbreath <Blake.Galbreath@GMail.com>
Co-authored-by: Mariell Hoversholm <proximyst@proximyst.com>
Co-authored-by: krolik-exe <69214078+krolik-exe@users.noreply.github.com>
Co-authored-by: BillyGalbreath <BillyGalbreath@users.noreply.github.com>
Co-authored-by: stonar96 <minecraft.stonar96@gmail.com>
Co-authored-by: Shane Freeder <theboyetronic@gmail.com>
Co-authored-by: Jason <jasonpenilla2@me.com>
Co-authored-by: kashike <kashike@vq.lc>
Co-authored-by: Aurora <21148213+aurorasmiles@users.noreply.github.com>
Co-authored-by: KennyTV <kennytv@t-online.de>
Co-authored-by: commandblockguy <commandblockguy1@gmail.com>
Co-authored-by: DigitalRegent <misterwener@gmail.com>
Co-authored-by: ishland <ishlandmc@yeah.net>
2020-08-24 22:40:19 -04:00
blockparole
5aaf1c514a
prevent path space splitting in testServer.sh (#4007) 2020-07-27 23:05:37 -04:00
Aikar
fb772923d5
Improve Legacy Component serialization size
Don't constantly send format: false for all formatting options when parent already
has it false

Fixes #3680
2020-06-28 21:27:27 -04:00
kickash32
52f8503639 someone left this in? 2020-06-27 12:44:50 -04:00
Spottedleaf
c300745c8b even even even even more work 2020-06-25 16:38:24 -07:00
Aikar
6c87b85dd1
1.16.1 prep 2020-06-24 22:00:02 -04:00
Aikar
a28f80090e
Initial prep for 1.16
Remove patcehs we know need to go
add comment on one im not sure should be dropped

go ahead and fix patched repos to turn off gpg signing, as this
helps rebase/apply --continue commands not suck.

Go ahead and prep the pom file change
2020-06-24 04:41:14 -04:00
Aikar
b6cf80ee66
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:19:08 -04:00
Aikar
4d38ee111f
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 01:03:42 -04:00
Aikar
c82b292ab0
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:55:30 -04:00
Minecrell
5c0bfffa09
Speed up rebuilding patches and reduce diff 2020-05-06 05:31:08 -04:00
Aikar
78431dcaef
Update test server startup script 2020-04-09 20:45:38 -04:00
Aikar
e4d10a6d67
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:09:17 -04:00
Shane Freeder
7bd0b6ab1a
[CI-SKIP] Add PAPER_TEST_APP_ARGS 2020-03-04 22:27:59 +00:00
Spottedleaf
d16a5d8813 Performance patches prerequisite (#2802)
Prereq changes for the coming storm of performance patches.
Includes optimising incremental saving
2020-01-27 18:16:53 -06:00
Shane Freeder
9e58f22640
Address gen concurrency issue causing crashes (Fixes #2746) 2019-12-16 01:38:00 +00:00
Shane Freeder
0585f99b05
Prevent TRAP while loading Fireballs 2019-12-14 01:15:01 +00:00
Zach Brown
4ac40031f2
[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
9530f1bd01
[CI-SKIP] Fix regression with scripts in directories with spaces
Regression introduced with the ability to apply patches directly to
upstream patches in ef170ee659
2019-08-10 09:59:43 -05:00
Zach Brown
c682358624
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
ef170ee659
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
5dc46cd3b2 Move getTypeIfLoaded and friends to IBlockAccess (#2077) 2019-05-27 01:14:14 -05:00
Shane Freeder
7e6db27085 Aim towards real 1.14 2019-04-25 07:53:51 +01:00
Shane Freeder
a64c1a03c9 More work towards 1.14 pre5 2019-04-24 02:00:24 +01:00
Shane Freeder
6c3f04049d Initial work on 1.14 pre-5 2019-04-23 10:35:52 +01:00
Timardo
0d098ca00d [CI-SKIP] Update makemcdevsrc.sh (#1950)
[Aikar note] we really should figure out a way to skip CI again :(
2019-04-08 19:55:49 -04:00
Aikar
96f8b1af6c
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:25:48 -04:00