92 lines
3.4 KiB
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);
|
|
}
|
|
|
|
}
|