Commit Graph

3184 Commits

Author SHA1 Message Date
Andrew Steinborn
608b5e5235 Optimize RegistryID.c()
Fixes #1253
2018-07-23 12:58:48 -04:00
Shane Freeder
12b0bf7983
Avoid ArithmeticException should server be stopped before worlds are loaded
Our changes for the spawn radius have the potential to throw an ArithmeticException
should the server be stopped before we've loaded worlds, we check if the server is
running earlier to check if we should even consider attempting to load chunks, which
would cause us to, 1) not load chunks anyways, as we're disabled; 2) throw an
ArithmeticException due to us expecting that we're going to be loading more than 0 chunks.
2018-07-23 10:25:03 +01:00
Shane Freeder
aad194a32e
Update B/CB/S 2018-07-23 09:44:57 +01:00
Aikar
6e3ef06255
Remove debug that got left in proto chunk change last build 2018-07-22 22:33:43 -04:00
Aikar
dda43c2566
Don't save Proto Chunks
These chunks are unfinished, and waste cpu time saving these unfinished chunks.
the loadChunk method refuses to acknoledge they exists, and will restart
a new chunk generation process to begin with, so saving them serves no benefit.
2018-07-22 21:25:48 -04:00
Aikar
643187e289
Fix spawn loading percentages 2018-07-22 19:53:01 -04:00
Aikar
b801b4baa8
Fix Chest open/close animations 2018-07-22 19:39:56 -04:00
Aikar
9a279b3947
Re-add Optimize Hoppers patch 2018-07-22 19:03:54 -04:00
Aikar
4dd6ddb86b
Re-add block inlining - Closes #1229
Also reordered MC Utils to be higher up
2018-07-22 18:46:13 -04:00
Aikar
4b66f1978d
Update upstream 2018-07-22 13:10:15 -04:00
Aikar
c025f19c31
because upstream force pushed... lets try again 2018-07-22 01:30:37 -04:00
Aikar
e2c75e81f7
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
6219932b89
Add mc util methods 2018-07-22 00:45:49 -04:00
Aikar
bf2c56e8ae
Readd configurable max chunk gens per tick 2018-07-21 17:24:18 -04:00
Aikar
34404e60c9
Restore Configurable Allowance of Perm Chunk Loaders 2018-07-21 17:03:26 -04:00
Aikar
13e34d8e1c
[CI-SKIP] delete removed patches 2018-07-21 16:57:12 -04:00
Aikar
39ea0d21dc
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
Aikar
1d28f62522
Rebuild patches for upstream merge 2018-07-21 16:43:00 -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
dc8f516424
Update Upstream 2018-07-21 16:03:10 -04:00
Aikar
d0cd5b3b23
Duplicate UUID Resolve Option
Due to a bug in 2e29af3df0
which was added all the way back in March of 2016, it was unknown (potentially not at the time)
that an entity might actually change the seed of the random object.

At some point, EntitySquid did start setting the seed. Due to this shared random, this caused
every entity to use a Random object with a predictable seed.

This has caused entities to potentially generate with the same UUID....

Over the years, servers have had entities disappear, but no sign of trouble
because CraftBukkit removed the log lines indicating that something was wrong.

We have fixed the root issue causing duplicate UUID's, however we now have chunk
files full of entities that have the same UUID as another entity!

When these chunks load, the 2nd entity will not be added to the world correctly.

If that chunk loads in a different order in the future, then it will reverse and the
missing one is now the one added to the world and not the other. This results in very
inconsistent entity behavior.

This change allows you to recover any duplicate entity by generating a new UUID for it.
This also lets you delete them instead if you don't want to risk having new entities added to
the world that you previously did not see.

But for those who are ok with leaving this inconsistent behavior, you may use WARN or NOTHING options.

