mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-07-16 03:14:04 +00:00
Allow console to execute commands now that editsessions etc. accept actors
- Fixes #724 - Fixes #1044
This commit is contained in:
@@ -46,15 +46,15 @@ public class ProvideBindings extends Bindings {
|
||||
}
|
||||
|
||||
@Binding
|
||||
public LocalSession getLocalSession(Player player) {
|
||||
return getWorldEdit().getSessionManager().get(player);
|
||||
public LocalSession getLocalSession(Actor actor) {
|
||||
return getWorldEdit().getSessionManager().get(actor);
|
||||
}
|
||||
|
||||
@Binding
|
||||
public EditSession editSession(LocalSession localSession, Player player, InjectedValueAccess context) {
|
||||
public EditSession editSession(LocalSession localSession, Actor actor, InjectedValueAccess context) {
|
||||
Arguments arguments = context.injectedValue(Key.of(Arguments.class)).orElse(null);
|
||||
String command = arguments == null ? null : arguments.get();
|
||||
EditSession editSession = localSession.createEditSession(player, command);
|
||||
EditSession editSession = localSession.createEditSession(actor, command);
|
||||
editSession.enableStandardMode();
|
||||
Request.request().setEditSession(editSession);
|
||||
return editSession;
|
||||
@@ -62,8 +62,8 @@ public class ProvideBindings extends Bindings {
|
||||
|
||||
@Selection
|
||||
@Binding
|
||||
public Region selection(LocalSession localSession, Player player) {
|
||||
return localSession.getSelection(player.getWorld());
|
||||
public Region selection(LocalSession localSession) {
|
||||
return localSession.getSelection();
|
||||
}
|
||||
|
||||
@Binding
|
||||
@@ -124,8 +124,7 @@ public class ProvideBindings extends Bindings {
|
||||
if (extent != null) {
|
||||
return extent;
|
||||
}
|
||||
Player plr = getPlayer(actor);
|
||||
EditSession editSession = editSession(getLocalSession(plr), plr, access);
|
||||
EditSession editSession = editSession(getLocalSession(actor), actor, access);
|
||||
if (access instanceof InjectedValueStore) {
|
||||
InjectedValueStore store = (InjectedValueStore) access;
|
||||
store.injectValue(Key.of(EditSession.class), ValueProvider.constant(editSession));
|
||||
|
@@ -6,27 +6,28 @@ import com.fastasyncworldedit.core.util.MemUtil;
|
||||
import com.fastasyncworldedit.core.util.Permission;
|
||||
import com.fastasyncworldedit.core.util.WEManager;
|
||||
import com.sk89q.worldedit.entity.Player;
|
||||
import com.sk89q.worldedit.extension.platform.Actor;
|
||||
import com.sk89q.worldedit.extent.Extent;
|
||||
|
||||
public class MemoryCheckingExtent extends PassthroughExtent {
|
||||
|
||||
private final Player player;
|
||||
private final Actor actor;
|
||||
|
||||
public MemoryCheckingExtent(Player player, Extent extent) {
|
||||
public MemoryCheckingExtent(Actor actor, Extent extent) {
|
||||
super(extent);
|
||||
this.player = player;
|
||||
this.actor = actor;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Extent getExtent() {
|
||||
if (MemUtil.isMemoryLimited()) {
|
||||
if (this.player != null) {
|
||||
player.print(Caption.of(
|
||||
if (this.actor != null) {
|
||||
actor.print(Caption.of(
|
||||
"fawe.cancel.worldedit.cancel.reason",
|
||||
Caption.of("fawe.cancel.worldedit.cancel.reason.low.memory")
|
||||
));
|
||||
if (Permission.hasPermission(this.player, "worldedit.fast")) {
|
||||
this.player.print(Caption.of("fawe.info.worldedit.oom.admin"));
|
||||
if (Permission.hasPermission(this.actor, "worldedit.fast")) {
|
||||
this.actor.print(Caption.of("fawe.info.worldedit.oom.admin"));
|
||||
}
|
||||
}
|
||||
WEManager.IMP.cancelEdit(this, FaweCache.LOW_MEMORY);
|
||||
|
@@ -13,7 +13,7 @@ import com.fastasyncworldedit.core.util.MainUtil;
|
||||
import com.sk89q.jnbt.NBTInputStream;
|
||||
import com.sk89q.jnbt.NBTOutputStream;
|
||||
import com.sk89q.worldedit.EditSession;
|
||||
import com.sk89q.worldedit.entity.Player;
|
||||
import com.sk89q.worldedit.extension.platform.Actor;
|
||||
import com.sk89q.worldedit.function.operation.ChangeSetExecutor;
|
||||
import com.sk89q.worldedit.regions.Region;
|
||||
import com.sk89q.worldedit.world.World;
|
||||
@@ -134,35 +134,35 @@ public class DiskStorageHistory extends FaweStreamChangeSet {
|
||||
enttFile.delete();
|
||||
}
|
||||
|
||||
public void undo(Player player, Region[] regions) {
|
||||
public void undo(Actor actor, Region[] regions) {
|
||||
try {
|
||||
close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return;
|
||||
}
|
||||
EditSession session = toEditSession(player, regions);
|
||||
EditSession session = toEditSession(actor, regions);
|
||||
session.setBlocks(this, ChangeSetExecutor.Type.UNDO);
|
||||
deleteFiles();
|
||||
}
|
||||
|
||||
public void undo(Player player) {
|
||||
undo(player, null);
|
||||
public void undo(Actor actor) {
|
||||
undo(actor, null);
|
||||
}
|
||||
|
||||
public void redo(Player player, Region[] regions) {
|
||||
public void redo(Actor actor, Region[] regions) {
|
||||
try {
|
||||
close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return;
|
||||
}
|
||||
EditSession session = toEditSession(player, regions);
|
||||
EditSession session = toEditSession(actor, regions);
|
||||
session.setBlocks(this, ChangeSetExecutor.Type.REDO);
|
||||
}
|
||||
|
||||
public void redo(Player player) {
|
||||
redo(player, null);
|
||||
public void redo(Actor actor) {
|
||||
redo(actor, null);
|
||||
}
|
||||
|
||||
public UUID getUUID() {
|
||||
|
@@ -16,7 +16,7 @@ import com.sk89q.jnbt.CompoundTag;
|
||||
import com.sk89q.worldedit.EditSession;
|
||||
import com.sk89q.worldedit.EditSessionBuilder;
|
||||
import com.sk89q.worldedit.WorldEdit;
|
||||
import com.sk89q.worldedit.entity.Player;
|
||||
import com.sk89q.worldedit.extension.platform.Actor;
|
||||
import com.sk89q.worldedit.extent.Extent;
|
||||
import com.sk89q.worldedit.extent.inventory.BlockBag;
|
||||
import com.sk89q.worldedit.history.change.BlockChange;
|
||||
@@ -251,12 +251,12 @@ public abstract class AbstractChangeSet implements ChangeSet, IBatchProcessor {
|
||||
|
||||
public abstract Iterator<Change> getIterator(boolean redo);
|
||||
|
||||
public EditSession toEditSession(Player player) {
|
||||
return toEditSession(player, null);
|
||||
public EditSession toEditSession(Actor actor) {
|
||||
return toEditSession(actor, null);
|
||||
}
|
||||
|
||||
public EditSession toEditSession(Player player, Region[] regions) {
|
||||
EditSessionBuilder builder = WorldEdit.getInstance().newEditSessionBuilder().world(getWorld()).actor(player).
|
||||
public EditSession toEditSession(Actor actor, Region[] regions) {
|
||||
EditSessionBuilder builder = WorldEdit.getInstance().newEditSessionBuilder().world(getWorld()).actor(actor).
|
||||
fastMode(false).checkMemory(false).changeSet(this).limitUnlimited();
|
||||
if (regions != null) {
|
||||
builder.allowedRegions(regions);
|
||||
|
@@ -3,6 +3,7 @@ package com.fastasyncworldedit.core.history.changeset;
|
||||
import com.sk89q.jnbt.CompoundTag;
|
||||
import com.sk89q.worldedit.EditSession;
|
||||
import com.sk89q.worldedit.entity.Player;
|
||||
import com.sk89q.worldedit.extension.platform.Actor;
|
||||
import com.sk89q.worldedit.extent.inventory.BlockBag;
|
||||
import com.sk89q.worldedit.history.change.BlockChange;
|
||||
import com.sk89q.worldedit.history.change.Change;
|
||||
@@ -84,13 +85,13 @@ public class AbstractDelegateChangeSet extends AbstractChangeSet {
|
||||
}
|
||||
|
||||
@Override
|
||||
public EditSession toEditSession(Player player) {
|
||||
return parent.toEditSession(player);
|
||||
public EditSession toEditSession(Actor actor) {
|
||||
return parent.toEditSession(actor);
|
||||
}
|
||||
|
||||
@Override
|
||||
public EditSession toEditSession(Player player, Region[] regions) {
|
||||
return parent.toEditSession(player, regions);
|
||||
public EditSession toEditSession(Actor actor, Region[] regions) {
|
||||
return parent.toEditSession(actor, regions);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user