Commit Graph

2758 Commits

Author SHA1 Message Date
Jordan
d2ca3ed6fe
fix: better image reading errors (#2632)
- closes #2593
2024-03-17 20:25:09 +01:00
Hannes Greule
dc61efe11c
Implement linear patterns using RandomPattern + SimpleRandom (#2630) 2024-03-17 13:17:00 +01:00
Jordan
2d0a3e6081
fix: do not error when attempting to parse "|" as a pattern (#2625) 2024-03-17 13:15:28 +01:00
Alexander Brandes
0db8154546
Drop support for 1.17.1 (#2627)
Signed-off-by: Alexander Brandes <mc.cache@web.de>
2024-03-17 08:37:03 +01:00
c259540f86
Merge https://github.com/IntellectualSites/FastAsyncWorldEdit 2024-03-16 14:34:54 -05:00
Jordan
f60539f41d
chore: deprecate transform extent for removal (#2623) 2024-03-16 20:12:02 +01:00
Zeranny
37d4e9bb6f
Allow factory suggestions to have parser context (#2613)
* Add context to rich parser

* Description for getSuggestions with context

* Tidy up imports

* Swap which getSuggestions is primary

* Revert "Swap which getSuggestions is primary"

This reverts commit 5c257f60ea9ec002e407b2a4a8a7c6ede6bee5e7.

* Revert default swap and add deprecation note
2024-03-15 18:41:53 +01:00
Hannes Greule
10dc64eeaf
Make sure to process all chunks in PQE even if PARALLEL_THREADS = 1 (#2611)
make sure to process all chunks in PQE even if PARALLEL_THREADS = 1
2024-03-15 18:41:16 +01:00
Jordan
8363badf80
fix: correctly (de)serialise ItemType (#2620)
- InternalId changes depending on ~~magic~~ so we should not store this value
 - fixes #2589
2024-03-15 18:39:35 +01:00
MineFact
df9527b0b7
fix: set and clone Expression Environment after Expression cloning (#2617)
- Fixes #2616
2024-03-15 11:27:25 +01:00
Jordan
facd31ce31
fix: do not forcefully direct to x,y,z methods in AbstractDelegateExtent (#2614)
- we probably shouldn't be doing this
2024-03-14 17:56:08 +01:00
Hannes Greule
641297497a
Maintain insertion order for RandomPattern sub-patterns (#2603) 2024-03-04 07:32:33 +01:00
Hannes Greule
164271374b
Decrease lock contention in SingleThreadQueueExtent (#2594)
* thread local extent

* avoid race conditions due to ChunkHolder pooling

* clean up JFR events, javadoc

* remove ThreadLocalPassthroughExtent
2024-03-04 07:31:56 +01:00
Hannes Greule
f5dfe3ae16
fix rollback database query (#2591) 2024-03-02 13:43:38 +01:00
Hannes Greule
f94b96d5b2
Use actual radius for inverse and adjust inside region check (#2582) 2024-02-18 09:55:06 +01:00
Alexander Brandes
974078c2cd
Release 2.9.2
Signed-off-by: Alexander Brandes <mc.cache@web.de>
2024-02-06 21:45:25 +01:00
b3346fe67b Merge https://github.com/IntellectualSites/fastasyncworldedit 2024-02-04 13:19:30 -06:00
Jordan
a502287906
refactor: minor adjustments to error handling (ignoring) and blocking queue (#2566) 2024-02-02 18:07:13 +01:00
Jordan
033b8e35d2
fix: always set createCopy status on chunk get as chunks are cached (#2567)
- fixes #2539
2024-02-02 18:06:57 +01:00
Zeranny
763a497cdc
Fix out of bounds error for erode and pull brushes (#2554)
- Fixes #2380
2024-01-28 13:10:48 +01:00
811ed72f64
Merge https://github.com/IntellectualSites/FastAsyncWorldEdit 2024-01-23 19:22:20 -06:00
Jordan
e815071134
fix: fix plot swap (#2360)
- deprecate and note for internal use only Clipboard#create as it's funky
 - fixes #2076
2024-01-21 12:42:24 +01:00
Alexander Brandes
7b4b384df6
Update upstream 2024-01-06 10:53:53 +01:00
637dc2df15
Merge https://github.com/IntellectualSites/FastAsyncWorldEdit 2024-01-02 15:53:42 -06:00
Alexander Brandes
a4a11265ec
Back to snapshot for development 2023-12-22 18:37:07 +01:00
Jordan
28ab5662fd
fix: correct the delegated methods in AbstractDelegateExtent (#2365)
- Not all methods should be overridden: we need to keep delegating-to-setblock methods in parent classes
2023-12-21 13:11:44 +00:00
Jordan
2f92626433
feat: add switch to allow removal of entities on paste (#2525)
- closes #2395
2023-12-18 15:33:02 +00:00
Jordan
6caf4640ea
feat: add config option for if the DOC should lock the file channel (#2526)
- related to #2222
- effectively just a workaround as most people would not need to worry about locking the clipboard file
2023-12-18 15:04:34 +00:00
Jordan
f44b1b48c7
chore: add a more informative error when parsing block properties (#2524) 2023-12-18 14:58:53 +00:00
Jordan
d4b68b384b
fix: add chunk loc to tile entity location when trimming (#2500)
- fixes #2499
2023-12-12 08:00:40 +01:00
6c4d192aa9 Merge https://github.com/IntellectualSites/FastAsyncWorldEdit 2023-12-10 20:35:35 -06:00
Alexander Brandes
605743321f
Add support for 1.20.3 and 1.20.4 (#2512)
* 1.20.3

* 1.20.3 ItemTypes

* 1.20.3

* 1.20.3

* 1.20.4

* Fixup refractions

* Move adapters to _4
2023-12-08 07:30:08 +01:00
RedstoneFuture
ea6138ce1f
Unify the limit permission (#2420) 2023-12-07 18:26:21 +01:00
dordsor21
d1798b7408
chore: remove bad range annotations 2023-11-26 12:28:47 +00:00
Jordan
6722d73c68
fix: fixed history rollback (#2367)
- Also go ahead and clean up other parts of this, with more appropriate operators used
 - Fixes #2366
2023-11-25 20:32:29 +00:00
dordsor21
a64d24c6cf
feat: more informative BoundedHeightMask error message 2023-11-18 15:02:02 +00:00
Hannes Greule
1a7f555add
Use FastSchematicReader by default (#2478) 2023-11-18 14:11:17 +00:00
6485772826
Merge https://github.com/IntellectualSites/FastAsyncWorldEdit 2023-11-13 19:15:11 -06:00
Hannes Greule
46dd71e807
Only unlock if previously locked (#2489) 2023-11-08 20:39:25 +00:00
Alexander Brandes
38fc4cf541
Release 2.8.2 2023-11-03 15:07:12 +01:00
Hannes Greule
462b078c2d
Support -n (select only) in //place (#2475) 2023-11-02 07:52:30 +01:00
Hannes Greule
b8434f891e
Reduce duplicated singleton objects (#2473) 2023-10-29 10:55:50 +01:00
Jordan
36a892eb37
fix: chunks should only be initialised in the getOrCreateChunk method (#2462) 2023-10-26 21:14:39 +02:00
Hannes Greule
256ef74452
Cleanup rawtypes warnings in relighting code (#2472)
remove unneeded generic type
2023-10-26 21:14:27 +02:00
Jordan
50cc9bc528
fix: clear player's history away from main thread if lock locked (#2457)
* fix: clear player's history away from main thread if lock locked
 - addresses crashing of #2448

* Correct lock usage

* remove possibility for race condition
2023-10-23 16:40:38 +02:00
6a5fe3191b Merge https://github.com/IntellectualSites/FastAsyncWorldEdit 2023-10-22 21:20:31 -05:00
Hannes Greule
9fff77c088
Avoid premature trimming in RegionIntersection (#2471)
avoid premature trimming
2023-10-22 16:29:38 +02:00
Jordan
f5803a09f6
fix: vastly superier handling of queue chunks (#2461)
- remove ChunkHolder locking concept as this is no longer needed
 - previously we obtained the copy from chunk GET on finalize, meaning the copy could be replaced by a "newer" one (bad)
 - work around this issue by introducing concept of "unique" keys to map chunk GET copies to
 - correctly handle resetting of various chunk-related classes to actually allow pooling to work
 - remove chunks as they are submitted when flushing a SingleThreadQueueExtenting
2023-10-22 10:04:19 +00:00
Hannes Greule
8c5bb96fdd
Streamline fawe thread names (#2467)
streamline fawe thread names
2023-10-21 17:48:35 +02:00
Zeranny
50ecc5908d
Fix "cleared" ellipsoid/cylinder regions still passing isDefined check (#2465) 2023-10-21 16:27:39 +01:00
dordsor21
470c75d843
minor cleanup 2023-10-14 20:27:46 +01:00
opl-
aae9249014
Fix NullPointerException due to nullable source extent in ExtentEntityCopy (#2447)
Fix NullPointerException due to nullable source extent

Co-authored-by: opl <4833621+opl@users.noreply.github.com>
2023-10-07 20:16:21 +02:00
Jordan
90d52f39d9
fix: add null check for block targetted with inspect brush (#2443) 2023-10-05 14:54:52 +01:00
Jordan
971559ec23
feat: fake the copied biomes (#2359) 2023-10-04 09:39:14 +01:00
Alexander Brandes
45b60f4929
Add support for 1.20.2 (#2431)
* Update to 1.20.2

* Update paperweight

---------

Co-authored-by: Pierre Maurice Schwang <mail@pschwang.eu>
2023-09-29 20:00:58 +00:00
1a6b10c10f Merge https://github.com/IntellectualSites/FastAsyncWorldEdit 2023-09-27 15:25:07 -05:00
Alexander Brandes
319bc0a551
Fix left click on air being ignored and right click on block being handled twice 2023-09-16 23:44:14 +02:00
Joo200
81ba7d1acd
Add worldedit runtime environment to increase yaml alias limit (#2395)
This can be set by -Dworldedit.yaml.aliasLimit=XXX in the startup parameter

(cherry picked from commit 94565356fd39bf360b35ee77ea5b3614d48be772)
2023-09-16 23:35:05 +02:00
RedstoneFuture
0744504fad
Adding note about "worldedit.anyblock" permission (#2419)
Adding note
2023-09-15 22:41:28 +02:00
Hannes Greule
f36c5d42c7
Avoid Unsafe usage where possible (#2403) 2023-09-09 16:07:37 +02:00
Alexander Brandes
e81980651e
Cleanup dependencies 2023-08-09 20:52:18 +02:00
a5b969e1c5
Merge branch 'IntellectualSites:main' into main 2023-07-29 14:15:00 -05:00
Jordan
d42854845a
fix: disallowed regions can be length 0 (#2368) 2023-07-27 11:02:41 +02:00
Jordan
8b39e41a1a
fix: don't warn on release build (#2369) 2023-07-27 10:59:11 +02:00
5c2e147b53
Fix merge conflict 2023-07-22 13:30:03 -05:00
9d489791ee
Merge https://github.com/IntellectualSites/FastAsyncWorldEdit 2023-07-22 13:27:54 -05:00
dordsor21
48be6ac94b
fix: processorExtent can be null when setting masks too
- fixes #2379
2023-07-22 17:44:05 +01:00
dordsor21
2f6de996e3
fix: processorExtent can be null in editsession
- fixes #2375
2023-07-22 13:14:01 +01:00
Alexander Brandes
37bfe426bc
Release 2.7.0 2023-07-22 12:27:54 +02:00
Alexander Brandes
c91b477e29
Update PlotSquared integration to v7 (#2075)
Co-authored-by: dordsor21 <dordsor21@gmail.com>
2023-07-22 12:01:33 +02:00
Jordan
9543adc776
Implement async notify queue that submits to a KeyQueuedExecutorService (#2334) 2023-07-20 17:58:01 +02:00
Jordan
18df87a4e8
feat: implement a new "type swap" pattern (#2346) 2023-07-20 17:57:48 +02:00
Jordan
0a8a479214
fix: do not clash ChunkHolder recycling with processors that extend outside the chunk (#2353) 2023-07-20 17:57:29 +02:00
Jordan
fe1859e9d2
fix: do not retain clipboards that completed exceptionally (#2358) 2023-07-20 17:56:30 +02:00
Jordan
f65c4743bd
fix: make IdMask thread-safe (#2361) 2023-07-20 17:56:11 +02:00
Jordan
cdd546ee5e
fix: correct NBT for spawners (#2362) 2023-07-20 17:55:59 +02:00
Paul
5167073326
fix: regions not trimming Y correctly when restricted (#2363) 2023-07-17 21:47:47 +01:00
Chris Lang
e0507e6440
Added cone generation command (#2251)
* Added cone generation command

* Fix formatting problems

---------

Co-authored-by: Madeline Miller <mnmiller1@me.com>
2023-07-15 21:18:09 +01:00
Jordan
e6b1308590
feat: synchronise disk clipboard loading and deletion to clipboardLock (#2342)
- another possible help towards the OverlappingFileLockException
2023-07-15 16:40:52 +01:00
Jordan
f4da4b0287
fix: fix adding/getting masks to/from MaskExtent when it is a processor (#2351)
- fixes #2350
2023-07-15 16:40:29 +01:00
dordsor21
8da530ee80
gracefully handle error in EntityInBlockRemovingProcessor
-  ensures edit continues on chunk correctly
2023-07-15 12:27:33 +01:00
Alexander Brandes
1745c50878
Improve error behaviour of //generate 2023-07-15 09:26:00 +02:00
dordsor21
a680c7ce97
fix: fix #2352 2023-07-13 17:08:18 +01:00
dordsor21
0a19f643b6
fix #2349 2023-07-11 16:39:53 +01:00
Jordan
c0e20a6fe5
feat: provide some information upon OverlappingFileLockException (#2341) 2023-07-10 23:16:05 +02:00
Jordan
1f29ab3b79
fix: fix command brush (#2347) 2023-07-10 22:04:33 +01:00
Jordan
685248d8de
chore: deprecate some methods that ought to be removed (#2340) 2023-07-09 15:16:30 +01:00
Hannes Greule
68eb4e214a
refactor: use HttpClient for update check (#2331) 2023-07-08 18:41:20 +01:00
Jordan
6fbdef5252
feat: allow bracketless '%' pattern definition (#2322) 2023-07-07 18:36:02 +02:00
Jordan
d7cc65d2f2
refactor: some changes that may help #2289 (#2307) 2023-07-03 16:37:42 +01:00
1af72ba98f
Merge branch 'IntellectualSites:main' into main 2023-07-02 23:37:39 -05:00
dordsor21
83a4987252
chore: queue progress messages are not implemented 2023-06-30 19:36:35 +01:00
Jordan
24325d91ba
feat: improve (region) fawe mask handling (#2312)
* feat: improve fawe mask handling
 - Actually cache masks, even if the player has left the region
 - Fix P2 isValid test for single plots
 - Fixes #1946

* Fix incorrect delegated method
2023-06-28 09:24:20 +01:00
Jordan
0554b31f11
feat: implement removal of entities if they would be in a block after the edit (#2311)
- Includes some refactoring to EditSessionBuilder to prevent doubling-up of processors that are also extents
 - Better ordering of the EditSessionBuilder process/extent code to match where extents actually end up in the stack
 - Fixes #1941
2023-06-27 18:37:09 +02:00
Jordan
476ba4ab41
refactor: efficiency improvements to some editsession methods (#2304) 2023-06-27 18:36:54 +02:00
Alexander Brandes
97ee71bbd0
Update settings name in queue.target_size warning 2023-06-27 13:56:30 +02:00
Jordan
9f0a0dbd35
fix: ensure mask is initialised upon visiting a point in BreadthFirstSearch (#2314)
fix: ensure mask is initialised upon visiting a point in BreadFirstSearch
2023-06-22 21:32:54 +02:00
Jordan
d961aa91bc
fix: fix regex block masking (#2242) 2023-06-22 11:24:03 +01:00
Jordan
88533118bc
fix: uncache the chunk SET at a better time in ChunkHolder to prevent "lost" changes (#2300)
- blocks could still be set to the ChunkHolder during a call
 - create a new chunk SET in that case
 - make cached get/set volatile to improve thread safety
2023-06-19 22:46:10 +02:00
Jordan
01be53ed65
fix: add missing BlockType constructor (#2306)
- Deprecate public BlockType constructors
 - People really should not be initialising their own block types. This can and most likely will cause issues.
 - Fixes #2290
2023-06-19 14:36:47 +01:00
Jordan
a8c8a0fbd6
fix: always return the changeset from EditSessionBuilder (#2302)
- Ensure history will actually always be closed if combine-stages is false
- Fixes #2148
2023-06-19 14:34:54 +01:00
Jordan
f0aef98870
fix: don't "double-up" a setblocks if a region is being set (#2299)
- Fixes #2294
2023-06-18 18:08:31 +02:00
dordsor21
135c77cfb5
chore: minor changes
- null check get tile in ThreadUnsafeCharBlocks
 - 0 to reserved ID
2023-06-18 15:03:51 +01:00
Jordan
51e238c352
feat: add new tree types to tree tool and brush (#2286)
* feat: add new tree types
 - implements #2197

* Remove nonsensical test case

---------

Co-authored-by: Alexander Brandes <mc.cache@web.de>
2023-06-15 10:18:01 +02:00
c609aa97ce
Merge branch 'IntellectualSites:main' into main 2023-06-14 15:46:43 -05:00
Jordan
dae6c69e54
feat: send one of an error message during edits if otherwise squashed by LimitExtent (#2246)
* feat: send one of an error message during edits if otherwise squashed by LimitExtent

* no region is not ingorable
2023-06-12 12:14:24 +02:00
Jordan
e449910af5
feat: prevent edits outside +/- 30,000,000 blocks (#2285)
* feat: prevent edits outside +/- 30,000,000 blocks

* Remove import
2023-06-12 11:27:07 +02:00
ca501e08b4
Merge branch 'IntellectualSites:main' into main 2023-06-09 19:44:27 -05:00
Alexander Brandes
689c7f62b8
Fixed setting sign text on 1.20 2023-06-09 15:27:02 +02:00
Alexander Brandes
bb14d93a8d
Add Console/CommandBlock support to Fabric/Forge/Sponge (2317) 2023-06-09 13:58:45 +02:00
Alexander Brandes
e7876c4eba
Update to 1.20 (#2276)
* Towards 1.20

* Init bukkit

* Update YAML to 2.0

* Fixes for 1.20 adapters

* Update obfuscated field names

* Remove getHandle workaround

* entityManager is obfuscated

* Update paperweight

* [ci-skip] Add 1.20 to modrinth task

---------

Co-authored-by: Phillipp Glanz <p.glanz@madfix.me>
Co-authored-by: SirYwell <hannesgreule@outlook.de>
2023-06-09 12:53:42 +02:00
80ffba7a63 Merge https://github.com/IntellectualSites/FastAsyncWorldEdit 2023-06-07 13:15:02 -05:00
Alexander Brandes
3b7d126718
Release 2.6.2 2023-06-07 11:11:54 +02:00
Jordan
1356cd5caa
feat: implement a player-specific queue for clipboard IO tasks (#2267)
* feat: implement a player-specific queue for clipboard IO tasks
 - Addresses #2222 (hopefully fixes)

* Address comments

* Add since

---------

Co-authored-by: Alexander Brandes <mc.cache@web.de>
2023-06-07 00:35:37 +02:00
Jordan
84872cf9a2
chore: improve queue documentation and submit history to better queue (#2266) 2023-06-06 19:22:25 +02:00
Jordan
b7719d17bd
fix: correctly processSet with blacklist when required (#2270)
* fix: correctly processSet with blacklist when required

* Fix incorrect region
2023-06-06 19:21:18 +02:00
Jordan
5504811f11
chore: minor improvements to processing-related code (#2271) 2023-06-06 19:21:02 +02:00
dordsor21
5da5b216f3
fix #2268
-.-
2023-06-05 22:26:41 +01:00
dordsor21
e5d27c27bb
chore: replace some hardcoded ordinals 2023-06-05 00:17:13 +01:00
dordsor21
46e8a37cf0
fix: improve test for polygonal region containment of cuboid
- Possibly fixes #2265
2023-06-04 23:57:51 +01:00
Jordan
0e215e98d5
fix: minor changes to fix loading blocks outside stored range in ThreadUnsafeCharBlocks (#2260)
- Fixes #2258
2023-06-04 17:22:21 +02:00
Alexander Brandes
c9a4a9c8b4
Update gradle to 8 (#2262)
* Update gradle to 8

* Update codeql.yml
2023-06-04 12:34:03 +02:00
dordsor21
048dcaf327
fix: do not always set random rotate to true
- Fixes #2259
 - How'd that even get through
2023-06-03 16:34:23 +01:00
Hannes Greule
4fa927f996
Extract common code when resizing arrays (#2257) 2023-06-02 19:39:00 +02:00
Hannes Greule
7646a067eb
Avoid many threads blocking on AbstractChangeSet#processSet (#2226) 2023-06-02 10:40:34 +01:00
Jordan
228e84e555
fix: Improve edit processing (#2247) 2023-06-01 15:11:16 +01:00
Jordan
03487718e7
feat: configurable image hosts (#2243) 2023-05-31 16:48:45 +01:00
Jordan
a553961c05
refactor: switch to EnumSet for heightmaps to improve performance (#2248) 2023-05-27 14:25:07 +02:00
Jordan
3041ff3e50
feat: add -r (random rotate) flag to schem load and clipboard brush (#2244)
- Implements #1873
2023-05-25 19:06:20 +02:00
dordsor21
362f6cc6e1
fix #2009 2023-05-22 19:43:21 +01:00
Jordan
5dca925bc3
feat: make more commands unqueued (#2235)
* feat: make more commands unqueued
 - Effectively fixes the very specific "issue" in #2223 I guess
 - Use this opportunity to clean up the command classes a bit

* Address comments
2023-05-22 20:33:59 +02:00
Jordan
435161d566
fix: only send invalid region messages with debug true (#2238)
- Addresses #2188
2023-05-22 20:33:15 +02:00
Jordan
7c01c1e95e
feat: allow captions in SuggestInputParseException (#2239)
- Deprecate for removal methods using string message
 - Fixes #2026
2023-05-22 20:32:56 +02:00
Jordan
74aff920a8
fix: fix universal disallowed blocks logic in limit and EditSession compilation (#2237)
- Fixes #2184
2023-05-22 20:32:36 +02:00
Alexander Brandes
2bdc925b0f
Add regression tests to the round Expression function 2023-05-21 09:51:59 +02:00
Alexander Brandes
4c0b535e6e
Ensure non-Double types are boxed in expression function calls. 2023-05-21 09:50:10 +02:00
Alexander Brandes
5e3222c55d
Ensure blockmap uniqueness across TE values 2023-05-20 21:00:35 +02:00
Alexander Brandes
7f43e448d5
fix(core): Properly reinit convex CUI selection on primary click 2023-05-20 20:58:47 +02:00
Alexander Brandes
85214c944f
Keep extending cuboid selector after //paste -s/n 2023-05-20 20:54:52 +02:00
Alexander Brandes
264185a323
Add method to check initialize state in PlatformManager, deny access to registries when uninitialized 2023-05-20 20:52:03 +02:00
Jordan
85f5006a0b
fix: correctly handle creation of extents in EditSessionBuilder (#2232)
- Add regionExtent process to the queue (fixes #2227)
 - Correctly wrap extents in each other
2023-05-20 20:33:18 +02:00
Jordan
1b0fb9ed48
fix: more intuitive limit permissions (#2233)
- immediately return limit if unlimited (limit combination take the "higher" value)
 - add fawe.limit.unlimited permission and it's an intuitive permission to give
2023-05-20 20:32:38 +02:00
Jordan
3a13c4aaa7
chore: remove firework-chunk-loading prevention and default tick limiter to false (#2234)
- It's very resource-intensive and probably doesn't work anyway
 - Tick limiter should not be enabled by default, it confuses a lot of people with the console logs
2023-05-20 16:25:24 +02:00
Jordan
e9b781d127
fix: correctly in initialise unlimited limit (#2231) 2023-05-20 16:22:02 +02:00
Jordan
2a08ad28a4
fix: correct issues with processor scopes (#2230) 2023-05-20 16:21:11 +02:00
Marco Neuhaus
52723439dd
Fix reading of tile entities with "id" instead of "Id" tag (#2211) 2023-05-20 09:57:13 +00:00
Hannes Greule
a14035d430
Revert "Actually delegate in AbstractDelegateExtent" (#2229) 2023-05-16 10:32:03 +02:00
Hannes Greule
71bac009db
Properly scale the random in SimpleRandomCollection (#2220) 2023-05-12 23:13:35 +02:00
Phillipp Glanz
c57fee5b86
Fixes command context for bukkit console command sender (#2193) 2023-05-12 12:12:08 +01:00
dordsor21
dd6197922c
fix: remove invalid file length check
- NBT is stored at the end of the clipboard file
 - Fixes #2209
2023-05-10 17:27:44 +01:00