首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用/command /on或/command关闭事件

用/command /on或/command关闭事件
EN

Stack Overflow用户
提问于 2019-01-25 20:08:11
回答 1查看 49关注 0票数 0

我想要做一个PVPEventPlugin插件,并打开和关闭事件,但我想让/pvpevent on/pvpevent off,但我需要这样做的args。这是我的密码:

代码语言:javascript
复制
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {      
    if(command.getName().equalsIgnoreCase("PVPEVENTon") {
        if(sender instanceof Player) {
            getServer().getPluginManager().registerEvents(this, this);
            for (Player player : Bukkit.getOnlinePlayers()) {
                player.sendMessage(ChatColor.GREEN + "PVP - Event Startet!");
            }    
        }
    }
    if(command.getName().equalsIgnoreCase("PVPEVENToff")) {
        HandlerList.unregisterAll();
    }
    return true;
}

@EventHandler
public void onRespawnPVPEVENT(PlayerRespawnEvent pvpevent ) {
    Player p = pvpevent.getPlayer();
    double x = 48.69925614938256;
    double y = 7.0;
    double z = 47.4376551334051;
    Location loc = new Location(Bukkit.getWorld("world"), x, y, z);
    pvpevent.setRespawnLocation(loc);
    p.sendMessage("");


}

@EventHandler
public void sed(PlayerDeathEvent totevent) {
    Player p1 = totevent.getEntity();
    p1.sendMessage(ChatColor.GOLD + "[PvP Event] " + ChatColor.AQUA + "Du Bist Gestorben und somit raus");
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-25 20:26:31

使用标签(这是命令),然后解析参数。如下所示:

代码语言:javascript
复制
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
    if(!(sender instanceOf Player)) {
        sender.sendMessage("Only a player can use this command");
        return true;
    }
    Player player = (Player) sender;
    if(label.equalsIgnoreCase("pvpevent") {
        if(args.length == 0) {
            player.sendMessage("Use: /pvpevent on/off");
            return true;
        } else if(args.length == 1) {
            String mode = args[0];
            if(mode.equalsIgnoreCase("on") {
                Bukkit.getPluginManager().registerEvents(this, this);
                //what you want on /pvpevent on
                return true;
            } else if(mode.equalsIgnoreCase("off") {
                HandlerList.unregisterAll(this);
                //what you want to do if /pvpevent off is entered.
                return true;
            } else {
                //what is called when not off/on is entered after /pvpevent
            }
        }
    }
    return false;
}

因此,我们在这里要做的是检查arg长度是否为0,如果是0,则发送实际使用情况。之后,我们检查/pvpevent之后的第一个参数是什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54372123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档