Моя проблема в том, что только первое значение списка внутри моего config.yml
является «действительным» для тестирования. Представьте цикл for, который проверяет список с тремя значениями: «FirstString», «SecondString» и «ThirdString». Если он найдет набор String, например «SecondString», тогда сделайте что-нибудь. Мой цикл for проверяет только первое значение. Итак, в моем примере он никогда не найдет «SecondString», даже жестко он находится в списке. Надеюсь, вы понимаете мою проблему, даже жестко. Я плохо объясняю свои проблемы.Проверяется только первое значение списка
Stym.java
(основной класс):
import org.bukkit.plugin.java.JavaPlugin;
public class Stym extends JavaPlugin {
@Override
public void onEnable() {
getConfig().options().copyDefaults(true);
saveConfig();
registerCommands();
}
public void registerCommands() {
GroupCommand groupCommandClass = new GroupCommand(this);
getCommand("GROUP").setExecutor(groupCommandClass);
}
public boolean isGroup(String groupName, String playerName) {
if(groupName.equalsIgnoreCase("LEATHER")) {
for(String ironPlayerName : getConfig().getStringList("groups.iron")) {
if(!ironPlayerName.equals(playerName)) {
for(String diamondPlayerName : getConfig().getStringList("groups.diamond")) {
if(!diamondPlayerName.equals(playerName)) {
return true;
} else {
return false;
}
}
} else {
return false;
}
}
} else if(groupName.equalsIgnoreCase("IRON")) {
for(String ironPlayerName : getConfig().getStringList("groups.iron")) {
if(ironPlayerName.equals(playerName)) {
return true;
} else {
return false;
}
}
} else if(groupName.equalsIgnoreCase("DIAMOND")) {
for(String diamondPlayerName : getConfig().getStringList("groups.diamond")) {
if(diamondPlayerName.equals(playerName)) {
return true;
} else {
return false;
}
}
}
return false;
}
}
GroupCommand
(выполнение класса):
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class GroupCommand implements CommandExecutor {
Stym stym;
GroupCommand(Stym stymClass) {
stym = stymClass;
}
@Override
public boolean onCommand(CommandSender sender, Command command,
String label, String[] arguments) {
if(arguments.length == 0) {
if(sender instanceof Player) {
if(!sender.isOp()) {
if(stym.isGroup("LEATHER", sender.getName())) {
sender.sendMessage("You are made out of leather!");
return true;
} else if(stym.isGroup("IRON", sender.getName())) {
sender.sendMessage("You are made out of iron!");
return true;
} else if(stym.isGroup("DIAMOND", sender.getName())) {
sender.sendMessage("You are made out of diamond!");
return true;
} else {
sender.sendMessage("You are a cyborg!");
return true;
}
} else {
sender.sendMessage("You are an operator!");
return true;
}
} else {
sender.sendMessage("You are a god!");
return true;
}
} else if(arguments.length == 1) {
if(stym.isGroup("LEATHER", arguments[0])) {
sender.sendMessage(arguments[0] + " " + "is made out of leather!");
return true;
} else if(stym.isGroup("IRON", arguments[0])) {
sender.sendMessage(arguments[0] + " " + "is made out of iron!");
return true;
} else if(stym.isGroup("DIAMOND", arguments[0])) {
sender.sendMessage(arguments[0] + " " + "is made out of diamond!");
return true;
} else {
sender.sendMessage(arguments[0] + " " + "is a cyborg!");
return true;
}
} else {
sender.sendMessage("Not supported yet!");
return true;
}
}
}
plugin.yml
:
name: Stym
main: Stym
version: 1.3.3.7
commands:
group:
description: Some fancy description
usage: /group or /group <player_name>
config.yml
:
groups:
iron:
- Player //Works well and will find
- Another_Player // Won't find
diamond:
- Rich_Player //Works well and will find
Какая часть вашего кода вы смотрите.Вы должны только ввести код, необходимый для объяснения проблемы. – kmecpp