geforkt von Mirrors/FastAsyncWorldEdit
Removed commands.yml
I also did a few renames as well as a command registration fix.
Dieser Commit ist enthalten in:
Ursprung
9a4473b73f
Commit
7963b2c92f
@ -2,7 +2,6 @@ package com.boydti.fawe;
|
|||||||
|
|
||||||
import com.boydti.fawe.beta.implementation.QueueHandler;
|
import com.boydti.fawe.beta.implementation.QueueHandler;
|
||||||
import com.boydti.fawe.config.BBC;
|
import com.boydti.fawe.config.BBC;
|
||||||
import com.boydti.fawe.config.Commands;
|
|
||||||
import com.boydti.fawe.config.Settings;
|
import com.boydti.fawe.config.Settings;
|
||||||
import com.boydti.fawe.object.FawePlayer;
|
import com.boydti.fawe.object.FawePlayer;
|
||||||
import com.boydti.fawe.object.brush.visualization.VisualQueue;
|
import com.boydti.fawe.object.brush.visualization.VisualQueue;
|
||||||
@ -311,7 +310,6 @@ public class Fawe {
|
|||||||
// Setting up message.yml
|
// Setting up message.yml
|
||||||
String lang = Objects.toString(Settings.IMP.LANGUAGE);
|
String lang = Objects.toString(Settings.IMP.LANGUAGE);
|
||||||
BBC.load(new File(this.IMP.getDirectory(), (lang.isEmpty() ? "" : lang + File.separator) + "message.yml"));
|
BBC.load(new File(this.IMP.getDirectory(), (lang.isEmpty() ? "" : lang + File.separator) + "message.yml"));
|
||||||
Commands.load(new File(INSTANCE.IMP.getDirectory(), "commands.yml"));
|
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
debug("====== Failed to load config ======");
|
debug("====== Failed to load config ======");
|
||||||
debug("Please validate your yaml files:");
|
debug("Please validate your yaml files:");
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package com.boydti.fawe.beta;
|
package com.boydti.fawe.beta;
|
||||||
|
|
||||||
|
import static com.sk89q.worldedit.world.block.BlockTypes.states;
|
||||||
|
|
||||||
import com.boydti.fawe.beta.implementation.blocks.CharGetBlocks;
|
import com.boydti.fawe.beta.implementation.blocks.CharGetBlocks;
|
||||||
import com.sk89q.jnbt.CompoundTag;
|
import com.sk89q.jnbt.CompoundTag;
|
||||||
import com.sk89q.worldedit.extent.Extent;
|
import com.sk89q.worldedit.extent.Extent;
|
||||||
@ -9,10 +11,7 @@ import com.sk89q.worldedit.world.block.BaseBlock;
|
|||||||
import com.sk89q.worldedit.world.block.BlockState;
|
import com.sk89q.worldedit.world.block.BlockState;
|
||||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||||
import com.sk89q.worldedit.world.registry.BlockMaterial;
|
import com.sk89q.worldedit.world.registry.BlockMaterial;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import static com.sk89q.worldedit.world.block.BlockTypes.states;
|
|
||||||
public class CharFilterBlock extends ChunkFilterBlock {
|
public class CharFilterBlock extends ChunkFilterBlock {
|
||||||
private CharGetBlocks get;
|
private CharGetBlocks get;
|
||||||
private IChunkSet set;
|
private IChunkSet set;
|
||||||
@ -29,12 +28,12 @@ public class CharFilterBlock extends ChunkFilterBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final ChunkFilterBlock init(final int X, final int Z, final IChunkGet chunk) {
|
public final ChunkFilterBlock init(final int x, final int z, final IChunkGet chunk) {
|
||||||
this.get = (CharGetBlocks) chunk;
|
this.get = (CharGetBlocks) chunk;
|
||||||
this.X = X;
|
this.X = x;
|
||||||
this.Z = Z;
|
this.Z = z;
|
||||||
this.xx = X << 4;
|
this.xx = x << 4;
|
||||||
this.zz = Z << 4;
|
this.zz = z << 4;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,17 +1,14 @@
|
|||||||
package com.boydti.fawe.beta;
|
package com.boydti.fawe.beta;
|
||||||
|
|
||||||
import com.sk89q.worldedit.extent.Extent;
|
import com.sk89q.worldedit.extent.Extent;
|
||||||
import com.sk89q.worldedit.math.BlockVector3;
|
|
||||||
import com.sk89q.worldedit.regions.Region;
|
import com.sk89q.worldedit.regions.Region;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
|
|
||||||
public abstract class ChunkFilterBlock extends SimpleFilterBlock {
|
public abstract class ChunkFilterBlock extends SimpleFilterBlock {
|
||||||
public ChunkFilterBlock(Extent extent) {
|
public ChunkFilterBlock(Extent extent) {
|
||||||
super(extent);
|
super(extent);
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract ChunkFilterBlock init(int X, int Z, IChunkGet chunk);
|
public abstract ChunkFilterBlock init(int x, int z, IChunkGet chunk);
|
||||||
|
|
||||||
public abstract ChunkFilterBlock init(final IChunkGet iget, final IChunkSet iset, final int layer);
|
public abstract ChunkFilterBlock init(final IChunkGet iget, final IChunkSet iset, final int layer);
|
||||||
|
|
||||||
|
@ -2,21 +2,19 @@ package com.boydti.fawe.command;
|
|||||||
|
|
||||||
import static com.sk89q.worldedit.util.formatting.text.TextComponent.newline;
|
import static com.sk89q.worldedit.util.formatting.text.TextComponent.newline;
|
||||||
|
|
||||||
import com.boydti.fawe.config.Commands;
|
|
||||||
import com.boydti.fawe.object.FawePlayer;
|
import com.boydti.fawe.object.FawePlayer;
|
||||||
import com.boydti.fawe.object.brush.visualization.cfi.HeightMapMCAGenerator;
|
import com.boydti.fawe.object.brush.visualization.cfi.HeightMapMCAGenerator;
|
||||||
import com.boydti.fawe.object.changeset.CFIChangeSet;
|
import com.boydti.fawe.object.changeset.CFIChangeSet;
|
||||||
import com.sk89q.worldedit.LocalSession;
|
import com.sk89q.worldedit.LocalSession;
|
||||||
import com.sk89q.worldedit.util.formatting.text.TextComponent;
|
import com.sk89q.worldedit.util.formatting.text.TextComponent;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
import org.enginehub.piston.CommandManager;
|
import org.enginehub.piston.CommandManager;
|
||||||
import org.enginehub.piston.exception.StopExecutionException;
|
import org.enginehub.piston.exception.StopExecutionException;
|
||||||
import org.enginehub.piston.inject.InjectedValueAccess;
|
import org.enginehub.piston.inject.InjectedValueAccess;
|
||||||
import org.enginehub.piston.inject.Key;
|
import org.enginehub.piston.inject.Key;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class CFICommand extends CommandProcessor<Object, Object> {
|
public class CFICommand extends CommandProcessor<Object, Object> {
|
||||||
|
|
||||||
public CFICommand(CommandManager manager) {
|
public CFICommand(CommandManager manager) {
|
||||||
@ -51,12 +49,11 @@ public class CFICommand extends CommandProcessor<Object, Object> {
|
|||||||
private List<String> dispatch(FawePlayer fp, CFICommands.CFISettings settings, List<String> args, InjectedValueAccess context) {
|
private List<String> dispatch(FawePlayer fp, CFICommands.CFISettings settings, List<String> args, InjectedValueAccess context) {
|
||||||
if (!settings.hasGenerator()) {
|
if (!settings.hasGenerator()) {
|
||||||
if (args.size() == 0) {
|
if (args.size() == 0) {
|
||||||
String hmCmd = CFICommands.alias() + " ";
|
String hmCmd = "/cfi ";
|
||||||
if (settings.image == null) {
|
if (settings.image == null) {
|
||||||
hmCmd += "image";
|
hmCmd += "image";
|
||||||
} else {
|
} else {
|
||||||
hmCmd =
|
hmCmd = "heightmap" + " " + settings.imageArg;
|
||||||
Commands.getAlias(CFICommands.class, "heightmap") + " " + settings.imageArg;
|
|
||||||
}
|
}
|
||||||
TextComponent build = TextComponent.builder("What do you want to use as the base?")
|
TextComponent build = TextComponent.builder("What do you want to use as the base?")
|
||||||
.append(newline())
|
.append(newline())
|
||||||
|
@ -8,7 +8,6 @@ import com.boydti.fawe.Fawe;
|
|||||||
import com.boydti.fawe.FaweAPI;
|
import com.boydti.fawe.FaweAPI;
|
||||||
import com.boydti.fawe.beta.SingleFilterBlock;
|
import com.boydti.fawe.beta.SingleFilterBlock;
|
||||||
import com.boydti.fawe.config.BBC;
|
import com.boydti.fawe.config.BBC;
|
||||||
import com.boydti.fawe.config.Commands;
|
|
||||||
import com.boydti.fawe.object.FawePlayer;
|
import com.boydti.fawe.object.FawePlayer;
|
||||||
import com.boydti.fawe.object.RunnableVal;
|
import com.boydti.fawe.object.RunnableVal;
|
||||||
import com.boydti.fawe.object.brush.visualization.cfi.HeightMapMCAGenerator;
|
import com.boydti.fawe.object.brush.visualization.cfi.HeightMapMCAGenerator;
|
||||||
@ -403,7 +402,7 @@ public class CFICommands {
|
|||||||
.append(" - Block textures within a complexity range")
|
.append(" - Block textures within a complexity range")
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append(TextComponent.of("< [Back]").clickEvent(ClickEvent
|
.append(TextComponent.of("< [Back]").clickEvent(ClickEvent
|
||||||
.runCommand("/cfi " + Commands.getAlias(CFICommands.class, "coloring"))))
|
.runCommand("/cfi coloring")))
|
||||||
.build();
|
.build();
|
||||||
fp.toWorldEditPlayer().print(build);
|
fp.toWorldEditPlayer().print(build);
|
||||||
return;
|
return;
|
||||||
@ -813,13 +812,13 @@ public class CFICommands {
|
|||||||
|
|
||||||
//TODO fix this so it can execute commands and show tooltips.
|
//TODO fix this so it can execute commands and show tooltips.
|
||||||
@NonNull Builder builder = TextComponent.builder(">> Current Settings <<").append(newline())
|
@NonNull Builder builder = TextComponent.builder(">> Current Settings <<").append(newline())
|
||||||
.append("Randomization ").append("[" + Boolean.toString(rand).toUpperCase() + "]")//.cmdTip(alias() + " randomization " + (!rand))
|
.append("Randomization ").append("[" + Boolean.toString(rand).toUpperCase() + "]")//.cmdTip("/cfi randomization " + (!rand))
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append("Mask ").append("[" + mask + "]")//.cmdTip(alias() + " mask")
|
.append("Mask ").append("[" + mask + "]")//.cmdTip("/cfi mask")
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append("Blocks ").append("[" + blocks + "]")//.tooltip(blockList).command(alias() + " paletteBlocks")
|
.append("Blocks ").append("[" + blocks + "]")//.tooltip(blockList).command("/cfi paletteBlocks")
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append("BiomePriority ").append("[" + biomePriority + "]")//.cmdTip(alias() + " biomepriority")
|
.append("BiomePriority ").append("[" + biomePriority + "]")//.cmdTip("/cfi biomepriority")
|
||||||
.append(newline());
|
.append(newline());
|
||||||
|
|
||||||
if (settings.image != null) {
|
if (settings.image != null) {
|
||||||
@ -835,16 +834,16 @@ public class CFICommands {
|
|||||||
}
|
}
|
||||||
|
|
||||||
builder.append("Image: ")
|
builder.append("Image: ")
|
||||||
.append("[" + settings.imageArg + "]")//.cmdTip(alias() + " " + Commands.getAlias(CFICommands.class, "image"))
|
.append("[" + settings.imageArg + "]")//.cmdTip("/cfi " + Commands.getAlias(CFICommands.class, "image"))
|
||||||
.append(newline()).append(newline())
|
.append(newline()).append(newline())
|
||||||
.append("Let's Color: ")
|
.append("Let's Color: ")
|
||||||
//.cmdOptions(alias() + " ", colorArgs.toString(), "Biomes", "Blocks", "BlockAndBiome", "Glass")
|
//.cmdOptions("/cfi ", colorArgs.toString(), "Biomes", "Blocks", "BlockAndBiome", "Glass")
|
||||||
.append(newline());
|
.append(newline());
|
||||||
} else {
|
} else {
|
||||||
builder.append(newline()).append("You can color a world using an image like ")
|
builder.append(newline()).append("You can color a world using an image like ")
|
||||||
.append(TextComponent.of("[This]").clickEvent(ClickEvent.openUrl("http://i.imgur.com/vJYinIU.jpg"))).append(newline())
|
.append(TextComponent.of("[This]").clickEvent(ClickEvent.openUrl("http://i.imgur.com/vJYinIU.jpg"))).append(newline())
|
||||||
.append("You MUST provide an image: ")
|
.append("You MUST provide an image: ")
|
||||||
.append("[None]");//.cmdTip(alias() + " " + Commands.getAlias(Command.class, "image")).append(newline());
|
.append("[None]");//.cmdTip("/cfi " + Commands.getAlias(Command.class, "image")).append(newline());
|
||||||
}
|
}
|
||||||
builder.append("< [Back]");//.cmdTip(alias()).send(fp);
|
builder.append("< [Back]");//.cmdTip(alias()).send(fp);
|
||||||
fp.toWorldEditPlayer().print(builder.build());
|
fp.toWorldEditPlayer().print(builder.build());
|
||||||
@ -865,11 +864,9 @@ public class CFICommands {
|
|||||||
settings.maskArg = mask != null ? split[index++] : null;
|
settings.maskArg = mask != null ? split[index++] : null;
|
||||||
settings.whiteOnly = !disableWhiteOnly;
|
settings.whiteOnly = !disableWhiteOnly;
|
||||||
|
|
||||||
StringBuilder cmd = new StringBuilder("/cfi mask ");
|
|
||||||
|
|
||||||
String s = "/cfi mask http://";
|
String s = "/cfi mask http://";
|
||||||
String s1 = "/cfi mask <mask>";
|
String s1 = "/cfi mask <mask>";
|
||||||
String s2 = alias() + " " + settings.getCategory();
|
String s2 = "/cfi " + settings.getCategory();
|
||||||
TextComponent build = TextComponent.builder(">> Current Settings <<")
|
TextComponent build = TextComponent.builder(">> Current Settings <<")
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append("Image Mask ").append(
|
.append("Image Mask ").append(
|
||||||
@ -899,13 +896,13 @@ public class CFICommands {
|
|||||||
settings.pattern = pattern;
|
settings.pattern = pattern;
|
||||||
settings.patternArg = pattern == null ? null : split[index++];
|
settings.patternArg = pattern == null ? null : split[index++];
|
||||||
|
|
||||||
StringBuilder cmd = new StringBuilder(alias() + " pattern ");
|
StringBuilder cmd = new StringBuilder("/cfi pattern ");
|
||||||
|
|
||||||
if (pattern != null) {
|
if (pattern != null) {
|
||||||
settings.getCategory().accept(fp);
|
settings.getCategory().accept(fp);
|
||||||
} else {
|
} else {
|
||||||
String s = cmd + " stone";
|
String s = cmd + " stone";
|
||||||
String s1 = alias() + " " + settings.getCategory();
|
String s1 = "/cfi " + settings.getCategory();
|
||||||
TextComponent build = TextComponent.builder(">> Current Settings <<").append(newline())
|
TextComponent build = TextComponent.builder(">> Current Settings <<").append(newline())
|
||||||
.append("Pattern ").append(TextComponent.of("[Click Here]")
|
.append("Pattern ").append(TextComponent.of("[Click Here]")
|
||||||
.hoverEvent(HoverEvent.showText(TextComponent.of(s)))
|
.hoverEvent(HoverEvent.showText(TextComponent.of(s)))
|
||||||
@ -939,7 +936,7 @@ public class CFICommands {
|
|||||||
desc = "Select an image"
|
desc = "Select an image"
|
||||||
)
|
)
|
||||||
@CommandPermissions("worldedit.anvil.cfi")
|
@CommandPermissions("worldedit.anvil.cfi")
|
||||||
public void image(FawePlayer fp, @Arg(def = "", desc = "image url or filename") ProvideBindings.ImageUri image, InjectedValueAccess context)throws CommandException {
|
public void image(FawePlayer fp, @Arg(desc = "image url or filename", def = "") ProvideBindings.ImageUri image, InjectedValueAccess context)throws CommandException {
|
||||||
CFISettings settings = getSettings(fp);
|
CFISettings settings = getSettings(fp);
|
||||||
String[] split = getArguments(context).split(" ");
|
String[] split = getArguments(context).split(" ");
|
||||||
int index = 2;
|
int index = 2;
|
||||||
@ -978,9 +975,9 @@ public class CFICommands {
|
|||||||
TextComponent build = TextComponent.builder("What would you like to populate?")
|
TextComponent build = TextComponent.builder("What would you like to populate?")
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append("(You will need to type these commands)").append(newline())
|
.append("(You will need to type these commands)").append(newline())
|
||||||
//TODO .cmdOptions(alias() + " ", "", "Ores", "Ore", "Caves", "Schematics", "Smooth")
|
//TODO .cmdOptions("/cfi ", "", "Ores", "Ore", "Caves", "Schematics", "Smooth")
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append(TextComponent.of("< [Back]").clickEvent(ClickEvent.runCommand(alias())))
|
.append(TextComponent.of("< [Back]").clickEvent(ClickEvent.runCommand("/cfi")))
|
||||||
.build();
|
.build();
|
||||||
fp.toWorldEditPlayer().print(build);
|
fp.toWorldEditPlayer().print(build);
|
||||||
}
|
}
|
||||||
@ -1018,39 +1015,39 @@ public class CFICommands {
|
|||||||
maskArgs.append(" -w");
|
maskArgs.append(" -w");
|
||||||
}
|
}
|
||||||
|
|
||||||
String height = Commands.getAlias(CFICommands.class, "height");
|
String height = "/cfi height";
|
||||||
String waterHeight = Commands.getAlias(CFICommands.class, "waterheight");
|
String waterHeight = "/cfi waterheight";
|
||||||
String snow = Commands.getAlias(CFICommands.class, "snow");
|
String snow = "/cfi snow";
|
||||||
|
|
||||||
//TODO
|
//TODO
|
||||||
@NonNull Builder msg = TextComponent.builder(">> Current Settings <<").append(newline())
|
@NonNull Builder msg = TextComponent.builder(">> Current Settings <<").append(newline())
|
||||||
.append("Mask ").append(TextComponent.of("[" + mask + "]")
|
.append("Mask ").append(TextComponent.of("[" + mask + "]")
|
||||||
.hoverEvent(HoverEvent.showText(TextComponent.of(alias() + " mask")))
|
.hoverEvent(HoverEvent.showText(TextComponent.of("/cfi mask")))
|
||||||
.clickEvent(ClickEvent.runCommand(alias() + " mask")))
|
.clickEvent(ClickEvent.runCommand("/cfi mask")))
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append("Pattern ").append(TextComponent.of("[" + pattern + "]")
|
.append("Pattern ").append(TextComponent.of("[" + pattern + "]")
|
||||||
.hoverEvent(HoverEvent.showText(TextComponent.of(alias() + " pattern")))
|
.hoverEvent(HoverEvent.showText(TextComponent.of("/cfi pattern")))
|
||||||
.clickEvent(ClickEvent.runCommand(alias() + " pattern")))
|
.clickEvent(ClickEvent.runCommand("/cfi pattern")))
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append(">> Components <<")
|
.append(">> Components <<")
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append(TextComponent.of("[Height]")
|
.append(TextComponent.of("[Height]")
|
||||||
.hoverEvent(HoverEvent.showText(TextComponent.of(alias() + " " + alias("height") + " 120")))
|
.hoverEvent(HoverEvent.showText(TextComponent.of("/cfi height 120")))
|
||||||
.clickEvent(ClickEvent.suggestCommand(alias() + " " + alias("height") + " 120"))).append(" - Terrain height for whole map")
|
.clickEvent(ClickEvent.suggestCommand("/cfi height 120"))).append(" - Terrain height for whole map")
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append(TextComponent.of("[WaterHeight]")
|
.append(TextComponent.of("[WaterHeight]")
|
||||||
.hoverEvent(HoverEvent.showText(TextComponent.of(alias() + " " + alias("waterheight") + " 60")))
|
.hoverEvent(HoverEvent.showText(TextComponent.of("/cfi waterheight 60")))
|
||||||
.clickEvent(ClickEvent.suggestCommand(alias() + " " + alias("waterheight") + " 60"))).append(" - Sea level for whole map")
|
.clickEvent(ClickEvent.suggestCommand("/cfi waterheight 60"))).append(" - Sea level for whole map")
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append(TextComponent.of("[FloorThickness]").hoverEvent(HoverEvent.showText(TextComponent.of(alias() + " " + alias("floorthickness") + " 60")))
|
.append(TextComponent.of("[FloorThickness]").hoverEvent(HoverEvent.showText(TextComponent.of("/cfi floorthickness 60")))
|
||||||
.clickEvent(ClickEvent.suggestCommand(alias() + " " + alias("floorthickness") + " 60"))).append(" - Floor thickness of entire map")
|
.clickEvent(ClickEvent.suggestCommand("/cfi floorthickness 60"))).append(" - Floor thickness of entire map")
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append(TextComponent.of("[WorldThickness]").hoverEvent(HoverEvent.showText(TextComponent.of(alias() + " " + alias("worldthickness") + " 60")))
|
.append(TextComponent.of("[WorldThickness]").hoverEvent(HoverEvent.showText(TextComponent.of("/cfi worldthickness 60")))
|
||||||
.clickEvent(ClickEvent.suggestCommand(alias() + " " + alias("worldthickness") + " 60"))).append(" - World thickness of entire map")
|
.clickEvent(ClickEvent.suggestCommand("/cfi worldthickness 60"))).append(" - World thickness of entire map")
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append(TextComponent.of("[Snow]").hoverEvent(HoverEvent.showText(TextComponent.of(alias() + " " + alias("snow") + maskArgs)))
|
.append(TextComponent.of("[Snow]").hoverEvent(HoverEvent.showText(TextComponent.of("/cfi snow" + maskArgs)))
|
||||||
.clickEvent(ClickEvent.suggestCommand(alias() + " " + alias("snow") + maskArgs))).append(" - Set snow in the masked areas")
|
.clickEvent(ClickEvent.suggestCommand("/cfi snow" + maskArgs))).append(" - Set snow in the masked areas")
|
||||||
.append(newline());
|
.append(newline());
|
||||||
|
|
||||||
if (pattern != null) {
|
if (pattern != null) {
|
||||||
@ -1067,38 +1064,38 @@ public class CFICommands {
|
|||||||
|
|
||||||
msg
|
msg
|
||||||
.append(TextComponent.of("[WaterId]")
|
.append(TextComponent.of("[WaterId]")
|
||||||
.hoverEvent(HoverEvent.showText(TextComponent.of(alias() + " waterId " + pattern)))
|
.hoverEvent(HoverEvent.showText(TextComponent.of("/cfi waterId " + pattern)))
|
||||||
.clickEvent(ClickEvent.runCommand(alias() + " waterId " + pattern)))
|
.clickEvent(ClickEvent.runCommand("/cfi waterId " + pattern)))
|
||||||
.append(" - Water id for whole map")
|
.append(" - Water id for whole map")
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append(TextComponent.of("[BedrockId]")
|
.append(TextComponent.of("[BedrockId]")
|
||||||
.hoverEvent(HoverEvent.showText(TextComponent.of(alias() + " baseId " + pattern)))
|
.hoverEvent(HoverEvent.showText(TextComponent.of("/cfi baseId " + pattern)))
|
||||||
.clickEvent(ClickEvent.runCommand(alias() + " baseId " + pattern)))
|
.clickEvent(ClickEvent.runCommand("/cfi baseId " + pattern)))
|
||||||
.append(TextComponent.of(" - Bedrock id for whole map"))
|
.append(TextComponent.of(" - Bedrock id for whole map"))
|
||||||
.append(newline())
|
.append(newline())
|
||||||
.append(TextComponent.of("[Floor]")
|
.append(TextComponent.of("[Floor]")
|
||||||
.hoverEvent(HoverEvent.showText(TextComponent.of(alias() + " floor " + compArgs)))
|
.hoverEvent(HoverEvent.showText(TextComponent.of("/cfi floor " + compArgs)))
|
||||||
.clickEvent(ClickEvent.runCommand(alias() + " floor " + compArgs)))
|
.clickEvent(ClickEvent.runCommand("/cfi floor " + compArgs)))
|
||||||
.append(TextComponent.of(" - Set the floor in the masked areas")).append(newline())
|
.append(TextComponent.of(" - Set the floor in the masked areas")).append(newline())
|
||||||
.append(TextComponent.of("[Main]")
|
.append(TextComponent.of("[Main]")
|
||||||
.hoverEvent(HoverEvent.showText(TextComponent.of(alias() + " main " + compArgs)))
|
.hoverEvent(HoverEvent.showText(TextComponent.of("/cfi main " + compArgs)))
|
||||||
.clickEvent(ClickEvent.runCommand(alias() + " main " + compArgs)))
|
.clickEvent(ClickEvent.runCommand("/cfi main " + compArgs)))
|
||||||
.append(TextComponent.of(" - Set the main block in the masked areas")).append(newline())
|
.append(TextComponent.of(" - Set the main block in the masked areas")).append(newline())
|
||||||
.append(TextComponent.of("[Column]").hoverEvent(HoverEvent.showText(TextComponent.of(alias() + " column" + compArgs)))
|
.append(TextComponent.of("[Column]").hoverEvent(HoverEvent.showText(TextComponent.of("/cfi column" + compArgs)))
|
||||||
.clickEvent(ClickEvent.runCommand(alias() + " column" + compArgs))).append(" - Set the columns in the masked areas").append(newline())
|
.clickEvent(ClickEvent.runCommand("/cfi column" + compArgs))).append(" - Set the columns in the masked areas").append(newline())
|
||||||
.append(TextComponent.of("[Overlay]").hoverEvent(HoverEvent.showText(TextComponent.of(alias() + " overlay" + compArgs)))
|
.append(TextComponent.of("[Overlay]").hoverEvent(HoverEvent.showText(TextComponent.of("/cfi overlay" + compArgs)))
|
||||||
.clickEvent(ClickEvent.runCommand(alias() + " overlay" + compArgs))).append(" - Set the overlay in the masked areas").append(newline());
|
.clickEvent(ClickEvent.runCommand("/cfi overlay" + compArgs))).append(" - Set the overlay in the masked areas").append(newline());
|
||||||
}
|
}
|
||||||
|
|
||||||
msg.append(newline())
|
msg.append(newline())
|
||||||
.append(TextComponent.of("< [Back]").hoverEvent(HoverEvent.showText(TextComponent.of(alias()))).clickEvent(ClickEvent.runCommand(alias())));
|
.append(TextComponent.of("< [Back]").hoverEvent(HoverEvent.showText(TextComponent.of("/cfi"))).clickEvent(ClickEvent.runCommand("/cfi")));
|
||||||
fp.toWorldEditPlayer().print(msg.build());
|
fp.toWorldEditPlayer().print(msg.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
private static CFISettings assertSettings(FawePlayer fp) {
|
private static CFISettings assertSettings(FawePlayer fp) {
|
||||||
CFISettings settings = getSettings(fp);
|
CFISettings settings = getSettings(fp);
|
||||||
if (!settings.hasGenerator()) {
|
if (!settings.hasGenerator()) {
|
||||||
throw new StopExecutionException(TextComponent.of("Please use /" + alias()));
|
throw new StopExecutionException(TextComponent.of("Please use /cfi"));
|
||||||
}
|
}
|
||||||
return settings;
|
return settings;
|
||||||
}
|
}
|
||||||
@ -1230,22 +1227,14 @@ public class CFICommands {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static String alias() {
|
|
||||||
return Commands.getAlias(CFICommand.class, "/cfi");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static String alias(String command) {
|
|
||||||
return Commands.getAlias(CFICommands.class, command);
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
protected static void mainMenu(FawePlayer fp) {
|
protected static void mainMenu(FawePlayer fp) {
|
||||||
//TODO
|
//TODO
|
||||||
// msg("What do you want to do now?").append(newline())
|
// msg("What do you want to do now?").append(newline())
|
||||||
// .cmdOptions(alias() + " ", "", "Coloring", "Component", "Populate", "Brush")
|
// .cmdOptions("/cfi ", "", "Coloring", "Component", "Populate", "Brush")
|
||||||
// .append(newline()).text("<> [View]").command(alias() + " " + Commands.getAlias(CFICommands.class, "download")).tooltip("View full resolution image")
|
// .append(newline()).text("<> [View]").command("/cfi " + Commands.getAlias(CFICommands.class, "download")).tooltip("View full resolution image")
|
||||||
// .append(newline()).text(">< [Cancel]").cmdTip(alias() + " " + Commands.getAlias(CFICommands.class, "cancel"))
|
// .append(newline()).text(">< [Cancel]").cmdTip("/cfi " + Commands.getAlias(CFICommands.class, "cancel"))
|
||||||
// .append(newline()).text("&2>> [Done]").cmdTip(alias() + " " + Commands.getAlias(CFICommands.class, "done"))
|
// .append(newline()).text("&2>> [Done]").cmdTip("/cfi " + Commands.getAlias(CFICommands.class, "done"))
|
||||||
// .send(fp);
|
// .send(fp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,6 +16,7 @@ import java.util.EnumSet;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@ -395,7 +396,7 @@ public enum BBC {
|
|||||||
BBC(String defaultMessage, String category) {
|
BBC(String defaultMessage, String category) {
|
||||||
this.defaultMessage = defaultMessage;
|
this.defaultMessage = defaultMessage;
|
||||||
this.translatedMessage = defaultMessage;
|
this.translatedMessage = defaultMessage;
|
||||||
this.category = category.toLowerCase();
|
this.category = category.toLowerCase(Locale.ROOT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String format(Object... args) {
|
public String format(Object... args) {
|
||||||
@ -436,13 +437,13 @@ public enum BBC {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
final String[] split = key.split("\\.");
|
final String[] split = key.split("\\.");
|
||||||
final String node = split[split.length - 1].toUpperCase();
|
final String node = split[split.length - 1].toUpperCase(Locale.ROOT);
|
||||||
final BBC caption = allNames.contains(node) ? valueOf(node) : null;
|
final BBC caption = allNames.contains(node) ? valueOf(node) : null;
|
||||||
if (caption != null) {
|
if (caption != null) {
|
||||||
if (!split[0].equalsIgnoreCase(caption.category)) {
|
if (!split[0].equalsIgnoreCase(caption.category)) {
|
||||||
changed = true;
|
changed = true;
|
||||||
yml.set(key, null);
|
yml.set(key, null);
|
||||||
yml.set(caption.category + "." + caption.name().toLowerCase(), value);
|
yml.set(caption.category + "." + caption.name().toLowerCase(Locale.ROOT), value);
|
||||||
}
|
}
|
||||||
captions.add(caption);
|
captions.add(caption);
|
||||||
caption.translatedMessage = (String) value;
|
caption.translatedMessage = (String) value;
|
||||||
@ -457,7 +458,7 @@ public enum BBC {
|
|||||||
for (BBC caption : all) {
|
for (BBC caption : all) {
|
||||||
if (!captions.contains(caption)) {
|
if (!captions.contains(caption)) {
|
||||||
changed = true;
|
changed = true;
|
||||||
yml.set(caption.category + "." + caption.name().toLowerCase(), caption.defaultMessage);
|
yml.set(caption.category + "." + caption.name().toLowerCase(Locale.ROOT), caption.defaultMessage);
|
||||||
}
|
}
|
||||||
caption.translatedMessage = StringMan.replaceFromMap(caption.translatedMessage, replacements);
|
caption.translatedMessage = StringMan.replaceFromMap(caption.translatedMessage, replacements);
|
||||||
}
|
}
|
||||||
@ -662,7 +663,7 @@ public enum BBC {
|
|||||||
int index = builder.length();
|
int index = builder.length();
|
||||||
if (!Objects.equals(color, newColor)) {
|
if (!Objects.equals(color, newColor)) {
|
||||||
style[0] = newColor;
|
style[0] = newColor;
|
||||||
char code = BBC.getCode(newColor.toUpperCase());
|
char code = BBC.getCode(newColor.toUpperCase(Locale.ROOT));
|
||||||
builder.append('\u00A7').append(code);
|
builder.append('\u00A7').append(code);
|
||||||
}
|
}
|
||||||
for (Map.Entry<String, Object> entry2 : obj.entrySet()) {
|
for (Map.Entry<String, Object> entry2 : obj.entrySet()) {
|
||||||
@ -670,12 +671,12 @@ public enum BBC {
|
|||||||
boolean newValue = Boolean.parseBoolean((String) entry2.getValue());
|
boolean newValue = Boolean.parseBoolean((String) entry2.getValue());
|
||||||
if (properties.put(entry2.getKey(), newValue) != newValue) {
|
if (properties.put(entry2.getKey(), newValue) != newValue) {
|
||||||
if (newValue) {
|
if (newValue) {
|
||||||
char code = BBC.getCode(entry2.getKey().toUpperCase());
|
char code = BBC.getCode(entry2.getKey().toUpperCase(Locale.ROOT));
|
||||||
builder.append('\u00A7').append(code);
|
builder.append('\u00A7').append(code);
|
||||||
} else {
|
} else {
|
||||||
builder.insert(index, '\u00A7').append('r');
|
builder.insert(index, '\u00A7').append('r');
|
||||||
if (Objects.equals(color, newColor) && newColor != null) {
|
if (Objects.equals(color, newColor) && newColor != null) {
|
||||||
builder.append('\u00A7').append(BBC.getCode(newColor.toUpperCase()));
|
builder.append('\u00A7').append(BBC.getCode(newColor.toUpperCase(Locale.ROOT)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,123 +0,0 @@
|
|||||||
package com.boydti.fawe.config;
|
|
||||||
|
|
||||||
import com.boydti.fawe.configuration.ConfigurationSection;
|
|
||||||
import com.boydti.fawe.configuration.file.YamlConfiguration;
|
|
||||||
import com.boydti.fawe.util.StringMan;
|
|
||||||
import org.enginehub.piston.annotation.Command;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.lang.annotation.Annotation;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
public class Commands {
|
|
||||||
|
|
||||||
private static YamlConfiguration cmdConfig;
|
|
||||||
private static File cmdFile;
|
|
||||||
|
|
||||||
public static void load(File file) {
|
|
||||||
cmdFile = file;
|
|
||||||
try {
|
|
||||||
if (!file.exists()) {
|
|
||||||
file.getParentFile().mkdirs();
|
|
||||||
file.createNewFile();
|
|
||||||
}
|
|
||||||
cmdConfig = YamlConfiguration.loadConfiguration(file);
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Command translate(Class clazz, final Command command) {
|
|
||||||
if (cmdConfig == null || command instanceof TranslatedCommand) {
|
|
||||||
return command;
|
|
||||||
}
|
|
||||||
return new TranslatedCommand(clazz.getSimpleName(), command);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String getAlias(Class clazz, String command) {
|
|
||||||
if (cmdConfig == null) {
|
|
||||||
return command;
|
|
||||||
}
|
|
||||||
List<String> aliases = cmdConfig.getStringList(clazz + "." + command + ".aliases");
|
|
||||||
if (aliases == null) {
|
|
||||||
aliases = cmdConfig.getStringList(command + ".aliases");
|
|
||||||
}
|
|
||||||
return (aliases == null || aliases.isEmpty()) ? command : aliases.get(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class TranslatedCommand implements Command {
|
|
||||||
private final String name;
|
|
||||||
private final String[] aliases;
|
|
||||||
private final String desc;
|
|
||||||
private final String descFooter;
|
|
||||||
private final Command command;
|
|
||||||
|
|
||||||
public TranslatedCommand(String clazz, Command command) {
|
|
||||||
String id = command.aliases()[0];
|
|
||||||
ConfigurationSection commands;
|
|
||||||
if (cmdConfig.contains(clazz + "." + id) || !cmdConfig.contains(id)) {
|
|
||||||
commands = cmdConfig.getConfigurationSection(clazz + "." + id);
|
|
||||||
} else {
|
|
||||||
commands = cmdConfig.getConfigurationSection(id);
|
|
||||||
}
|
|
||||||
boolean set = false;
|
|
||||||
if (commands == null) {
|
|
||||||
set = (commands = cmdConfig.createSection(clazz + "." + id)) != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
HashMap<String, Object> options = new HashMap<>();
|
|
||||||
options.put("name", command.name());
|
|
||||||
options.put("aliases", new ArrayList<>(Arrays.asList(command.aliases())));
|
|
||||||
options.put("help", command.desc());
|
|
||||||
options.put("desc", command.descFooter());
|
|
||||||
for (Map.Entry<String, Object> entry : options.entrySet()) {
|
|
||||||
String key = entry.getKey();
|
|
||||||
if (!commands.contains(key)) {
|
|
||||||
commands.set(key, entry.getValue());
|
|
||||||
set = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (set) {
|
|
||||||
try {
|
|
||||||
cmdConfig.save(cmdFile);
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.name = commands.getString("name");
|
|
||||||
this.aliases = commands.getStringList("aliases").toArray(new String[0]);
|
|
||||||
this.desc = commands.getString("help");
|
|
||||||
this.descFooter = commands.getString("desc");
|
|
||||||
this.command = command;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Class<? extends Annotation> annotationType() {
|
|
||||||
return this.command.annotationType();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String name() {
|
|
||||||
return name;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String[] aliases() {
|
|
||||||
return aliases;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String desc() {
|
|
||||||
return desc;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String descFooter() {
|
|
||||||
return descFooter;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,6 +1,5 @@
|
|||||||
package com.boydti.fawe.object;
|
package com.boydti.fawe.object;
|
||||||
|
|
||||||
import com.boydti.fawe.beta.FilterBlock;
|
|
||||||
import com.boydti.fawe.object.extent.ExtentHeightCacher;
|
import com.boydti.fawe.object.extent.ExtentHeightCacher;
|
||||||
import com.sk89q.worldedit.WorldEditException;
|
import com.sk89q.worldedit.WorldEditException;
|
||||||
import com.sk89q.worldedit.extent.Extent;
|
import com.sk89q.worldedit.extent.Extent;
|
||||||
@ -11,7 +10,7 @@ import com.sk89q.worldedit.world.block.BlockState;
|
|||||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||||
|
|
||||||
public class DataAnglePattern extends AbstractPattern {
|
public class DataAnglePattern extends AbstractPattern {
|
||||||
public final double FACTOR;
|
public final double factor;
|
||||||
public final Extent extent;
|
public final Extent extent;
|
||||||
public final int maxY;
|
public final int maxY;
|
||||||
public final int distance;
|
public final int distance;
|
||||||
@ -20,7 +19,7 @@ public class DataAnglePattern extends AbstractPattern {
|
|||||||
this.extent = new ExtentHeightCacher(extent);
|
this.extent = new ExtentHeightCacher(extent);
|
||||||
this.maxY = extent.getMaximumPoint().getBlockY();
|
this.maxY = extent.getMaximumPoint().getBlockY();
|
||||||
this.distance = distance;
|
this.distance = distance;
|
||||||
this.FACTOR = (1D / distance) * (1D / 255);
|
this.factor = (1D / distance) * (1D / 255);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getSlope(BlockStateHolder block, BlockVector3 vector, Extent extent) {
|
public int getSlope(BlockStateHolder block, BlockVector3 vector, Extent extent) {
|
||||||
|
@ -24,7 +24,6 @@ import com.boydti.fawe.util.image.Drawable;
|
|||||||
import com.boydti.fawe.util.image.ImageViewer;
|
import com.boydti.fawe.util.image.ImageViewer;
|
||||||
import com.sk89q.worldedit.EditSession;
|
import com.sk89q.worldedit.EditSession;
|
||||||
import com.sk89q.worldedit.LocalSession;
|
import com.sk89q.worldedit.LocalSession;
|
||||||
import com.sk89q.worldedit.MaxChangedBlocksException;
|
|
||||||
import com.sk89q.worldedit.WorldEditException;
|
import com.sk89q.worldedit.WorldEditException;
|
||||||
import com.sk89q.worldedit.blocks.BaseItemStack;
|
import com.sk89q.worldedit.blocks.BaseItemStack;
|
||||||
import com.sk89q.worldedit.extent.clipboard.Clipboard;
|
import com.sk89q.worldedit.extent.clipboard.Clipboard;
|
||||||
@ -42,7 +41,6 @@ import com.sk89q.worldedit.regions.Region;
|
|||||||
import com.sk89q.worldedit.registry.state.PropertyKey;
|
import com.sk89q.worldedit.registry.state.PropertyKey;
|
||||||
import com.sk89q.worldedit.session.ClipboardHolder;
|
import com.sk89q.worldedit.session.ClipboardHolder;
|
||||||
import com.sk89q.worldedit.util.Location;
|
import com.sk89q.worldedit.util.Location;
|
||||||
import com.sk89q.worldedit.util.TreeGenerator;
|
|
||||||
import com.sk89q.worldedit.world.biome.BiomeType;
|
import com.sk89q.worldedit.world.biome.BiomeType;
|
||||||
import com.sk89q.worldedit.world.biome.BiomeTypes;
|
import com.sk89q.worldedit.world.biome.BiomeTypes;
|
||||||
import com.sk89q.worldedit.world.block.BlockID;
|
import com.sk89q.worldedit.world.block.BlockID;
|
||||||
@ -50,8 +48,6 @@ import com.sk89q.worldedit.world.block.BlockState;
|
|||||||
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
import com.sk89q.worldedit.world.block.BlockStateHolder;
|
||||||
import com.sk89q.worldedit.world.block.BlockType;
|
import com.sk89q.worldedit.world.block.BlockType;
|
||||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
@ -62,6 +58,7 @@ import java.util.Arrays;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.concurrent.ThreadLocalRandom;
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
// TODO FIXME
|
// TODO FIXME
|
||||||
public class HeightMapMCAGenerator extends MCAWriter implements StreamChange, Drawable, VirtualWorld {
|
public class HeightMapMCAGenerator extends MCAWriter implements StreamChange, Drawable, VirtualWorld {
|
||||||
@ -139,7 +136,9 @@ public class HeightMapMCAGenerator extends MCAWriter implements StreamChange, Dr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
resetPrimtives();
|
resetPrimtives();
|
||||||
} catch (Throwable neverHappens) { neverHappens.printStackTrace(); }
|
} catch (Throwable neverHappens) {
|
||||||
|
neverHappens.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
blocks.flushChanges(out);
|
blocks.flushChanges(out);
|
||||||
}
|
}
|
||||||
@ -171,7 +170,9 @@ public class HeightMapMCAGenerator extends MCAWriter implements StreamChange, Dr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
resetPrimtives();
|
resetPrimtives();
|
||||||
} catch (Throwable neverHappens) { neverHappens.printStackTrace(); }
|
} catch (Throwable neverHappens) {
|
||||||
|
neverHappens.printStackTrace();
|
||||||
|
}
|
||||||
blocks.undoChanges(in);
|
blocks.undoChanges(in);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -191,7 +192,9 @@ public class HeightMapMCAGenerator extends MCAWriter implements StreamChange, Dr
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
resetPrimtives();
|
resetPrimtives();
|
||||||
} catch (Throwable neverHappens) { neverHappens.printStackTrace(); }
|
} catch (Throwable neverHappens) {
|
||||||
|
neverHappens.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
blocks.clearChanges(); // blocks.redoChanges(in); Unsupported
|
blocks.clearChanges(); // blocks.redoChanges(in); Unsupported
|
||||||
}
|
}
|
||||||
|
@ -69,8 +69,7 @@ public class ObjObjMap<K, V> {
|
|||||||
|
|
||||||
// if ( k == FREE_KEY )
|
// if ( k == FREE_KEY )
|
||||||
// return null; //end of chain already
|
// return null; //end of chain already
|
||||||
if (k == key) //we check FREE and REMOVED prior to this call
|
if (k == key) {//we check FREE and REMOVED prior to this call
|
||||||
{
|
|
||||||
return (V) m_data[ptr + 1];
|
return (V) m_data[ptr + 1];
|
||||||
}
|
}
|
||||||
while (true) {
|
while (true) {
|
||||||
|
@ -51,6 +51,7 @@ import java.io.Serializable;
|
|||||||
* @version 1.0, 2009-03-17
|
* @version 1.0, 2009-03-17
|
||||||
* @since 1.6
|
* @since 1.6
|
||||||
*/
|
*/
|
||||||
|
@SuppressWarnings("ALL")
|
||||||
public class SparseBitSet implements Cloneable, Serializable
|
public class SparseBitSet implements Cloneable, Serializable
|
||||||
{
|
{
|
||||||
/* My apologies for listing all the additional authors, but concepts, code,
|
/* My apologies for listing all the additional authors, but concepts, code,
|
||||||
|
@ -19,7 +19,7 @@ public class AngleColorPattern extends DataAnglePattern {
|
|||||||
|
|
||||||
public int getColor(int color, int slope) {
|
public int getColor(int color, int slope) {
|
||||||
if (slope == 0) return color;
|
if (slope == 0) return color;
|
||||||
double newFactor = (1 - Math.min(1, slope * FACTOR));
|
double newFactor = (1 - Math.min(1, slope * factor));
|
||||||
int newRed = (int) (((color >> 16) & 0xFF) * newFactor);
|
int newRed = (int) (((color >> 16) & 0xFF) * newFactor);
|
||||||
int newGreen = (int) (((color >> 8) & 0xFF) * newFactor);
|
int newGreen = (int) (((color >> 8) & 0xFF) * newFactor);
|
||||||
int newBlue = (int) (((color >> 0) & 0xFF) * newFactor);
|
int newBlue = (int) (((color >> 0) & 0xFF) * newFactor);
|
||||||
|
@ -412,17 +412,17 @@ public class MainUtil {
|
|||||||
con.setDoOutput(true);
|
con.setDoOutput(true);
|
||||||
con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
|
con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
|
||||||
try (OutputStream output = con.getOutputStream(); PrintWriter writer = new PrintWriter(new OutputStreamWriter(output, StandardCharsets.UTF_8), true)) {
|
try (OutputStream output = con.getOutputStream(); PrintWriter writer = new PrintWriter(new OutputStreamWriter(output, StandardCharsets.UTF_8), true)) {
|
||||||
String CRLF = "\r\n";
|
String crlf = "\r\n";
|
||||||
writer.append("--" + boundary).append(CRLF);
|
writer.append("--" + boundary).append(crlf);
|
||||||
writer.append("Content-Disposition: form-data; name=\"param\"").append(CRLF);
|
writer.append("Content-Disposition: form-data; name=\"param\"").append(crlf);
|
||||||
writer.append("Content-Type: text/plain; charset=" + StandardCharsets.UTF_8.displayName()).append(CRLF);
|
writer.append("Content-Type: text/plain; charset=" + StandardCharsets.UTF_8.displayName()).append(crlf);
|
||||||
String param = "value";
|
String param = "value";
|
||||||
writer.append(CRLF).append(param).append(CRLF).flush();
|
writer.append(crlf).append(param).append(crlf).flush();
|
||||||
writer.append("--" + boundary).append(CRLF);
|
writer.append("--" + boundary).append(crlf);
|
||||||
writer.append("Content-Disposition: form-data; name=\"schematicFile\"; filename=\"" + filename + '"').append(CRLF);
|
writer.append("Content-Disposition: form-data; name=\"schematicFile\"; filename=\"" + filename + '"').append(crlf);
|
||||||
writer.append("Content-Type: " + URLConnection.guessContentTypeFromName(filename)).append(CRLF);
|
writer.append("Content-Type: " + URLConnection.guessContentTypeFromName(filename)).append(crlf);
|
||||||
writer.append("Content-Transfer-Encoding: binary").append(CRLF);
|
writer.append("Content-Transfer-Encoding: binary").append(crlf);
|
||||||
writer.append(CRLF).flush();
|
writer.append(crlf).flush();
|
||||||
OutputStream nonClosable = new AbstractDelegateOutputStream(new BufferedOutputStream(output)) {
|
OutputStream nonClosable = new AbstractDelegateOutputStream(new BufferedOutputStream(output)) {
|
||||||
@Override
|
@Override
|
||||||
public void close() {
|
public void close() {
|
||||||
@ -431,8 +431,8 @@ public class MainUtil {
|
|||||||
writeTask.value = nonClosable;
|
writeTask.value = nonClosable;
|
||||||
writeTask.run();
|
writeTask.run();
|
||||||
nonClosable.flush();
|
nonClosable.flush();
|
||||||
writer.append(CRLF).flush();
|
writer.append(crlf).flush();
|
||||||
writer.append("--" + boundary + "--").append(CRLF).flush();
|
writer.append("--" + boundary + "--").append(crlf).flush();
|
||||||
}
|
}
|
||||||
int responseCode = ((HttpURLConnection) con).getResponseCode();
|
int responseCode = ((HttpURLConnection) con).getResponseCode();
|
||||||
String content;
|
String content;
|
||||||
|
@ -2,7 +2,6 @@ package com.sk89q.worldedit.command;
|
|||||||
|
|
||||||
import com.boydti.fawe.Fawe;
|
import com.boydti.fawe.Fawe;
|
||||||
import com.boydti.fawe.config.BBC;
|
import com.boydti.fawe.config.BBC;
|
||||||
import com.boydti.fawe.config.Commands;
|
|
||||||
import com.boydti.fawe.object.brush.BrushSettings;
|
import com.boydti.fawe.object.brush.BrushSettings;
|
||||||
import com.boydti.fawe.object.brush.TargetMode;
|
import com.boydti.fawe.object.brush.TargetMode;
|
||||||
import com.boydti.fawe.object.brush.scroll.ScrollAction;
|
import com.boydti.fawe.object.brush.scroll.ScrollAction;
|
||||||
@ -139,7 +138,7 @@ public class BrushOptionsCommands {
|
|||||||
public void list(Actor actor, InjectedValueAccess args,
|
public void list(Actor actor, InjectedValueAccess args,
|
||||||
@ArgFlag(name = 'p', desc = "Prints the requested page", def = "0")
|
@ArgFlag(name = 'p', desc = "Prints the requested page", def = "0")
|
||||||
int page) throws WorldEditException {
|
int page) throws WorldEditException {
|
||||||
String baseCmd = Commands.getAlias(BrushCommands.class, "brush") + " " + Commands.getAlias(BrushOptionsCommands.class, "loadbrush");
|
String baseCmd = "/brush loadbrush";
|
||||||
File dir = MainUtil.getFile(Fawe.imp().getDirectory(), "brushes");
|
File dir = MainUtil.getFile(Fawe.imp().getDirectory(), "brushes");
|
||||||
UtilityCommands.list(dir, actor, args, page, null, true, baseCmd);
|
UtilityCommands.list(dir, actor, args, page, null, true, baseCmd);
|
||||||
// new RunnableVal2<Message, String[]>() {
|
// new RunnableVal2<Message, String[]>() {
|
||||||
|
@ -1,66 +1,16 @@
|
|||||||
package com.sk89q.worldedit.command;
|
package com.sk89q.worldedit.command;
|
||||||
|
|
||||||
import com.boydti.fawe.config.Commands;
|
|
||||||
import com.sk89q.worldedit.command.argument.Arguments;
|
import com.sk89q.worldedit.command.argument.Arguments;
|
||||||
import org.enginehub.piston.annotation.Command;
|
import java.util.Optional;
|
||||||
import org.enginehub.piston.inject.InjectedValueAccess;
|
import org.enginehub.piston.inject.InjectedValueAccess;
|
||||||
import com.sk89q.worldedit.command.util.CommandPermissions;
|
|
||||||
import com.sk89q.worldedit.WorldEdit;
|
|
||||||
import org.enginehub.piston.inject.Key;
|
import org.enginehub.piston.inject.Key;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
|
||||||
|
|
||||||
public class MethodCommands {
|
public class MethodCommands {
|
||||||
public static Command getCommand() {
|
|
||||||
try {
|
|
||||||
StackTraceElement[] stack = new Exception().getStackTrace();
|
|
||||||
for (StackTraceElement elem : stack) {
|
|
||||||
Class<?> clazz = Class.forName(elem.getClassName());
|
|
||||||
for (Method method : clazz.getMethods()) {
|
|
||||||
if (method.getName().equals(elem.getMethodName())) {
|
|
||||||
Command command = method.getAnnotation(Command.class);
|
|
||||||
if (command != null) return Commands.translate(clazz, command);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Throwable e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String getArguments(InjectedValueAccess context) {
|
public static String getArguments(InjectedValueAccess context) {
|
||||||
if (context == null) return null;
|
if (context == null) return null;
|
||||||
Optional<Arguments> arguments = context.injectedValue(Key.of(Arguments.class));
|
Optional<Arguments> arguments = context.injectedValue(Key.of(Arguments.class));
|
||||||
if (arguments.isPresent()) {
|
return arguments.map(Arguments::get).orElse(null);
|
||||||
return arguments.get().get();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String[] getPermissions(InjectedValueAccess context) {
|
|
||||||
CommandPermissions cmdPerms = context.injectedValue(Key.of(CommandPermissions.class)).orElse(null);
|
|
||||||
if (cmdPerms != null) {
|
|
||||||
return cmdPerms.value();
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
StackTraceElement[] stack = new Exception().getStackTrace();
|
|
||||||
for (StackTraceElement elem : stack) {
|
|
||||||
Class<?> clazz = Class.forName(elem.getClassName());
|
|
||||||
for (Method method : clazz.getMethods()) {
|
|
||||||
if (method.getName().equals(elem.getMethodName())) {
|
|
||||||
CommandPermissions perm = method.getAnnotation(CommandPermissions.class);
|
|
||||||
if (perm != null) return perm.value();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Throwable e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
return new String[0];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,7 @@ import com.boydti.fawe.command.AnvilCommands;
|
|||||||
import com.boydti.fawe.command.AnvilCommandsRegistration;
|
import com.boydti.fawe.command.AnvilCommandsRegistration;
|
||||||
import com.boydti.fawe.command.CFICommand;
|
import com.boydti.fawe.command.CFICommand;
|
||||||
import com.boydti.fawe.command.CFICommands;
|
import com.boydti.fawe.command.CFICommands;
|
||||||
|
import com.boydti.fawe.command.CFICommandsRegistration;
|
||||||
import com.boydti.fawe.config.BBC;
|
import com.boydti.fawe.config.BBC;
|
||||||
import com.boydti.fawe.config.Settings;
|
import com.boydti.fawe.config.Settings;
|
||||||
import com.boydti.fawe.object.FawePlayer;
|
import com.boydti.fawe.object.FawePlayer;
|
||||||
@ -45,6 +46,7 @@ import com.sk89q.worldedit.command.BiomeCommandsRegistration;
|
|||||||
import com.sk89q.worldedit.command.BrushCommands;
|
import com.sk89q.worldedit.command.BrushCommands;
|
||||||
import com.sk89q.worldedit.command.BrushCommandsRegistration;
|
import com.sk89q.worldedit.command.BrushCommandsRegistration;
|
||||||
import com.sk89q.worldedit.command.BrushOptionsCommands;
|
import com.sk89q.worldedit.command.BrushOptionsCommands;
|
||||||
|
import com.sk89q.worldedit.command.BrushOptionsCommandsRegistration;
|
||||||
import com.sk89q.worldedit.command.ChunkCommands;
|
import com.sk89q.worldedit.command.ChunkCommands;
|
||||||
import com.sk89q.worldedit.command.ChunkCommandsRegistration;
|
import com.sk89q.worldedit.command.ChunkCommandsRegistration;
|
||||||
import com.sk89q.worldedit.command.ClipboardCommands;
|
import com.sk89q.worldedit.command.ClipboardCommands;
|
||||||
@ -359,6 +361,13 @@ public final class PlatformCommandManager {
|
|||||||
WorldEditCommandsRegistration.builder(),
|
WorldEditCommandsRegistration.builder(),
|
||||||
new WorldEditCommands(worldEdit)
|
new WorldEditCommands(worldEdit)
|
||||||
);
|
);
|
||||||
|
registerSubCommands(
|
||||||
|
"cfi",
|
||||||
|
ImmutableList.of(),
|
||||||
|
"CFI commands",
|
||||||
|
CFICommandsRegistration.builder(),
|
||||||
|
new CFICommands(worldEdit)
|
||||||
|
);
|
||||||
registerSubCommands(
|
registerSubCommands(
|
||||||
"/anvil",
|
"/anvil",
|
||||||
ImmutableList.of(),
|
ImmutableList.of(),
|
||||||
@ -404,7 +413,7 @@ public final class PlatformCommandManager {
|
|||||||
);
|
);
|
||||||
this.registration.register(
|
this.registration.register(
|
||||||
new CFICommand(commandManager),
|
new CFICommand(commandManager),
|
||||||
CFICommands.builder(),
|
CFICommandsRegistration.builder(),
|
||||||
new CFICommands(worldEdit)
|
new CFICommands(worldEdit)
|
||||||
);
|
);
|
||||||
this.registration.register(
|
this.registration.register(
|
||||||
|
@ -351,8 +351,7 @@ public class PrimitiveBindings extends Bindings {
|
|||||||
* @param modifiers the list of modifiers to scan
|
* @param modifiers the list of modifiers to scan
|
||||||
* @throws InputParseException on a validation error
|
* @throws InputParseException on a validation error
|
||||||
*/
|
*/
|
||||||
private static void validate(double number, Annotation[] modifiers)
|
private static void validate(double number, Annotation[] modifiers) {
|
||||||
{
|
|
||||||
for (Annotation modifier : modifiers) {
|
for (Annotation modifier : modifiers) {
|
||||||
if (modifier instanceof Range) {
|
if (modifier instanceof Range) {
|
||||||
Range range = (Range) modifier;
|
Range range = (Range) modifier;
|
||||||
|
@ -620,18 +620,18 @@ public class CuboidRegion extends AbstractRegion implements FlatRegion {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void filter(final IChunk chunk, final Filter filter, ChunkFilterBlock block, final IChunkGet get, final IChunkSet set) {
|
public void filter(final IChunk chunk, final Filter filter, ChunkFilterBlock block, final IChunkGet get, final IChunkSet set) {
|
||||||
int X = chunk.getX();
|
int x = chunk.getX();
|
||||||
int Z = chunk.getZ();
|
int z = chunk.getZ();
|
||||||
block = block.init(X, Z, get);
|
block = block.init(x, z, get);
|
||||||
|
|
||||||
if ((minX + 15) >> 4 <= X && (maxX - 15) >> 4 >= X && (minZ + 15) >> 4 <= Z && (maxZ - 15) >> 4 >= Z) {
|
if ((minX + 15) >> 4 <= x && (maxX - 15) >> 4 >= x && (minZ + 15) >> 4 <= z && (maxZ - 15) >> 4 >= z) {
|
||||||
filter(chunk, filter, block, get, set, minY, maxY);
|
filter(chunk, filter, block, get, set, minY, maxY);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int localMinX = Math.max(minX, X << 4) & 15;
|
int localMinX = Math.max(minX, x << 4) & 15;
|
||||||
int localMaxX = Math.min(maxX, 15 + X << 4) & 15;
|
int localMaxX = Math.min(maxX, 15 + x << 4) & 15;
|
||||||
int localMinZ = Math.max(minZ, Z << 4) & 15;
|
int localMinZ = Math.max(minZ, z << 4) & 15;
|
||||||
int localMaxZ = Math.min(maxZ, 15 + Z << 4) & 15;
|
int localMaxZ = Math.min(maxZ, 15 + z << 4) & 15;
|
||||||
|
|
||||||
int yStart = (minY & 15);
|
int yStart = (minY & 15);
|
||||||
int yEnd = (maxY & 15);
|
int yEnd = (maxY & 15);
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren