geforkt von Mirrors/FastAsyncWorldEdit
Merge pull request #19 from IronApollo/master
Fix for '//mask ?' resulting in pattern error Fixes CommandSuggestionEvent Update FaweLocalBlockQueue to support Plotsquared restrictions
Dieser Commit ist enthalten in:
Commit
ec22c4f180
@ -6,6 +6,7 @@ import com.sk89q.worldedit.event.platform.CommandSuggestionEvent;
|
|||||||
import com.sk89q.worldedit.extension.platform.CommandManager;
|
import com.sk89q.worldedit.extension.platform.CommandManager;
|
||||||
import com.sk89q.worldedit.util.command.CommandMapping;
|
import com.sk89q.worldedit.util.command.CommandMapping;
|
||||||
import com.sk89q.worldedit.util.command.Dispatcher;
|
import com.sk89q.worldedit.util.command.Dispatcher;
|
||||||
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
@ -23,11 +24,12 @@ public class ATabCompleteListener implements Listener {
|
|||||||
MutableCharSequence mBuffer = MutableCharSequence.getTemporal();
|
MutableCharSequence mBuffer = MutableCharSequence.getTemporal();
|
||||||
mBuffer.setString(buffer);
|
mBuffer.setString(buffer);
|
||||||
mBuffer.setSubstring(0, firstSpace);
|
mBuffer.setSubstring(0, firstSpace);
|
||||||
String label = buffer.substring(mBuffer.indexOf(':') + 1, firstSpace);
|
int index;
|
||||||
|
String label = buffer.substring(index = (mBuffer.indexOf(':') == -1 ? 1 : mBuffer.indexOf(':') + 1), firstSpace);
|
||||||
Dispatcher dispatcher = CommandManager.getInstance().getDispatcher();
|
Dispatcher dispatcher = CommandManager.getInstance().getDispatcher();
|
||||||
CommandMapping weCommand = dispatcher.get(label);
|
CommandMapping weCommand = dispatcher.get(label);
|
||||||
if (weCommand != null) {
|
if (weCommand != null) {
|
||||||
CommandSuggestionEvent event = new CommandSuggestionEvent(worldEdit.wrapCommandSender(sender), buffer);
|
CommandSuggestionEvent event = new CommandSuggestionEvent(worldEdit.wrapCommandSender(sender), buffer.substring(index, buffer.length()));
|
||||||
worldEdit.getWorldEdit().getEventBus().post(event);
|
worldEdit.getWorldEdit().getEventBus().post(event);
|
||||||
List<String> suggestions = event.getSuggestions();
|
List<String> suggestions = event.getSuggestions();
|
||||||
if (suggestions != null) {
|
if (suggestions != null) {
|
||||||
|
@ -278,7 +278,12 @@ public abstract class BukkitQueue_0<CHUNK, CHUNKSECTIONS, SECTION> extends NMSMa
|
|||||||
public void sendChunk(int x, int z, int bitMask) {}
|
public void sendChunk(int x, int z, int bitMask) {}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void refreshChunk(FaweChunk fs) {}
|
public void refreshChunk(FaweChunk fs) {
|
||||||
|
World world = getWorld();
|
||||||
|
if(world != null) {
|
||||||
|
world.refreshChunk(fs.getX(), fs.getZ());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean regenerateChunk(World world, int x, int z, BaseBiome biome, Long seed) {
|
public boolean regenerateChunk(World world, int x, int z, BaseBiome biome, Long seed) {
|
||||||
|
@ -8,10 +8,15 @@ import com.intellectualcrafters.jnbt.CompoundTag;
|
|||||||
import com.intellectualcrafters.plot.object.PlotBlock;
|
import com.intellectualcrafters.plot.object.PlotBlock;
|
||||||
import com.intellectualcrafters.plot.util.StringMan;
|
import com.intellectualcrafters.plot.util.StringMan;
|
||||||
import com.intellectualcrafters.plot.util.block.LocalBlockQueue;
|
import com.intellectualcrafters.plot.util.block.LocalBlockQueue;
|
||||||
|
import com.sk89q.worldedit.WorldEdit;
|
||||||
|
import com.sk89q.worldedit.extension.platform.Capability;
|
||||||
import com.sk89q.worldedit.world.World;
|
import com.sk89q.worldedit.world.World;
|
||||||
import com.sk89q.worldedit.world.biome.BaseBiome;
|
import com.sk89q.worldedit.world.biome.BaseBiome;
|
||||||
import com.sk89q.worldedit.world.biome.Biomes;
|
import com.sk89q.worldedit.world.biome.Biomes;
|
||||||
|
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||||
import com.sk89q.worldedit.world.registry.BiomeRegistry;
|
import com.sk89q.worldedit.world.registry.BiomeRegistry;
|
||||||
|
import com.sk89q.worldedit.world.registry.LegacyMapper;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
// TODO FIXME
|
// TODO FIXME
|
||||||
@ -61,15 +66,14 @@ public class FaweLocalBlockQueue extends LocalBlockQueue {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean setBlock(int x, int y, int z, int id, int data) {
|
public boolean setBlock(int x, int y, int z, int id, int data) {
|
||||||
return false;
|
return IMP.setBlock(x, y, z, LegacyMapper.getInstance().getBlockFromLegacy(id, data));
|
||||||
// return IMP.setBlock(x, y, z, (short) id, (byte) data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PlotBlock getBlock(int x, int y, int z) {
|
public PlotBlock getBlock(int x, int y, int z) {
|
||||||
// int combined = IMP.getCombinedId4Data(x, y, z);
|
int combined = IMP.getCombinedId4Data(x, y, z);
|
||||||
// return PlotBlock.get(FaweCache.getId(combined), FaweCache.getData(combined));
|
com.sk89q.worldedit.world.block.BlockState state = com.sk89q.worldedit.world.block.BlockState.getFromInternalId(combined);
|
||||||
return null;
|
return PlotBlock.get(state.getInternalBlockTypeId(), state.getInternalPropertiesId());
|
||||||
}
|
}
|
||||||
|
|
||||||
private BaseBiome biome;
|
private BaseBiome biome;
|
||||||
@ -78,15 +82,14 @@ public class FaweLocalBlockQueue extends LocalBlockQueue {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean setBiome(int x, int z, String biome) {
|
public boolean setBiome(int x, int z, String biome) {
|
||||||
// if (!StringMan.isEqual(biome, lastBiome)) {
|
if (!StringMan.isEqual(biome, lastBiome)) {
|
||||||
// if (reg == null) {
|
if (reg == null) {
|
||||||
// World weWorld = IMP.getWEWorld();
|
reg = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.USER_COMMANDS).getRegistries().getBiomeRegistry();
|
||||||
// reg = weWorld.getWorldData().getBiomeRegistry();
|
}
|
||||||
// }
|
List<BaseBiome> biomes = reg.getBiomes();
|
||||||
// List<BaseBiome> biomes = reg.getBiomes();
|
lastBiome = biome;
|
||||||
// lastBiome = biome;
|
this.biome = Biomes.findBiomeByName(biomes, biome, reg);
|
||||||
// this.biome = Biomes.findBiomeByName(biomes, biome, reg);
|
}
|
||||||
// }
|
|
||||||
return IMP.setBiome(x, z, this.biome);
|
return IMP.setBiome(x, z, this.biome);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,7 +86,7 @@ public class DefaultMaskParser extends FaweParser<Mask> {
|
|||||||
if (charMask && input.charAt(0) == '=') {
|
if (charMask && input.charAt(0) == '=') {
|
||||||
return parseFromInput(char0 + "[" + input.substring(1) + "]", context);
|
return parseFromInput(char0 + "[" + input.substring(1) + "]", context);
|
||||||
}
|
}
|
||||||
if (char0 == '#') {
|
if (char0 == '#' || char0 == '?') {
|
||||||
throw new SuggestInputParseException(new NoMatchException("Unknown mask: " + full + ", See: //masks"), full,
|
throw new SuggestInputParseException(new NoMatchException("Unknown mask: " + full + ", See: //masks"), full,
|
||||||
() -> {
|
() -> {
|
||||||
if (full.length() == 1) return new ArrayList<>(dispatcher.getPrimaryAliases());
|
if (full.length() == 1) return new ArrayList<>(dispatcher.getPrimaryAliases());
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren