CarryEnchantBench/src/main/java/cn/citycraft/CarryEnchantBench/CarryEnchantBench.java

92 lines
3.4 KiB
Java

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<String> 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);
}
}