mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-07-22 15:24:43 +02:00
Compare commits
1 Commits
fix/plotTi
...
fix/v6/Ill
Author | SHA1 | Date | |
---|---|---|---|
e1f53033bc |
@ -44,6 +44,7 @@ public class LimitedRegionWrapperQueue extends DelegateQueueCoordinator {
|
||||
private static final Logger LOGGER = LogManager.getLogger("PlotSquared/" + LimitedRegionWrapperQueue.class.getSimpleName());
|
||||
|
||||
private final LimitedRegion limitedRegion;
|
||||
private boolean useOtherRestoreTagMethod = false;
|
||||
|
||||
/**
|
||||
* @since 6.9.0
|
||||
@ -65,10 +66,18 @@ public class LimitedRegionWrapperQueue extends DelegateQueueCoordinator {
|
||||
CompoundTag tag = id.getNbtData();
|
||||
StateWrapper sw = new StateWrapper(tag);
|
||||
try {
|
||||
sw.restoreTag(limitedRegion.getBlockState(x, y, z).getBlock());
|
||||
if (useOtherRestoreTagMethod && getWorld() != null) {
|
||||
sw.restoreTag(getWorld().getName(), x, y, z);
|
||||
} else {
|
||||
sw.restoreTag(limitedRegion.getBlockState(x, y, z).getBlock());
|
||||
}
|
||||
} catch (IllegalArgumentException e) {
|
||||
LOGGER.error("Error attempting to populate tile entity into the world at location {},{},{}", x, y, z, e);
|
||||
return false;
|
||||
} catch (IllegalStateException e) {
|
||||
useOtherRestoreTagMethod = true;
|
||||
LOGGER.warn("IllegalStateException attempting to populate tile entity into the world at location {},{},{}. " +
|
||||
"Possibly on <=1.17.1, switching to secondary method.", x, y, z, e);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
@ -36,8 +36,7 @@ import java.util.regex.Pattern;
|
||||
|
||||
public class StringMan {
|
||||
|
||||
// Stolen from https://stackoverflow.com/a/366532/12620913 | Debug: https://regex101.com/r/DudJLb/1
|
||||
private static final Pattern STRING_SPLIT_PATTERN = Pattern.compile("[^\\s\"]+|\"([^\"]*)\"");
|
||||
private static final Pattern STRING_SPLIT_PATTERN = Pattern.compile("(?<quoted>\"[\\w ]+\")|(?<single>\\w+)");
|
||||
|
||||
public static String replaceFromMap(String string, Map<String, String> replacements) {
|
||||
StringBuilder sb = new StringBuilder(string);
|
||||
@ -356,7 +355,7 @@ public class StringMan {
|
||||
var matcher = StringMan.STRING_SPLIT_PATTERN.matcher(message);
|
||||
List<String> splitMessages = new ArrayList<>();
|
||||
while (matcher.find()) {
|
||||
splitMessages.add(matcher.group(matcher.groupCount() - 1).replaceAll("\"", ""));
|
||||
splitMessages.add(matcher.group(0).replaceAll("\"", ""));
|
||||
}
|
||||
return splitMessages;
|
||||
}
|
||||
|
@ -101,7 +101,7 @@ public class FlagTest {
|
||||
public void shouldSuccessfullyParseTitleFlagWithTitleEmptyAndSubTitleSingleWord() {
|
||||
Assertions.assertDoesNotThrow(() -> {
|
||||
var title = PlotTitleFlag.TITLE_FLAG_DEFAULT.parse("\"\" \"single\"").getValue();
|
||||
Assertions.assertEquals("", title.title());
|
||||
Assertions.assertEquals(" ", title.title());
|
||||
Assertions.assertEquals("single", title.subtitle());
|
||||
}, "Should not throw a FlagParseException");
|
||||
}
|
||||
|
@ -32,9 +32,7 @@ public class StringManTest {
|
||||
new Message("title", List.of("title")),
|
||||
new Message("title \"sub title\"", List.of("title", "sub title")),
|
||||
new Message("\"a title\" subtitle", List.of("a title", "subtitle")),
|
||||
new Message("\"title\" \"subtitle\"", List.of("title", "subtitle")),
|
||||
new Message("\"How <bold>bold</bold> of you\" \"to assume I like <rainbow>rainbows</rainbow>\"",
|
||||
List.of("How <bold>bold</bold> of you", "to assume I like <rainbow>rainbows</rainbow>"))
|
||||
new Message("\"title\" \"subtitle\"", List.of("title", "subtitle"))
|
||||
);
|
||||
|
||||
for (Message message : messages) {
|
||||
|
Reference in New Issue
Block a user