It is recommended you regenerate the entities, as these were legit entities, and deserve your love.
2018-07-21 14:47:05 -04:00
Aikar
7279362307
Add more information to Entity.toString 2018-07-21 14:46:56 -04:00
Aikar
a24cb4d4d6
change LAST_EDIT to PAPER_LAST_EDIT for edit commands
LAST_EDIT is way too generic considering it pollutes the users global environment....
2018-07-21 12:07:33 -04:00
Aikar
4a4d299641
Add more information to Entity.toString() 2018-07-21 10:29:37 -04:00
Aikar
c1c9d850f1
Add Debug Entities option to debug dupe uuid issues
Add -Ddebug.entities=true to your JVM flags to enable more logging
2018-07-21 10:29:14 -04:00
Aikar
82bcd1408a
Guard the Entity.SHARED_RANDOM from seed changes
I don't clearly see any, but as a protection for future changes.
2018-07-21 10:28:45 -04:00
Brokkonaut
ff4ae7b05e 1.13: Resend bed on cancelled interaction (#1245)
Minecraft 1.13 requires resending the block for both parts of the bed
2018-07-21 08:47:22 -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
1fe8472503
update B/CB/S 2018-07-20 20:57:43 +01:00
Zach Brown
dd66bcb809
Merge branch 'master' into pre/1.13 2018-07-20 14:15:12 -05:00
Minecrell
a081172687
Rebuild patch numbers 2018-07-20 14:07:54 -05:00
Minecrell
30ea96ab27 Update to TerminalConsoleAppender 1.1.1 (#1240)
See https://github.com/Minecrell/TerminalConsoleAppender/releases/tag/1.1.1
2018-07-20 14:04:11 -05:00
Zach Brown
09663381ca
Use 1.13 branch and builds for versioning 2018-07-19 17:33:29 -05:00
Zach Brown
0030708509
Move decomp fix from last up to fixes patch 2018-07-19 16:55:27 -05:00
Zach Brown
18ae09c90a
Fix crash in RegionLimitedWorldAccess 2018-07-19 16:51:32 -05:00
Zach Brown
19bf52c4f4
Update paperclip for new Mojang download URLs 2018-07-19 15:51:04 -05:00
Zach Brown
613db95e01
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
493df9ea5c
Merge branch 'master' into pre/1.13 2018-07-19 20:23:18 +01:00
Shane Freeder
7a698b592c
Update CB 2018-07-19 19:43:08 +01:00
Minecrell
8a5f46a0db Avoid adding NetworkManager twice
The removal of `ServerConnection.this.h.add(networkmanager);` got
lost in the 1.13 update, causing network managers to be registered
twice.

Fixes "handleDisconnection() called twice" warning spam in console.
2018-07-19 20:14:27 +02:00
Minecrell
ac58987add Fix decompile/deobfuscation error in BlockPosition iterator
Some of the fields in the anonymous class are named the same as the
surrounding method's parameters, which caused the fields to be
initialized incorrectly.

That way it keeps returning the same block position, resulting
in an infinite loop during chunk generation.
2018-07-19 19:50:34 +02:00
Hugo Manrique
ab5c87e570 Avoid item merge if stack size above max stack size (#1217) 2018-07-19 10:51:55 -05:00
Minecrell
bf21060ad9 Use asynchronous Log4j 2 loggers 2018-07-19 10:48:52 -05:00
Minecrell
0915495113 Update TerminalConsoleAppender to 1.1.0
Fixes a race condition when using TerminalConsoleAppender that may
result in IllegalStateExceptions or duplicate input prompts.
2018-07-19 10:48:52 -05:00
Aikar
ef099d2812
Update master patches just merged to 1.13 2018-07-19 01:51:01 -04:00
Aikar
dc1b407c7d
Merge branch 'master' into pre/1.13
* master:
  Don't process despawn if entity is in a chunk scheduled for unload
  Fix Squids corrupting the entire servers entity randomness....
  Fix placement of chunk tracking - Fixes #1199
2018-07-19 01:46:11 -04:00
Aikar
9aec6a9fe9
Don't process despawn if entity is in a chunk scheduled for unload
This won't happen anyways if the user has
"skip ticking for entities in chunks scheduled for unload" turned on,
but if they don't, protect from this instant killing the entity to
keep it vanilla in behavior

a player may teleport away, and trigger instant despawn
2018-07-19 01:25:18 -04:00
Aikar
5f8fac8acd
Fix Squids corrupting the entire servers entity randomness....
Really hope this solves #1223

Also re-add vanilla debug messages back and add uuid to toString
2018-07-19 01:13:53 -04:00
Shane Freeder
84c98c2ba8
NOT FINISHED! She compiles, and she... suffers the wrath of chunkgen... 2018-07-19 05:42:43 +01:00
Shane Freeder
3bcba64d28
NF! 1.13 - more fixes 2018-07-19 00:31:45 +01:00