108 lines
4.5 KiB
Java
108 lines
4.5 KiB
Java
package com.boydti.fawe.bukkit.favs;
|
|
|
|
import com.boydti.fawe.Fawe;
|
|
import com.boydti.fawe.bukkit.BukkitCommand;
|
|
import com.boydti.fawe.object.FaweCommand;
|
|
import com.boydti.fawe.object.FawePlayer;
|
|
import com.boydti.fawe.util.Jars;
|
|
import com.boydti.fawe.util.MainUtil;
|
|
import com.boydti.fawe.bukkit.favs.Metrics;
|
|
import com.thevoxelbox.voxelsniper.RangeBlockHelper;
|
|
import com.thevoxelbox.voxelsniper.SnipeData;
|
|
import com.thevoxelbox.voxelsniper.Sniper;
|
|
import com.thevoxelbox.voxelsniper.brush.WarpBrush;
|
|
import com.thevoxelbox.voxelsniper.brush.perform.PerformBrush;
|
|
import com.thevoxelbox.voxelsniper.command.VoxelVoxelCommand;
|
|
import com.thevoxelbox.voxelsniper.event.SniperBrushChangedEvent;
|
|
import com.thevoxelbox.voxelsniper.event.SniperMaterialChangedEvent;
|
|
import java.io.File;
|
|
import java.io.FileOutputStream;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.command.Command;
|
|
import org.bukkit.command.CommandSender;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
|
|
public class Favs extends JavaPlugin {
|
|
|
|
private static final int BSTATS_ID = 6405;
|
|
|
|
@Override
|
|
public void onEnable() {
|
|
try {
|
|
if (Bukkit.getPluginManager().getPlugin("VoxelSniper") == null) {
|
|
try {
|
|
File thisFile = MainUtil.getJarFile();
|
|
String thisName = thisFile.getName().toLowerCase();
|
|
File output = null;
|
|
for (File file : getDataFolder().getParentFile().listFiles()) {
|
|
String name = file.getName().toLowerCase();
|
|
if (name.endsWith(".jar") && name.contains("voxelsniper") && !name.contains("fastasyncvoxelsniper")) {
|
|
output = file;
|
|
break;
|
|
}
|
|
}
|
|
if (output == null) {
|
|
output = new File(this.getDataFolder().getParentFile(), "VoxelSniper.jar");
|
|
byte[] vsJar = Jars.VS_B_5_171_0.download();
|
|
try (FileOutputStream fos = new FileOutputStream(output)) {
|
|
fos.write(vsJar);
|
|
}
|
|
}
|
|
Bukkit.getPluginManager().loadPlugin(output);
|
|
} catch (Throwable e) {
|
|
e.printStackTrace();
|
|
Fawe.debug("====== INSTALL VOXELSNIPER ======");
|
|
Fawe.debug("FAVS requires VoxelSniper to function correctly");
|
|
Fawe.debug("Info: https://github.com/boy0001/FastAsyncWorldedit/releases/");
|
|
Fawe.debug("===============================");
|
|
return;
|
|
}
|
|
}
|
|
SnipeData.inject();
|
|
Sniper.inject();
|
|
VoxelVoxelCommand.inject();
|
|
PerformBrush.inject();
|
|
RangeBlockHelper.inject();
|
|
SniperBrushChangedEvent.inject();
|
|
SniperMaterialChangedEvent.inject();
|
|
|
|
// Enable metrics
|
|
new Metrics(this, BSTATS_ID);
|
|
|
|
WarpBrush.inject(); // Fixes for async tp
|
|
// Forward the commands so //p and //d will work
|
|
setupCommand("/p", new FaweCommand("voxelsniper.sniper") {
|
|
@Override
|
|
public boolean execute(FawePlayer fp, String... args) {
|
|
Player player = (Player) fp.parent;
|
|
return (Bukkit.getPluginManager().getPlugin("VoxelSniper")).onCommand(player, new Command("p") {
|
|
@Override
|
|
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
|
|
return false;
|
|
}
|
|
}, null, args);
|
|
|
|
}
|
|
});
|
|
setupCommand("/d", new FaweCommand("voxelsniper.sniper") {
|
|
@Override
|
|
public boolean execute(FawePlayer fp, String... args) {
|
|
Player player = (Player) fp.parent;
|
|
return (Bukkit.getPluginManager().getPlugin("VoxelSniper")).onCommand(player, new Command("d") {
|
|
@Override
|
|
public boolean execute(CommandSender sender, String commandLabel, String[] args) {
|
|
return false;
|
|
}
|
|
}, null, args);
|
|
|
|
}
|
|
});
|
|
} catch (Throwable ignore) {}
|
|
}
|
|
|
|
public void setupCommand(final String label, final FaweCommand cmd) {
|
|
this.getCommand(label).setExecutor(new BukkitCommand(cmd));
|
|
}
|
|
}
|