Commit graph

1962 commits

Author SHA1 Message Date
Spottedleaf
8e00f47527 Fix MC-154214 (#2195)
This should resolve unloading issues.
2019-06-19 15:48:48 -07:00
Shane Freeder
4606139d59 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:
fd317e44 Fix javadoc mistakes in previous commit
70e4c23d SPIGOT-5061: Add explode and ignite methods to Creeper

CraftBukkit Changes:
efd8a2b5 SPIGOT-5089: UnsupportedOperationException on setting villager memory to null
8003ced5 SPIGOT-5061: Add explode and ignite methods to Creeper
2019-06-19 12:55:03 +01:00
Spottedleaf
30fbda1376 Better format 2019-06-17 17:43:18 -07:00
Spottedleaf
ec6ade68e0 Add WorldName to blockstate location 2019-06-17 17:41:53 -07:00
Spottedleaf
a4a1cae173 Fix chunks refusing to save (#2196)
We should only set hasBeenLoaded to false potentially after saving a chunk
other wise we will not save it. The method to do this is
PlayerChunk#l(), which we were potentially calling for chunks we were not saving.
2019-06-17 00:47:51 -07:00
Spottedleaf
bf2043b339 Fix World#isChunkGenerated calls (#2186)
* Fix World#isChunkGenerated calls

Optimize World#loadChunk() too
This patch also adds a chunk status cache on region files (note that
its only purpose is to cache the status on DISK)

* Ensure correct regionfile usage

This also bumps the minimum region file cache to 4 files given
readChunkData can load potentially 4 files.

* Fix closed check

* Better checks for invalid regionfile usage
2019-06-16 20:52:34 -07:00
Shane Freeder
c4e610e33c Fix out of bounds falling block removal (#2188) 2019-06-16 14:47:23 +01:00
Shane Freeder
5968b5c6e0 Fix enderchests not playing close sound (#2190) 2019-06-16 14:00:08 +01:00
Shane Freeder
75b8a71f9e 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:
04405534 SPIGOT-5034: FoodLevelChangeEvent add getItem method
8154c64c SPIGOT-4984: EnchantmentOffer.getCost() documentation is misleading

CraftBukkit Changes:
f2757f95 SPIGOT-5071: Player loot tables not triggered
f4242226 Optimize getEntitiesByClasses slightly
e81013d7 SPIGOT-5072: Process phantom, cat and patrol spawning in CustomChunkGenerator
30a63379 SPIGOT-5010: World#getEntitiesByClass/es also return entities in border chunks.
43431ba6 SPIGOT-5034: FoodLevelChangeEvent add getItem method
2019-06-16 11:15:21 +01:00
Spottedleaf
b1b5cc1713 fix exception message 2019-06-15 11:07:03 -07:00
Spottedleaf
1cda6342bf Proper paper commenting 2019-06-15 10:36:09 -07:00
Spottedleaf
7d67870905 Show blockstate location if we failed to read it 2019-06-15 10:30:43 -07:00
wizjany
08bd3b86b7 Use the entity registry id instead of translation key when posting PreCreatureSpawnEvent and PreSpawnerSpawnEvent 2019-06-14 22:06:36 -07:00
Spottedleaf
1cad29b3e2 Change format 2019-06-14 21:21:39 -07:00
Spottedleaf
5947d0b315 Add chunkinfo command
Used so that server owners can tell what types of chunks are loaded
without requiring to use a tool to analyse a debug report
2019-06-13 22:51:37 -07:00
Spottedleaf
e8de107ca0 Update upstream & fix some chunk related issues (#2177)
* 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:
45690fe9 SPIGOT-5047: Correct slot types for 1.14 inventories

CraftBukkit Changes:
4090d01f SPIGOT-5047: Correct slot types for 1.14 inventories
e8c08362 SPIGOT-5046: World#getLoadedChunks returning inaccessible cached chunks.
d445af3b SPIGOT-5067: Add item meta for 1.14 spawn eggs

* Bring Chunk load checks in-line with spigot

As of the last upstream merge spigot now checks ticket level status
when returning loaded chunks for a world from api. Now our checks
will respect that decision.

* Fix spawn ticket levels

Vanilla would keep the inner chunks of spawn available for ticking,
however my changes made all chunks non-ticking. Resolve by changing
ticket levels for spawn chunks inside the border to respect this
behavior.


* Make World#getChunkIfLoadedImmediately return only entity ticking chunks

Mojang appears to be using chunks with level > 33 (non-ticking chunks)
as cached chunks and not actually loaded chunks.

* Bring all loaded checks in line with spigot

Loaded chunks must be at least border  chunks, or level <= 33
2019-06-13 19:27:40 -07:00
Omer Uddin
c180ef4b12 Stop natural spawning after limit has been reached (#2127) 2019-06-12 22:34:18 -04:00
Shane Freeder
4a0148ba4e Updated Upstream (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

CraftBukkit Changes:
9e95da12 SPIGOT-5052: PlayerPortalEvent not called when nether is disabled
28ea3fd1 SPIGOT-5062: end_portal on an non-default end world crashes the server
4a07dc69 SPIGOT-5058: ClassCastException when getting InventoryHolder of lectern when it's destroyed
2019-06-12 09:45:30 +01:00
Shane Freeder
5ded82125d Fix async calls to getChunkAtIfLoadedImmediately 2019-06-11 04:17:39 +01:00
Shane Freeder
b579218f93 Fix PlayerNaturallySpawnCreaturesEvent
Trivia: Did you know that events need to be called to work?
2019-06-11 02:45:46 +01:00
Spottedleaf
522cb2b4d1 Improve chunk loaded checks 2019-06-10 17:29:30 -07:00
Shane Freeder
0616199cad Only fire WorldSaveEvent on full chunk saves (Fixes #2161) 2019-06-10 21:45:17 +01:00
Shane Freeder
bb5f617e9b Merge branch 'master' into ver/1.14 2019-06-10 10:11:29 +01:00
Shane Freeder
48f6e45add Catch exceptions from dispenser entity spawns 2019-06-10 09:52:34 +01:00
Shane Freeder
b1167a458a Improve autosave
- don't trip manual save warning
- respect world#isSavingDisabled
2019-06-10 06:39:04 +01:00
Shane Freeder
bdd1dc6535 Incremental chunk saving 2019-06-09 20:22:44 +01: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
4d6f73449f Updated Upstream (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

CraftBukkit Changes:
17543ecf SPIGOT-5035: Error Using Virtual Merchant GUI
0fc6922b SPIGOT-5028: Villager#setVillagerExperience() doesn't work
bdbdbe44 SPIGOT-5024: Fox error - Unknown target reason
2019-06-06 08:36:57 -07:00
Shane Freeder
b97ec2bf45 Fix chunk ticking range 2019-06-06 06:13:00 +01:00
Zach Brown
692aedda04 Update upstream BD/CB/S
--- work/BuildData
Submodule work/BuildData 633897ca..f0032df4:
  > Mappings Update

--- work/CraftBukkit
Submodule work/CraftBukkit b7fea427..043d31de:
  > SPIGOT-5015: Players in spectator mode prevent block placement and block projectiles
  > Make bukkitEntity private to prevent incorrect usage

--- work/Spigot
Submodule work/Spigot 01d0f046..baafee91:
  > Rebuild patches
2019-06-02 22:26:25 -05:00
Mark Vainomaa
69c044e1b7 Set connection thottle to -1 when Velocity IP forwarding is enabled
Port of 3c6f46936e
2019-06-02 21:58:14 -05:00
Zach Brown
d03adac48b Backport MC-114618 - EntityAreaEffectCloud negative size fix 2019-06-02 21:49:14 -05:00
Spottedleaf
fffe000496 Fix tabcomplete firing off-main
Also rebuild patches
2019-06-02 19:19:44 -07:00
Spottedleaf
da7a69cec3 Chunk debug command (#2118)
* Chunk debug command

Prints all chunk information to a text file into the debug
folder in the root server folder.

Will output server version and all online players to the
file as well. We do not log anything but the location,
world and username of the player.

Also logs the value of these config values (note not all are paper's):
- keep spawn loaded value
- spawn radius
- view distance

Each chunk has the following logged:
- Coordinate
- Ticket level & its corresponding state
- Whether it is queued for unload
- Chunk status (may be unloaded)
- All tickets on the chunk

Example log:
https://gist.github.com/Spottedleaf/203bd211020a3a04da0e574fb57dab45

For references on certain keywords (ticket, status, etc), please see:

https://bugs.mojang.com/browse/MC-141484?focusedCommentId=528273&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-528273
https://bugs.mojang.com/browse/MC-141484?focusedCommentId=528577&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-528577

* Use JSON for the chunk dump

* Fix obfhelper naming

* Fix incorrect JSON spec
2019-06-02 18:25:12 -07:00
Riley Park
d8aa9c7970 Merge pull request #2097 from simpleauthority/add-get-step-sound
Add BlockSoundGroup to Block & Implement
2019-06-01 21:13:31 -07:00
Spottedleaf
4ce3dc1b76 Fix memory leak if the server is constantly overloaded (#2109) 2019-05-30 20:19:06 -07:00
Zach Brown
b270fb08ff Update upstream CB/S
--- work/CraftBukkit
Submodule work/CraftBukkit ba575a5a..b7fea427:
  > SPIGOT-5010: World.getEntities returns entities in border chunks
  > Show incorrect size passed into createInventory

--- work/Spigot
Submodule work/Spigot 093165d1..01d0f046:
  > SPIGOT-4986: EntityActivationRange - Raiders
  > SPIGOT-4988: Setting "mob-spawn-range" in spigot.yml also effects random block ticks
2019-05-30 18:54:25 -05:00
Zach Brown
0e9230e80c Fix null display when no version history
Should've been null checked since I made it nullable. String concat
saved us any real damage and so all we saw was "null" shown to users.
Quick check and now we don't.
2019-05-30 18:31:48 -05:00
Zach Brown
f501069d24 Allow proto chunks to be saved again
Appear to be used more extensively in 1.14. Subject to further review.
2019-05-30 18:22:34 -05:00
Mark Vainomaa
e8b7718afe Set connection thottle to -1 when Velocity IP forwarding is enabled 2019-05-30 18:46:47 +03:00
Shane Freeder
18794d2123 Don't replace entries in the tracked player map (Fixes #2102) 2019-05-29 05:54:11 +01:00
Shane Freeder
35226c96e4 ChunkMapDistance-CME 2019-05-29 04:25:08 +01:00
Riley Park
e3e0ca14b6 Merge pull request #2089 from BillyGalbreath/GH2088
MC-114618 - Fix EntityAreaEffectCloud from going negative size
2019-05-28 17:44:32 -07:00
simpleauthority
cb0e26829f Add BlockSoundGroup to Block and implement 2019-05-28 03:53:48 -07:00
Spottedleaf
9f4fe93a9a Update to 1.14.2 2019-05-27 16:01:45 -07:00
William Blake Galbreath
b1fe87eb4a MC-114618 - Fix EntityAreaEffectCloud from going negative size 2019-05-27 17:36:06 -05:00
Spottedleaf
4d1f9bd463 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:
e041de28 SPIGOT-4946: Add VillagerCareerChangeEvent

CraftBukkit Changes:
fcb9f90b SPIGOT-4946: Add VillagerCareerChangeEvent
a4a2f679 SPIGOT-4987: Shulkerbox does not save empty slots
2019-05-27 03:57:28 -07:00
Zach Brown
7a5a4fd400 Move version command update checking to the implementation
This makes it easier for downstream projects (forks) to replace the
version fetching system with their own. It is as simple as implementing
an interface and overriding the default implementation of
org.bukkit.UnsafeValues#getVersionFetcher()

It also makes it easier for us to organize things like the version
history feature.

Lastly I have updated the paper implementation to check against the site
API rather than against jenkins.
2019-05-27 04:13:41 -05:00
Spottedleaf
66554efabb Improve MT-Safety of UserCache (#2080)
We were missing a synchronize on a get if cached method, however
it appears that using a ConcurrentHashMap is a better solution
so readers can avoid locking if they just want a cached value.

Existing synchronization for writers remains untouched, the
ConcurrentHashMap is just so readers can safely read without
synchronization
2019-05-26 23:17:50 -07:00
Spottedleaf
78a4e64734 Move getTypeIfLoaded and friends to IBlockAccess (#2077) 2019-05-26 23:14:14 -07:00