- Баллы
- 76
- Имя в Minecraft
- Solomka
Произошла проблема: выводит ник игрока в ответе, а так не должно быть sb.toString(); - выводит все аргументы до него, а как это избежать? Например, /answer Solomki привет - должно вывести игроку:
Ответ: привет, а выводит Ответ: Solomki привет
как сделать исключение на нулевой аргумент для билдера?
код:
проблемная часть:
Ответ: привет, а выводит Ответ: Solomki привет
как сделать исключение на нулевой аргумент для билдера?
код:
Код:
public class QuestionAnswerHandler extends BasicCommandHandler {
protected static QuestionAnswerHandler instance;
public QuestionAnswerHandler() {
super(new Answer());
instance = this;
}
@Override
public List<String> onTabComplete(CommandSender commandSender, Command command, String s, String[] strings) {
return null;
}
private static class Answer extends BasicCommand {
public Answer(String command, Usage<CommandSender, String[]> func) {
super(command, func);
}
@Override
public String getDescription() { return "Send your answer to player"; }
@Override
public String getUsage() { return "/answer"; }
@Override
public String getPermission() { return "HelperMode.helper"; }
public Answer() {
super(null, null);
func = (sender, args) -> {
final List<ECommand> cmds = new ArrayList<>(instance.getRegisteredCommands());
cmds.add(this);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < args.length; i++) sb.append(args[i]).append(' ');
if (sb.length() < 1) {
for (String string : getStringList("HelpList")) {
sb.append(string);
}
String result = sb.toString();
send(sender, translateAlternateColorCodes('&', result));
}
if (!(sender instanceof Player)) return;
Player p = (Player) sender;
UUID id = p.getUniqueId();
Player player_extract = getPlayerExact(args[0]);
if (player_extract == null) {
send(sender, translateAlternateColorCodes('&', getString("NoPlayer")));
return;
}
UUID id_extract = player_extract.getUniqueId();
if(!map.contains(id_extract)) {
send(sender, ChatColor.translateAlternateColorCodes('&', ConfigManager.getString("NoQuestionPlayer")));
return;
}
if(args[0] == null || args[1] == null) {
for (String string : getStringList("HelpList")) {
sb.append(string);
}
String result = sb.toString();
send(sender, translateAlternateColorCodes('&', result));
}
for (String s : getStringList("DenyWordsInAnswer")) {
if (sb.toString().toLowerCase().contains(s)) {
send(sender, translateAlternateColorCodes('&', ConfigManager.getString("DenyMessage")));
return;
}
}
UUID id_player = player_extract.getUniqueId();
if (sender.hasPermission(getPermission()) || sender.isOp()) {
if (join.contains(id)) {
if (map.contains(id_player)) {
send(sender, translateAlternateColorCodes('&', "&6[ОТВЕТ НА ВОПРОС] &fОтвет: &c" + sb.toString() + " &8||&9 " + sender.getName()));
return;
}
return;
}
send(sender, translateAlternateColorCodes('&', getString("JoinHelperMode")));
return;
}
send(sender, translateAlternateColorCodes('&', getString("NotHavePermission")));
};
}
}
}
проблемная часть:
Код:
if (sender.hasPermission(getPermission()) || sender.isOp()) {
if (join.contains(id)) {
if (map.contains(id_player)) {
send(sender, translateAlternateColorCodes('&', "&6[ОТВЕТ НА ВОПРОС] &fОтвет: &c" + sb.toString() + " &8||&9 " + sender.getName()));
return;
}
return;
}
send(sender, translateAlternateColorCodes('&', getString("JoinHelperMode")));
return;
}