3
0
Mirror von https://github.com/IntellectualSites/FastAsyncWorldEdit.git synchronisiert 2024-07-22 18:18:03 +02:00

Apply watchdog mode to undo/redo. Abstract EditSession creation logic.

Dieser Commit ist enthalten in:
wizjany 2019-09-30 18:28:13 -04:00
Ursprung 3093c45675
Commit 91f92a46fe

Datei anzeigen

@ -239,12 +239,7 @@ public class LocalSession {
EditSession editSession = history.get(historyPointer);
try (EditSession newEditSession = WorldEdit.getInstance().getEditSessionFactory()
.getEditSession(editSession.getWorld(), -1, newBlockBag, actor)) {
newEditSession.enableStandardMode();
newEditSession.setReorderMode(reorderMode);
newEditSession.setFastMode(fastMode);
if (newEditSession.getSurvivalExtent() != null) {
newEditSession.getSurvivalExtent().setStripNbt(!actor.hasPermission("worldedit.setnbt"));
}
prepareEditingExtents(editSession, actor);
editSession.undo(newEditSession);
}
return editSession;
@ -267,12 +262,7 @@ public class LocalSession {
EditSession editSession = history.get(historyPointer);
try (EditSession newEditSession = WorldEdit.getInstance().getEditSessionFactory()
.getEditSession(editSession.getWorld(), -1, newBlockBag, actor)) {
newEditSession.enableStandardMode();
newEditSession.setReorderMode(reorderMode);
newEditSession.setFastMode(fastMode);
if (newEditSession.getSurvivalExtent() != null) {
newEditSession.getSurvivalExtent().setStripNbt(!actor.hasPermission("worldedit.setnbt"));
}
prepareEditingExtents(editSession, actor);
editSession.redo(newEditSession);
}
++historyPointer;
@ -954,15 +944,19 @@ public class LocalSession {
}
Request.request().setEditSession(editSession);
editSession.setMask(mask);
prepareEditingExtents(editSession, actor);
return editSession;
}
private void prepareEditingExtents(EditSession editSession, Actor actor) {
editSession.setFastMode(fastMode);
editSession.setReorderMode(reorderMode);
editSession.setMask(mask);
if (editSession.getSurvivalExtent() != null) {
editSession.getSurvivalExtent().setStripNbt(!actor.hasPermission("worldedit.setnbt"));
}
editSession.setTickingWatchdog(tickingWatchdog);
return editSession;
}
/**