package cn.citycraft.CarryEnchantBench; import java.util.ArrayList; import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.plugin.java.JavaPlugin; /** * 随身附魔台主类 * * @author 蒋天蓓 2015年8月24日下午3:48:42 */ public class CarryEnchantBench extends JavaPlugin implements Listener { Location loc = null; List setList = new ArrayList<>(); @EventHandler public void onClick(final PlayerInteractEvent e) { final Block b = e.getClickedBlock(); final Player p = e.getPlayer(); if (setList.contains(p.getName())) { if (b.getType() == Material.ENCHANTMENT_TABLE) { loc = b.getLocation(); this.getConfig().set("Location.World", loc.getWorld().getName()); this.getConfig().set("Location.X", loc.getBlockX()); this.getConfig().set("Location.Y", loc.getBlockY()); this.getConfig().set("Location.Z", loc.getBlockZ()); this.saveConfig(); p.sendMessage("§a已成功配置随身附魔台的位置 §c请勿破坏 否则将会影响插件工作!"); } else { p.sendMessage("§c请点击附魔台配置随身附魔台位置!"); } setList.remove(p.getName()); e.setCancelled(true); } } @Override public boolean onCommand(final CommandSender sender, final Command command, final String label, final String[] args) { if (!(sender instanceof Player)) { sender.sendMessage("§c控制台吃饱了撑着用毛线附魔台啊"); } switch (args.length) { case 0: final Player p = (Player) sender; if (loc.getBlock().getType() != Material.ENCHANTMENT_TABLE) { p.sendMessage("§c管理员尚未配置随身附魔台的位置或附魔台被破坏!"); return true; } p.openEnchanting(loc, true); p.sendMessage("§a已打开随身附魔台!"); return true; case 1: if (args[0].equalsIgnoreCase("set")) { if (sender.hasPermission("ceb.set")) { if (!setList.contains(sender.getName())) { sender.sendMessage("§b请点击目标附魔台配置为随身附魔台!"); setList.add(sender.getName()); } } return true; } break; } return false; } @Override public void onEnable() { this.saveDefaultConfig(); final String worldname = getConfig().getString("Location.World"); final World world = Bukkit.getWorld(worldname); final int x = getConfig().getInt("Location.X"); final int y = getConfig().getInt("Location.Y"); final int z = getConfig().getInt("Location.Z"); loc = new Location(world, x, y, z); this.getServer().getPluginManager().registerEvents(this, this); } }