Fix limits

This commit is contained in:
IronApollo 2020-09-15 22:34:45 -04:00 committed by dordsor21
parent 07a5ef5ab4
commit f5f5a55b4c
3 changed files with 8 additions and 58 deletions

View File

@ -1,47 +0,0 @@
package com.boydti.fawe.beta.implementation.processors;
import com.boydti.fawe.beta.IBatchProcessor;
import com.boydti.fawe.beta.IChunk;
import com.boydti.fawe.beta.IChunkGet;
import com.boydti.fawe.beta.IChunkSet;
import com.boydti.fawe.object.FaweLimit;
import com.boydti.fawe.object.exception.FaweException;
import com.sk89q.worldedit.extent.Extent;
public class LimitProcessor implements IBatchProcessor {
private final FaweLimit limit;
private final IBatchProcessor parent;
public LimitProcessor(FaweLimit limit, IBatchProcessor parent) {
this.limit = limit;
this.parent = parent;
}
@Override
public IChunkSet processSet(IChunk chunk, IChunkGet get, IChunkSet set) {
try {
return parent.processSet(chunk, get, set);
} catch (FaweException e) {
if (!limit.MAX_CHANGES()) {
throw e;
}
return null;
}
}
@Override
public boolean processGet(int chunkX, int chunkZ) {
try {
return parent.processGet(chunkX, chunkZ);
} catch (FaweException e) {
if (!limit.MAX_CHECKS()) {
throw e;
}
return false;
}
}
@Override
public Extent construct(Extent child) {
return new LimitExtent(parent.construct(child), limit);
}
}

View File

@ -2,10 +2,9 @@ package com.boydti.fawe.util;
import com.boydti.fawe.Fawe;
import com.boydti.fawe.FaweCache;
import com.boydti.fawe.beta.IBatchProcessor;
import com.boydti.fawe.beta.IQueueChunk;
import com.boydti.fawe.beta.IQueueExtent;
import com.boydti.fawe.beta.implementation.processors.LimitProcessor;
import com.boydti.fawe.beta.implementation.processors.LimitExtent;
import com.boydti.fawe.beta.implementation.queue.ParallelQueueExtent;
import com.boydti.fawe.config.Settings;
import com.boydti.fawe.logging.rollback.RollbackOptimizedHistory;
@ -383,14 +382,8 @@ public class EditSessionBuilder {
} else {
// this.extent = new HeightBoundExtent(this.extent, this.limit, 0, world.getMaxY());
}
IBatchProcessor limitProcessor = regionExtent;
if (limit != null && !limit.isUnlimited()) {
limitProcessor = new LimitProcessor(limit, limitProcessor);
}
if (regionExtent != null && queue != null && combineStages) {
queue.addProcessor(limitProcessor);
} else if (regionExtent != null) {
this.extent = limitProcessor.construct(regionExtent.getExtent());
if (limit != null && !limit.isUnlimited() && regionExtent != null) {
this.extent = new LimitExtent(regionExtent, limit);
}
if (this.limit.STRIP_NBT != null && !this.limit.STRIP_NBT.isEmpty()) {
System.out.println("TODO add batch processor for strip nbt");

View File

@ -721,7 +721,11 @@ public final class PlatformCommandManager {
}
actor.printError(e.getRichMessage());
} catch (CommandExecutionException e) {
handleUnknownException(actor, e.getCause());
if (e.getCause() instanceof FaweException) {
actor.printError(TranslatableComponent.of("fawe.cancel.worldedit.cancel.reason", ((FaweException)e.getCause()).getComponent()));
} else {
handleUnknownException(actor, e.getCause());
}
} catch (CommandException e) {
Component msg = e.getRichMessage();
if (msg != TextComponent.empty()) {