使用 CraftBukkit 1.7.9
你好,
每当我输入一个符号“Minigame”时,它根本不起作用。
这是我的代码:
package me.pvpcraftnetwork.customjoinsigns;
import java.util.HashMap;
import org.bukkit.Location;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.SignChangeEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin implements Listener {
public final HashMap<Location, String> signs = new HashMap<Location, String>();
public static Main plugin;
public void onEnable(){
plugin = this;
getLogger().info("[PvpCraft Network] {Custom Join Signs} has been enabled!");
}
public void onDisable() {
plugin = null;
getLogger().info("[PvpCraft Network] {Custom Join Signs} has been disabled!");
}
@EventHandler
public void onSignChange(SignChangeEvent event){
if(event.getLine(0).equalsIgnoreCase("Minigame")) {
signs.put(event.getBlock().getLocation(), event.getPlayer().getName());
event.getPlayer().sendMessage("[PvpCraft Network] {Custom Join Signs} Custom Join Sign created! Now type in: /cjs [Custom Join Sign Arena Number] setarenaname");
}
}
@EventHandler
public void onBlockBreak(BlockBreakEvent event){
Player player = event.getPlayer();
if(signs.containsKey(event.getBlock().getLocation()) && !signs.containsValue(event.getPlayer().getName()) || !player.isOp()) {
event.setCancelled(true);
} else {
signs.remove(event.getBlock().getLocation());
}
}
@EventHandler
public void onPlayerInteract(PlayerInteractEvent event){
Player player = event.getPlayer();
if(signs.containsKey(event.getClickedBlock().getLocation())) {
player.teleport(player.getWorld().getSpawnLocation());
}
}
}
在第一个事件中,我希望它是这样的:
每当我输入一个符号“Minigame”时,它都会发送消息。
但是,我也想要它“ if(player.isOp());
”(如果玩家是服务器上的Op),我不知道放在哪里。
有什么帮助吗?