Commit Graph

1239 Commits

Author SHA1 Message Date
Jordan
63f031b01a
Only synchronise tree generation at the very lowest level (#1788)
* Only synchronise tree generation at the very lowest level
 - Fixes #1681

* Perform the generate inside try-finally and actually use the resultant copied map to place blocks to the editsession

* Check result of generateTree and return null if failed
2022-06-13 09:05:18 +02:00
Alexander Brandes
aa94612b70
feat: Add support for 1.19 (#1783)
* feat: Add support for 1.19

* build: Update paperweight version

* fix: obfuscated names, invalid method signatures

* avoid NPE on config access

* build: Update paperweight

* implement no-op light engine to avoid stalled tasks that never complete

* Apply DelegateSemaphore fixes to 1.19 (#1782)

* Apply DelegateSemaphore fixes to 1.19

* Fixes

* Avoid using PalettedContainerRO#recreate as much as possible. Show an error or warning when we're forced to use it to help fix (#1784)

Co-authored-by: Pierre Maurice Schwang <mail@pschwang.eu>
Co-authored-by: SirYwell <hannesgreule@outlook.de>
Co-authored-by: Jordan <dordsor21@gmail.com>
2022-06-10 23:22:06 +02:00
Jordan
da3fc2e6ea
Fix DelegateSemaphore synchronisation issues on Spigot (#1781)
* Fix DelegateSemaphore synchronisation issues on Spigot
 - Also effectively nullify it on paper - the synchronisation on the object is enough

* Remove unneeded imports
2022-06-10 19:50:16 +02:00
Alexander Brandes
c5a50179f2
[ci skip] build: Switch to bom (#1778)
* build: Switch to bom

* chore: Use javax over checkerframework
2022-06-10 01:26:48 +02:00
Alexander Brandes
9b3608aada
chore: Update upstream
c515eb5 Cache properties to reduce startup memory (2103)
2022-06-10 01:02:03 +02:00
Jordan
198c6b7800
Some fixes and improvements to internal queuing (#1715)
* the set array given in NMSAdapter should have get data written to it
 - Fixes #1664
 - May fix #1700

* Having target size >= 2* parallel threads allows for adjacent chunks to be loaded with issues

* "empty" chunk section doesn't need to be localised to the chunk and may be static

* Switch to slightly more performant stream method for testing for non-empty sections

* Implement lock into ChunkHolder preventing any modification to occur whilst the edit is being applied to the world
 (when ChunkHolder is called)

* Add config note about target-size

* set ordinal equal to air if both set and get are `__reserved__`

* Add note to checkAndWaitOnCalledLock method of its use

* Don't print exception and throw

* Switch to a wrapped StampedLock allowing reentrant behaviour
 - StampedLock is not reentrent
 - Allow unlock from a different thread only if it provides the correct stamp
 - This stamp can only be retrieved by the thread owning the lock

* Avoid some "doubling-up" of using checkAndWaitOnCalledLock

* Unbloat `checkAndWaitOnCalledLock`

* Add since tags
2022-06-05 20:52:28 +02:00
BlockyTheDev
d1f3ac8f76
chore: Update PaperMC repository URL (#1756)
* Migrate PaperMC Repository Endpoints

* Migrate PaperMC JavaDocs endpoints
2022-05-21 12:08:10 +02:00
Jordan
d7543884a5
Check cached bukkit player is the same as the current player online (#1732)
* Check cached bukkit player is the same as the current player online
 - If plugins do silly things like teleport, deop (anything that requires a perm-recheck) (anything that ultimately requires a BukkitPlayer at some point) then the retention of metadata by the server (as it's stored based on a string value indescriminate of player a player relogging) means that a BukkitPlayer caching an old player object will be kept, cached and retrieved by FAWE. Adding a simple memory-based equality check when the player rejoins, and then "invaliding" (redoing) the cache if the players are not equal, fixes this.
 - Fixes #1730

* Address comments

* Add comment explaining reference equality check to code
2022-05-10 10:10:59 +02:00
Jordan
210ee9f2ef
Implement getNameUnsafe method to allow an unloaded world's name to be accessed (#1712)
* Implement getNameUnsafe method to allow an unloaded world's name to be accessed
 - Fixes #1671 and #504

* Add javadoc since tag

Co-authored-by: Alexander Brandes <mc.cache@web.de>

Co-authored-by: Alexander Brandes <mc.cache@web.de>
2022-05-05 21:39:45 +02:00
renovate[bot]
617b0ac95c
[ci skip] build: Update dependency io.papermc.paperweight.userdev:io.papermc.paperweight.userdev.gradle.plugin to v1.3.6 (#1720)
* build: Update dependency io.papermc.paperweight.userdev:io.papermc.paperweight.userdev.gradle.plugin to v1.3.6

* build: Update paperweight

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: NotMyFault <mc.cache@web.de>
2022-04-25 17:17:23 +02:00
Octavia Togami
f2df511263
Bump paperdev 1.17.1 version (fixes yarn dependency resolution) 2022-04-23 14:39:26 +01:00
Jordan
65349392a6
Set empty block count when using fastmode on 1.17 (#1710)
* Set empty block count when using fastmode on 1.17
Fixes #1666

* Update legacy adapters
2022-04-21 13:11:23 +02:00
Pierre Maurice Schwang
bb71a18c8c
fix: update adapters (FastAsyncWorldEdit-Adapters#67) (#1706) 2022-04-18 21:58:02 +02:00
Hannes Greule
8f1ca48bfc
lock is in PalettedContainer in 1.17 (#1697) 2022-04-11 13:59:37 +02:00
Pierre Maurice Schwang
2483eacff5
Fix memory leak by Citizen NPCs (#1693)
* fix: ignore uuid v2 for BukkitPermissionAttachmentManager

Fixes a memory leak that attaches and caches PermissionAttachments to NPCs. Citiziens uses version 2 UUIDs, which are not used for regular player uuids. Those v2 uuids are now excluded.

* fix: create Permission when required

* fix: use citizens documented way to check for NPCs
2022-04-06 16:22:53 +02:00
Kekschen
f477120661
Remove unused 'listeningImages' variable. (#1684) 2022-04-02 22:00:57 +02:00
Hannes Greule
a240b002de
simplify biome id logic (#1677)
Co-authored-by: Alex <mc.cache@web.de>
2022-04-01 19:25:48 +02:00
Pierre Maurice Schwang
2276d82d2c
//regen creates vanilla decorations without error (#1650)
* fix: Feature placement on regen should create chunk

* feat: update adapter jar

* fix: update adapter jar
2022-03-28 21:06:26 +02:00
Hannes Greule
c45b14a52d
Avoid Unsafe on paper (#1678) 2022-03-27 23:56:59 +02:00
Jordan
465c81d193
Remove hardcoding of heightmap compressed long size (#1668) 2022-03-18 21:28:25 +00:00
Alex
05f80f23b9
refactor!: Don't bundle 1.15.2 adapters anymore (#1656) 2022-03-17 09:41:50 +01:00
renovate[bot]
c672d7a0b3
build: Update dependency net.kyori:adventure-nbt to v4.9.3 (#1658)
* build: Update dependency net.kyori:adventure-nbt to v4.10.1

* build: Provide proper adventure version

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: NotMyFault <mc.cache@web.de>
2022-03-14 16:14:10 +01:00
renovate[bot]
8afde807b6
build: Drop ProtocolLib dependency (#1659)
* build: Update dependency com.comphenix.protocol:ProtocolLib to v4.8.0

* build: Drop ProtocolLib dependency

Co-authored-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: NotMyFault <mc.cache@web.de>
2022-03-14 14:32:27 +01:00
Jordan
1708584e8d
Don't call ticking_list on Spigot (#1655)
* ticking_list is paper only

* Update adapters
2022-03-14 11:08:10 +01:00
dordsor21
d8c0f8e3b1
Make sure thread-cached arrays are reset 2022-03-13 01:44:59 +00:00
NotMyFault
95512a4c0b
build: Release 2.1.0 2022-03-10 22:57:23 +01:00
NotMyFault
c3cdde9d2e
build: Update paperweight 2022-03-10 22:43:33 +01:00
Jordan
e9db749e2f
Add fluid ticking and refactor post-processing a bit (#1554)
* Make postProcessSet a default method and change to void

* Throwable#getMessage is nullable

* Move (re-)ticking to a post-processor per "platform"
 - Add fluid ticking

* chore: Ignore (for us) irrelevant rules

* chore: Fix correct toml syntax?

* Re-add removed method for API-compliance and refactor it to have a use

* Switch to javax annotations

* Switch to recalcBlockCounts for ticking blocks.

* No need to set air count anymore either

* We can still "not tick" in fast mode in 1.17.2

* update adapters

* Let paper create the chunk section if biomes are null

* Adjust notes to settings

* 1.17.2 didn't exist

* Add 1.18.2

* Don't attempt to cache plains biome ID

* Use correct annotation

Co-authored-by: NotMyFault <mc.cache@web.de>
2022-03-10 15:27:25 +01:00
Alex
5d18e15128
Replace JB occurrences with JSR 305 (for now) (#1651)
* refactor: Replace JB occurrences with JSR 305 (for now)

* chore: Update adapter jar
2022-03-10 14:24:44 +01:00
Jordan
f59353006a
Update to P2 extended heights (#1581) 2022-03-09 14:21:58 +01:00
Pierre Maurice Schwang
49bc675f51
Fix //regen -b on 1.18.2 (#1647)
* fix: adapt correct biome type

* fix: PaperweightPlatformAdapter#adapt should return BiomeType
2022-03-08 18:55:52 +01:00
NotMyFault
fb66ba6adf
build: Update paperweight
Closes #1649
2022-03-07 21:20:25 +01:00
Alex
345785a25e
feat: Support for 1.18.2 (#1641)
* feat: Preliminary work for 1.18.2

* Update SpigotNames to 1.18.2 (#1642)

* 1.18.2 / Biome-Holders, regeneration (#1645)

* 1.18.2 / Biome-Holders, regeneration

* fix: reuse old structure sets

* build: Update dev bundles

* fix: Don't log regen world generation

* fix: Run DataConverter with CBT

* fix: Override `#toNativeBinary`

* fix: Exception on regen

Co-Authored-By: Pierre Maurice Schwang <mail@pschwang.eu>

* refactor: Minor cleanup

Co-authored-by: Aurora <21148213+aurorasmiles@users.noreply.github.com>
Co-authored-by: Pierre Maurice Schwang <mail@pschwang.eu>
2022-03-07 15:20:05 +01:00
Pierre Maurice Schwang
668227ee6c
Update Upstream (#1643)
44863cf Don't access PluginClassLoader directly (#2045)
2022-03-05 18:19:58 +01:00
renovate[bot]
4ffea67514
build: Update dependency net.kyori:adventure-nbt to v4.10.0 (#1638)
Co-authored-by: Renovate Bot <bot@renovateapp.com>
2022-03-04 00:22:01 +01:00
NotMyFault
dafcd16a14
Update Upstream
eac5b51 Play dirty because bukkit classloading is bad. (2043)
2022-03-02 20:48:49 +01:00
NotMyFault
7db06061f0
Update upstream
e2ab12c Change the class source validator to use classloaders for detection. (2039)
2022-02-28 15:42:03 +01:00
Alex
340f8dded3
tests: Remove stub server (#1629) 2022-02-28 13:53:08 +01:00
Jordan
fc2662e51e
Fix //snapshot in 1.18 and re-implement biome/entity restoration (#1620)
* Re-add "//snap" and "//snapshot"

* Place code in correct method

* Use CompoundBinaryTags in AnvilChunk18 and implement biome/entity restoration

* Address comments

* Fix biome reading

* Fix retrieval of entities from zipped snapshot world

Co-authored-by: Alex <mc.cache@web.de>
2022-02-24 10:33:25 +01:00
Jordan
49d5183685
Load legacy config file before firing PlatformsRegisteredEvent (#1623)
Fixes #1622

Co-authored-by: Alex <mc.cache@web.de>
2022-02-24 10:33:06 +01:00
Jordan
28a0239437
Fix clipboards to allow proper heights by allowing extended CuboidRegion heights (#1624)
* Fix clipboards to allow proper heights by allowing extended CuboidRegion heights
Fixes #1534

* Add @since

* Fix javadoc comment

Co-authored-by: Alex <mc.cache@web.de>
2022-02-24 10:32:45 +01:00
NotMyFault
0a04b0b4cd
tests: Fix StubServer 2022-02-23 11:25:10 +01:00
dordsor21
de4f73997e
Implement missing methods in tests 2022-02-12 13:38:04 +00:00
NotMyFault
15b9b8332c
fix: Make it build again 2022-02-04 11:24:11 +01:00
NotMyFault
f0136460ba
Update upstream
ab31481 Use Chunk#getNoiseBiome instead of biome container (2025)
2022-01-30 21:18:40 +01:00
Jordan
178604bbb7
Only call org.bukkit.World height methods if they're present (1.17+) (#1551)
* Only call org.bukkit.World height methods if they're present (1.17+)

* Switch to WorldEdit get height methods in GPFeature
2022-01-29 13:12:16 +01:00
Alex
4610688fcb
fix: Debugpaste on 1.17 and lower due GSON incompatibility (#1583) 2022-01-28 22:15:24 +01:00
NotMyFault
e309cf8f3c
build: Update PlotSquared 2022-01-27 15:30:18 +01:00
ahdg
806ca62485
fix: GriefDefender filter (#1546)
* Fix: GriefDefender filter

* Update libs.versions.toml

* Now it only work with 2.1.0.
2022-01-23 18:29:01 +01:00
NotMyFault
4d2a34fd21
refactor: Update upstream
0ad3ab1 Remove extra label from bukkit command usage string.
2022-01-17 13:20:16 +01:00