плагин команды minecraft player.SendMessage не работает

#java

#java

Вопрос:

Я новичок в программировании, и я создаю командный плагин 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;
    }
}
'''
  

Ответ №1:

Вы вкладываете свои if-операторы:

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

Второй оператор if, поскольку он содержится в фигурных скобках первого, выполняется только в том случае, если первое условие оценивается как true . Но ваши условия равны — операции над одной и той же строкой, поэтому, если первое условие оценивается true как , второе не может быть оценено true как .

Вместо этого вам нужно разместить их друг за другом:

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

Или в качестве альтернативы:

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