122 lines
2.8 KiB
Java
122 lines
2.8 KiB
Java
/**
|
|
*
|
|
*/
|
|
package cn.citycraft.SimpleEssential.command;
|
|
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.Location;
|
|
import org.bukkit.Material;
|
|
import org.bukkit.command.CommandException;
|
|
import org.bukkit.command.CommandSender;
|
|
import org.bukkit.entity.Player;
|
|
|
|
import cn.citycraft.SimpleEssential.SimpleEssential;
|
|
|
|
/**
|
|
* @author 蒋天蓓 2015年8月12日下午2:04:05
|
|
*/
|
|
public class CommandEnchantBench extends BaseCommand {
|
|
SimpleEssential plugin;
|
|
|
|
/**
|
|
* @param name
|
|
*/
|
|
public CommandEnchantBench(SimpleEssential main) {
|
|
super("enchantbench", "seenchantbench", "eb", "seeb");
|
|
this.plugin = main;
|
|
}
|
|
|
|
protected void clearEnchatRange(Location loc) {
|
|
setRange(loc, Material.AIR);
|
|
loc.getBlock().setType(Material.AIR);
|
|
};
|
|
|
|
@Override
|
|
public void execute(CommandSender sender, String label, String[] args) throws CommandException {
|
|
Player p = (Player) sender;
|
|
final Location loc = p.getLocation();
|
|
switch (args.length) {
|
|
case 0:
|
|
setEnchatRange(loc);
|
|
p.openEnchanting(loc.clone().add(0, 255, 0), true);
|
|
Bukkit.getScheduler().runTaskLater(plugin, new Runnable() {
|
|
|
|
@Override
|
|
public void run() {
|
|
clearEnchatRange(loc);
|
|
}
|
|
|
|
}, 200);
|
|
break;
|
|
case 1:
|
|
switch (args[0]) {
|
|
case "set":
|
|
setEnchatRange(loc);
|
|
break;
|
|
case "clear":
|
|
clearEnchatRange(loc);
|
|
break;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public int getMinimumArguments() {
|
|
return 0;
|
|
}
|
|
|
|
@Override
|
|
public String getPossibleArguments() {
|
|
return "";
|
|
}
|
|
|
|
@Override
|
|
public boolean isOnlyPlayerExecutable() {
|
|
return true;
|
|
}
|
|
|
|
protected void setBlock(Location loc, int x, int y, int z, Material ma) {
|
|
new Location(loc.getWorld(), loc.getBlockX() + x, loc.getBlockY() + y + 255, loc.getBlockZ() + z).getBlock().setType(ma);
|
|
}
|
|
|
|
protected void setEnchatRange(Location loc) {
|
|
setRange(loc, Material.BOOKSHELF);
|
|
loc.getBlock().setType(Material.ENCHANTMENT_TABLE);
|
|
}
|
|
|
|
protected void setRange(Location loc, Material ma) {
|
|
for (int i = -2; i < 3; i++) {
|
|
for (int j = 0; j < 3; j++) {
|
|
for (int k = -2; k < 3; k++) {
|
|
if (i != 0 && j != 0) {
|
|
setBlock(loc, i, j, k, ma);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// setBlock(loc, -2, 0, -2, ma);
|
|
// setBlock(loc, -2, 1, -1, ma);
|
|
// setBlock(loc, -2, 0, 1, ma);
|
|
// setBlock(loc, -1, 0, 2, ma);
|
|
//
|
|
// setBlock(loc, 2, 0, 2, ma);
|
|
// setBlock(loc, 2, 1, 2, ma);
|
|
// setBlock(loc, 1, 0, 2, ma);
|
|
// setBlock(loc, 2, 0, 1, ma);
|
|
//
|
|
// setBlock(loc, -2, 0, -2, ma);
|
|
// setBlock(loc, -2, 1, -2, ma);
|
|
// setBlock(loc, -1, 0, -2, ma);
|
|
// setBlock(loc, -2, 0, -1, ma);
|
|
//
|
|
// setBlock(loc, 2, 0, -2, ma);
|
|
// setBlock(loc, 2, 1, -2, ma);
|
|
// setBlock(loc, 1, 0, -2, ma);
|
|
// setBlock(loc, 2, 0, -1, ma);
|
|
}
|
|
}
|