Feature/1.17 (#1120)

* start v6

* Update classes to v6 method signatures

* change rootVersion to signify p2v6 compat

* Use 16 as toolchain version but target 11 for build output

* add minimessage as api

* Require v6 and don't attempt to "setup" hook from FAWE

* Address comments

* *address /all/ comments

* FAWE classes should only act as a delegate

* Uppercase logger

* Settings for v6-hook have moved to P2-v6, remove unneeded if statements

* Rename classes to Delegate

* add whenDone task to setCuboids

* Remove bad spaces

* Fix plot swap

* Initial work on 1.17 support

* Remove data versions from the Bukkit adapters (#1507)

* Remove data versions from the Bukkit adapters

* Don't allow saving schematics without an adapter in place on Bukkit.

* Removed confusing line

(cherry picked from commit 2056218b4a8644836b1d127105dfa289e9cdbc1c)

* More progress

* Fix chunk sending

* Repackage from com.boydti to com.fastasyncworldedit.<module> (#1119)

* Preliminary work on repackaging

* Rename build artifacts matching our pattern

* Finish up repackaging

* Fix a few field accesses and old imports

* Dirty fix for chunks container ChunkSections outside of 0-15

* Correctly read from NibbleArrays for lighting

* Fix getSections and BlockMaterial for 1.17

* Fix writing blocks to the world.
 - The issue isn't the presence of a "-1" chunk, it's the constructor for ChunkSection requiring the layer (0 to 15) rather than the y chord

* Fix more field accesses

* More work towards 1.17

* Update Upstream

a57f66f Fix watchdog, add negative y support. (1782)

* Add azalea tree to `/tool tree`

* Don't define toolchain twice

* Repackage GriefDefender

* Relocate under new namespace

* Bye bye ecma left overs

* Add 1.17 to issue templates and instructions

* Move to adventure-nbt (#918)

* Initial work for adventure-nbt

* Some more FAWE specific stuff

* Fix erroneous deprecation check

* Workflow change

* Continued merging all adventure NBT related changes

* Continued merging all adventure NBT related changes

* Made a constructor public again

This needs to be public for BlockTransformExtent.java

* Finished converting all NBT data to adventure.

* Make this compile

* Fix conflicts

Co-authored-by: Matt <4009945+MattBDev@users.noreply.github.com>

* Update adapters to 1.17

* Change build prefix to 1.17

* Move more nms classes to adapters

* Move left over nms classes

* Move Spigot 1.17 class

* Remove unneeded adapter loader code
The loader will find the appropriate class now itself

* Update adapters

* Update adapters

* Lazy fix tests

* Update adapters

* Update Upstream

43da91a Remove method reflection for getMinHeight in BukkitWorld. (1796)

* Relocate adventure-nbt under proper namespace

* Add LazyCompoundTag as a non-version-specific class to be used by adapters

* Better integration between old NBT and Adventure NBT - begin fixing the issues seen recently

* Correctly NBT conversion method

* LazyCompoundTags should actually be overriding and correctly returning a CompoundBinaryTag.

* Update worldedit-adapters
Fixes #1141

* Remove unnecessary massive lag machine

* Refactor apply to applyBlock in subclasses

* applyBlock should be overriden by all subclasses.
Default apply to applyBlock

* Closes #1130 Closes #1132

* Squashed commit of the following:

commit a9bfa1a07c77083c844a0c3ba62f4bd94bed107c
Author: NotMyFault <mc.cache@web.de>
Date:   Sun Jun 27 21:53:21 2021 +0200

    [ci skip] Update gradle wrapper validation

commit aa7471f95317d28a16f62e4b200de8d0fea2fa95
Author: Matthew Miller <mnmiller1@me.com>
Date:   Sat Oct 10 15:49:13 2020 +1000

    Add ^x,y,z relative offset support to the offset parser (#1545)

    * Add ^x,y,z relative offset support to the offset parser

    * Wrap in a try-catch

    (cherry picked from commit 28bdf7ff9254bbc85bb4f5f792b303943a3930a8)

* Add `fawe.error.schematic.not.found` translation key

* Update Upstream

728a152 Skip notify if chunk section doesn't exist (1794)

* Fixed #1157

* Add a null check to prevent NPE in nbt code

* Update adapters

* Update Upstream

fbb047a Optimize legacy schematic loading (1808)

* Hurr durr I don't want to update Java

* Update Upstream

0790e6e Fix CLI Mess (1811)

* Fixes #1160

* Expose minimessage transitively thru PlotSquared

Touches #32

* [ci skip] Remove unneeded maven repository

* Steal tab completion from PlotSquared for P2 related commands

* Don't error on startup when building locally

Co-Authored-By: goldfishapp <8278196+goldfishapp@users.noreply.github.com>

* [ci skip] Update gh actions to Java 16

* Update textures to grab 1.17 jar

Co-authored-by: NotMyFault <mc.cache@web.de>
Co-authored-by: SirYwell <hannesgreule@outlook.de>
Co-authored-by: Matthew Miller <mnmiller1@me.com>
Co-authored-by: Matt <4009945+MattBDev@users.noreply.github.com>
Co-authored-by: goldfishapp <8278196+goldfishapp@users.noreply.github.com>
This commit is contained in:
dordsor21
2021-07-01 21:16:25 +01:00
committed by GitHub
parent b0c0689887
commit aa3ae63682
798 changed files with 5101 additions and 16727 deletions

View File

@ -19,7 +19,7 @@
package com.sk89q.worldedit.extension.factory;
import com.boydti.fawe.config.Caption;
import com.fastasyncworldedit.core.configuration.Caption;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.factory.parser.mask.AdjacentMaskParser;
import com.sk89q.worldedit.extension.factory.parser.mask.AirMaskParser;

View File

@ -19,11 +19,11 @@
package com.sk89q.worldedit.extension.factory.parser;
import com.boydti.fawe.config.Caption;
import com.boydti.fawe.jnbt.JSON2NBT;
import com.boydti.fawe.jnbt.NBTException;
import com.boydti.fawe.util.MathMan;
import com.boydti.fawe.util.StringMan;
import com.fastasyncworldedit.core.configuration.Caption;
import com.fastasyncworldedit.core.jnbt.JSON2NBT;
import com.fastasyncworldedit.core.jnbt.NBTException;
import com.fastasyncworldedit.core.util.MathMan;
import com.fastasyncworldedit.core.util.StringMan;
import com.google.common.collect.Maps;
import com.sk89q.jnbt.CompoundTag;
import com.sk89q.worldedit.IncompleteRegionException;

View File

@ -19,22 +19,28 @@
package com.sk89q.worldedit.extension.factory.parser;
import com.boydti.fawe.config.Caption;
import com.fastasyncworldedit.core.configuration.Caption;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.blocks.BaseItem;
import com.sk89q.worldedit.blocks.BaseItemStack;
import com.sk89q.worldedit.command.util.SuggestionHelper;
import com.sk89q.worldedit.entity.Player;
import com.sk89q.worldedit.extension.input.InputParseException;
import com.sk89q.worldedit.extension.input.NoMatchException;
import com.sk89q.worldedit.extension.input.ParserContext;
import com.sk89q.worldedit.extension.platform.Actor;
import com.sk89q.worldedit.internal.registry.InputParser;
import com.sk89q.worldedit.util.HandSide;
import com.sk89q.worldedit.util.concurrency.LazyReference;
import com.sk89q.worldedit.util.formatting.text.TextComponent;
import com.sk89q.worldedit.util.formatting.text.TranslatableComponent;
import com.sk89q.worldedit.util.nbt.CompoundBinaryTag;
import com.sk89q.worldedit.util.nbt.TagStringIO;
import com.sk89q.worldedit.world.item.ItemType;
import com.sk89q.worldedit.world.item.ItemTypes;
import com.sk89q.worldedit.world.registry.LegacyMapper;
import java.io.IOException;
import java.util.Locale;
import java.util.stream.Stream;
@ -51,44 +57,87 @@ public class DefaultItemParser extends InputParser<BaseItem> {
@Override
public BaseItem parseFromInput(String input, ParserContext context) throws InputParseException {
ItemType itemType;
CompoundBinaryTag itemNbtData = null;
BaseItem item = null;
// Legacy matcher
if (context.isTryingLegacy()) {
try {
String[] split = input.split(":");
ItemType type;
if (split.length == 0) {
throw new InputParseException(Caption.of("worldedit.error.parser.invalid-colon"));
} else if (split.length == 1) {
type = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(split[0]));
itemType = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(split[0]));
} else {
type = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(split[0]), Integer.parseInt(split[1]));
itemType = LegacyMapper.getInstance().getItemFromLegacy(Integer.parseInt(split[0]), Integer.parseInt(split[1]));
}
if (type != null) {
item = new BaseItem(type);
if (itemType != null) {
item = new BaseItem(itemType);
}
} catch (NumberFormatException ignored) {
}
}
if ("hand".equalsIgnoreCase(input)) {
return getItemInHand(context.requireActor(), HandSide.MAIN_HAND);
} else if ("offhand".equalsIgnoreCase(input)) {
return getItemInHand(context.requireActor(), HandSide.OFF_HAND);
}
if (item == null) {
ItemType type = ItemTypes.get(input.toLowerCase(Locale.ROOT));
if (type != null) {
item = new BaseItem(type);
String typeString;
String nbtString = null;
int nbtStart = input.indexOf('{');
if (nbtStart == -1) {
typeString = input;
} else {
typeString = input.substring(0, nbtStart);
if (nbtStart + 1 >= input.length()) {
throw new InputParseException(TranslatableComponent.of("worldedit.error.parser.hanging-lbracket", TextComponent.of(nbtStart)));
}
int stateEnd = input.lastIndexOf('}');
if (stateEnd < 0) {
throw new InputParseException(TranslatableComponent.of("worldedit.error.parser.missing-rbracket"));
}
nbtString = input.substring(nbtStart);
}
if ("hand".equalsIgnoreCase(typeString)) {
BaseItemStack heldItem = getItemInHand(context.requireActor(), HandSide.MAIN_HAND);
itemType = heldItem.getType();
itemNbtData = heldItem.getNbt();
} else if ("offhand".equalsIgnoreCase(typeString)) {
BaseItemStack heldItem = getItemInHand(context.requireActor(), HandSide.OFF_HAND);
itemType = heldItem.getType();
itemNbtData = heldItem.getNbt();
} else {
itemType = ItemTypes.get(typeString.toLowerCase(Locale.ROOT));
}
if (itemType == null) {
throw new NoMatchException(TranslatableComponent.of("worldedit.error.unknown-item", TextComponent.of(input)));
}
if (nbtString != null) {
try {
CompoundBinaryTag otherTag = TagStringIO.get().asCompound(nbtString);
if (itemNbtData == null) {
itemNbtData = otherTag;
} else {
for (String key : otherTag.keySet()) {
itemNbtData.put(key, otherTag.get(key));
}
}
} catch (IOException e) {
throw new NoMatchException(TranslatableComponent.of(
"worldedit.error.invalid-nbt",
TextComponent.of(input),
TextComponent.of(e.getMessage())
));
}
}
item = new BaseItem(itemType, itemNbtData == null ? null : LazyReference.computed(itemNbtData));
}
if (item == null) {
throw new InputParseException(Caption.of("worldedit.error.unknown-item", TextComponent.of(input)));
} else {
return item;
}
return item;
}
private BaseItemStack getItemInHand(Actor actor, HandSide handSide) throws InputParseException {

View File

@ -1,6 +1,6 @@
package com.sk89q.worldedit.extension.factory.parser;
import com.boydti.fawe.config.Caption;
import com.fastasyncworldedit.core.configuration.Caption;
import com.google.common.base.Preconditions;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.input.InputParseException;

View File

@ -1,7 +1,7 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.object.mask.AdjacentAnyMask;
import com.boydti.fawe.object.mask.AdjacentMask;
import com.fastasyncworldedit.core.object.mask.AdjacentAnyMask;
import com.fastasyncworldedit.core.object.mask.AdjacentMask;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.command.util.SuggestionHelper;
import com.sk89q.worldedit.extension.factory.parser.RichParser;

View File

@ -1,7 +1,7 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.config.Caption;
import com.boydti.fawe.object.mask.AngleMask;
import com.fastasyncworldedit.core.configuration.Caption;
import com.fastasyncworldedit.core.object.mask.AngleMask;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.command.util.SuggestionHelper;
import com.sk89q.worldedit.extension.factory.parser.RichParser;

View File

@ -19,7 +19,7 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.config.Caption;
import com.fastasyncworldedit.core.configuration.Caption;
import com.google.common.base.Splitter;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.command.util.SuggestionHelper;

View File

@ -19,7 +19,7 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.config.Caption;
import com.fastasyncworldedit.core.configuration.Caption;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.command.util.SuggestionHelper;
import com.sk89q.worldedit.extension.input.InputParseException;

View File

@ -19,7 +19,7 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.config.Caption;
import com.fastasyncworldedit.core.configuration.Caption;
import com.google.common.base.Splitter;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.input.InputParseException;

View File

@ -19,7 +19,7 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.config.Caption;
import com.fastasyncworldedit.core.configuration.Caption;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.input.InputParseException;
import com.sk89q.worldedit.extension.input.ParserContext;

View File

@ -1,7 +1,7 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.config.Caption;
import com.boydti.fawe.object.mask.ExtremaMask;
import com.fastasyncworldedit.core.configuration.Caption;
import com.fastasyncworldedit.core.object.mask.ExtremaMask;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.command.util.SuggestionHelper;
import com.sk89q.worldedit.extension.factory.parser.RichParser;

View File

@ -1,6 +1,6 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.object.mask.LiquidMask;
import com.fastasyncworldedit.core.object.mask.LiquidMask;
import com.google.common.collect.ImmutableList;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.input.ParserContext;

View File

@ -19,7 +19,7 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.config.Caption;
import com.fastasyncworldedit.core.configuration.Caption;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.input.InputParseException;
import com.sk89q.worldedit.extension.input.ParserContext;

View File

@ -1,7 +1,7 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.config.Caption;
import com.boydti.fawe.object.mask.ROCAngleMask;
import com.fastasyncworldedit.core.configuration.Caption;
import com.fastasyncworldedit.core.object.mask.ROCAngleMask;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.command.util.SuggestionHelper;
import com.sk89q.worldedit.extension.factory.parser.RichParser;

View File

@ -1,6 +1,6 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.object.mask.RadiusMask;
import com.fastasyncworldedit.core.object.mask.RadiusMask;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.command.util.SuggestionHelper;
import com.sk89q.worldedit.extension.factory.parser.RichParser;

View File

@ -19,7 +19,7 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.config.Caption;
import com.fastasyncworldedit.core.configuration.Caption;
import com.google.common.collect.ImmutableList;
import com.sk89q.worldedit.IncompleteRegionException;
import com.sk89q.worldedit.WorldEdit;

View File

@ -1,6 +1,6 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.object.mask.SimplexMask;
import com.fastasyncworldedit.core.object.mask.SimplexMask;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.command.util.SuggestionHelper;
import com.sk89q.worldedit.extension.factory.parser.RichParser;

View File

@ -1,6 +1,6 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.object.mask.SurfaceMask;
import com.fastasyncworldedit.core.object.mask.SurfaceMask;
import com.google.common.collect.ImmutableList;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.input.InputParseException;

View File

@ -1,6 +1,6 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.object.mask.WallMask;
import com.fastasyncworldedit.core.object.mask.WallMask;
import com.google.common.collect.ImmutableList;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.input.InputParseException;

View File

@ -19,7 +19,7 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.object.mask.XAxisMask;
import com.fastasyncworldedit.core.object.mask.XAxisMask;
import com.google.common.collect.ImmutableList;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.input.ParserContext;

View File

@ -19,7 +19,7 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.object.mask.YAxisMask;
import com.fastasyncworldedit.core.object.mask.YAxisMask;
import com.google.common.collect.ImmutableList;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.input.ParserContext;

View File

@ -19,7 +19,7 @@
package com.sk89q.worldedit.extension.factory.parser.mask;
import com.boydti.fawe.object.mask.ZAxisMask;
import com.fastasyncworldedit.core.object.mask.ZAxisMask;
import com.google.common.collect.ImmutableList;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.input.ParserContext;

View File

@ -1,7 +1,7 @@
package com.sk89q.worldedit.extension.factory.parser.pattern;
import com.boydti.fawe.config.Caption;
import com.boydti.fawe.object.pattern.BiomeApplyingPattern;
import com.fastasyncworldedit.core.configuration.Caption;
import com.fastasyncworldedit.core.object.pattern.BiomeApplyingPattern;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.factory.parser.RichParser;
import com.sk89q.worldedit.extension.input.InputParseException;

View File

@ -19,7 +19,7 @@
package com.sk89q.worldedit.extension.factory.parser.pattern;
import com.boydti.fawe.config.Caption;
import com.fastasyncworldedit.core.configuration.Caption;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.command.util.SuggestionHelper;
import com.sk89q.worldedit.extension.input.InputParseException;

View File

@ -1,7 +1,7 @@
package com.sk89q.worldedit.extension.factory.parser.pattern;
import com.boydti.fawe.config.Caption;
import com.boydti.fawe.object.pattern.BufferedPattern;
import com.fastasyncworldedit.core.configuration.Caption;
import com.fastasyncworldedit.core.object.pattern.BufferedPattern;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.factory.parser.RichParser;
import com.sk89q.worldedit.extension.input.InputParseException;

View File

@ -19,7 +19,7 @@
package com.sk89q.worldedit.extension.factory.parser.pattern;
import com.boydti.fawe.config.Caption;
import com.fastasyncworldedit.core.configuration.Caption;
import com.sk89q.worldedit.EmptyClipboardException;
import com.sk89q.worldedit.LocalSession;
import com.sk89q.worldedit.WorldEdit;

View File

@ -1,6 +1,6 @@
package com.sk89q.worldedit.extension.factory.parser.pattern;
import com.boydti.fawe.object.pattern.ExistingPattern;
import com.fastasyncworldedit.core.object.pattern.ExistingPattern;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.input.InputParseException;
import com.sk89q.worldedit.extension.input.ParserContext;

View File

@ -1,7 +1,7 @@
package com.sk89q.worldedit.extension.factory.parser.pattern;
import com.boydti.fawe.config.Caption;
import com.boydti.fawe.object.pattern.Linear2DBlockPattern;
import com.fastasyncworldedit.core.configuration.Caption;
import com.fastasyncworldedit.core.object.pattern.Linear2DBlockPattern;
import com.google.common.base.Preconditions;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.command.util.SuggestionHelper;

View File

@ -1,7 +1,7 @@
package com.sk89q.worldedit.extension.factory.parser.pattern;
import com.boydti.fawe.config.Caption;
import com.boydti.fawe.object.pattern.Linear3DBlockPattern;
import com.fastasyncworldedit.core.configuration.Caption;
import com.fastasyncworldedit.core.object.pattern.Linear3DBlockPattern;
import com.google.common.base.Preconditions;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.command.util.SuggestionHelper;

View File

@ -1,7 +1,7 @@
package com.sk89q.worldedit.extension.factory.parser.pattern;
import com.boydti.fawe.config.Caption;
import com.boydti.fawe.object.random.NoiseRandom;
import com.fastasyncworldedit.core.configuration.Caption;
import com.fastasyncworldedit.core.object.random.NoiseRandom;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.command.util.SuggestionHelper;
import com.sk89q.worldedit.extension.factory.parser.RichParser;

View File

@ -19,7 +19,7 @@
package com.sk89q.worldedit.extension.factory.parser.pattern;
import com.boydti.fawe.config.Caption;
import com.fastasyncworldedit.core.configuration.Caption;
import com.sk89q.util.StringUtil;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.input.InputParseException;

View File

@ -19,7 +19,7 @@
package com.sk89q.worldedit.extension.factory.parser.pattern;
import com.boydti.fawe.config.Caption;
import com.fastasyncworldedit.core.configuration.Caption;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.command.util.SuggestionHelper;
import com.sk89q.worldedit.extension.input.InputParseException;