mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2024-12-23 01:37:37 +00:00
Refactor the try-catch for copy/cut commands, switch to saveDiskClipboard
instead of closing the clipboard on error
Address #1291
This commit is contained in:
parent
adf83bdd0a
commit
fcbbc72a19
@ -140,7 +140,6 @@ public class ClipboardCommands {
|
||||
session.setClipboard(null);
|
||||
|
||||
Clipboard clipboard = new BlockArrayClipboard(region, actor.getUniqueId());
|
||||
try {
|
||||
clipboard.setOrigin(centerClipboard ? region.getCenter().toBlockPoint() : session.getPlacementPosition(actor));
|
||||
ForwardExtentCopy copy = new ForwardExtentCopy(editSession, region, clipboard, region.getMinimumPoint());
|
||||
copy.setCopyingEntities(copyEntities);
|
||||
@ -165,15 +164,16 @@ public class ClipboardCommands {
|
||||
editSession.setSourceMask(null);
|
||||
}
|
||||
|
||||
try {
|
||||
Operations.completeLegacy(copy);
|
||||
} catch (Throwable e) {
|
||||
throw e;
|
||||
} finally {
|
||||
saveDiskClipboard(clipboard);
|
||||
}
|
||||
session.setClipboard(new ClipboardHolder(clipboard));
|
||||
|
||||
copy.getStatusMessages().forEach(actor::print);
|
||||
} catch (Throwable e) {
|
||||
clipboard.close();
|
||||
throw e;
|
||||
}
|
||||
//FAWE end
|
||||
}
|
||||
|
||||
@ -277,7 +277,6 @@ public class ClipboardCommands {
|
||||
session.setClipboard(null);
|
||||
|
||||
BlockArrayClipboard clipboard = new BlockArrayClipboard(region, actor.getUniqueId());
|
||||
try {
|
||||
clipboard.setOrigin(session.getPlacementPosition(actor));
|
||||
ForwardExtentCopy copy = new ForwardExtentCopy(editSession, region, clipboard, region.getMinimumPoint());
|
||||
copy.setSourceFunction(new BlockReplace(editSession, leavePattern));
|
||||
@ -302,18 +301,19 @@ public class ClipboardCommands {
|
||||
new MaskTraverser(sourceMask).reset(editSession);
|
||||
editSession.setSourceMask(null);
|
||||
}
|
||||
try {
|
||||
Operations.completeLegacy(copy);
|
||||
} catch (Throwable e) {
|
||||
throw e;
|
||||
} finally {
|
||||
saveDiskClipboard(clipboard);
|
||||
}
|
||||
session.setClipboard(new ClipboardHolder(clipboard));
|
||||
|
||||
if (!actor.hasPermission("fawe.tips")) {
|
||||
actor.print(Caption.of("fawe.tips.tip.lazycut"));
|
||||
}
|
||||
copy.getStatusMessages().forEach(actor::print);
|
||||
} catch (Throwable e) {
|
||||
clipboard.close();
|
||||
throw e;
|
||||
}
|
||||
//FAWE end
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user