【问题标题】:minecraft player.sendMessage command plugin not workingminecraft player.sendMessage 命令插件不起作用
【发布时间】:2020-10-27 16:11:18
【问题描述】:

我是编码新手,我正在为我的朋友制作一个 Minecraft 命令插件,当玩家使用该命令时,该插件会向玩家发送一条消息。我似乎无法让它们全部工作,只有第一个命令可以在服务器上工作,我已经尝试了我所知道的一切,比如 if-else 等,有人可以帮忙吗?

package com.legroom.applyplugin.Commands;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

public class commands implements CommandExecutor {

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {

        Player player = (Player) sender;
        if (sender == null) {
        }

        if
        (cmd.getName().equalsIgnoreCase("famous")) {
            player.sendMessage("§7§m----------------------------");
            player.sendMessage("§3» §3Requirements:");
            player.sendMessage("§3» §f500+ Subscribers");
            player.sendMessage("§3» §f1+ vid on the server");
            player.sendMessage("§3» §fReasonable views/likes");
            player.sendMessage("");
            player.sendMessage("§3» To apply, use:");
            player.sendMessage("§3    » §fMedia.nivina.cc");
            player.sendMessage("");
            player.sendMessage("§m----------------------------");

            if
            (cmd.getName().equalsIgnoreCase("appeal")) {
                player.sendMessage("§7§m----------------------------");
                player.sendMessage("");
                player.sendMessage("§3» To appeal, use:");
                player.sendMessage("§3     »§fDiscord.nivina.cc");
                player.sendMessage("");
                player.sendMessage("§7§m----------------------------");

                if
                (cmd.getName().equalsIgnoreCase("apply")) {
                    player.sendMessage("§7§m----------------------------");
                    player.sendMessage("");
                    player.sendMessage("§3» To apply, use:");
                    player.sendMessage("§3    » §fStaff.nivina.cc");
                    player.sendMessage("§3    » §fMedia.nivina.cc");
                    player.sendMessage("");
                    player.sendMessage("§7§m----------------------------");


                    if
                    (cmd.getName().equalsIgnoreCase("youtube")) {
                        player.sendMessage("§7§m----------------------------");
                        player.sendMessage("§3» §3Requirements:");
                        player.sendMessage("§3 » §f200+ Subscribers");
                        player.sendMessage("   » §f1+ vid on the server");
                        player.sendMessage("§3 » §fReasonable views/likes");
                        player.sendMessage("");
                        player.sendMessage("§3» To apply, use:");
                        player.sendMessage("§3» §fMedia.nivina.cc");
                        player.sendMessage("");
                        player.sendMessage("§m----------------------------");
                    }
                    return true;
                }
                return true;
            }
            return true;
        }
        return true;
    }
}
'''

【问题讨论】:

    标签: java


    【解决方案1】:

    你正在嵌套你的 if 语句:

    if (condition) {
       if (someOtherConditionThatConflictsWithFirstCondition) {
         // Never reached
       }
    }
    

    第二个 if 语句,因为它包含在第一个的花括号,只有当第一个条件评估为真时才会达到。但是你的条件是对同一个字符串的相等操作,所以如果第一个条件计算为true,第二个条件不能计算为true

    您需要做的是将它们一个接一个地放置:

    if (condition) {
    }
    if (someOtherCondition) {
    }
    if (thirdCondition) {
    }
    

    或者:

    if (condition) {
    }
    else if (someOtherCondition) {
    }
    else if (thirdCondition) {
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-07
      • 2021-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 1970-01-01
      相关资源
      最近更新 更多