[Решено] Не удается сделать отображение больше одного аргумента.

TelePuzik

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
op03
Здравствуйте!
Я новичок в сфере программирования на Java и JavaPlugin, и мне нужна ваша помощь, дорогие друзья!


Я планирую сделать плагин, который осуществляет связь между администратором и игроком с помощью команды /rep <текст>.

Проблема в том, что при вписывании аргумента <текст> более одного слова, будет отображаться только одно.
Мне же необходимо сделать так, чтобы отображался весь текст.

Помогите с этим пожалуйста, начал практиковаться только сегодня, буду искренне благодарен!
Просто уже потратив девять часов и кучи нервов, я написал только этот небольшой код, и-то постоянно смотрел всякие гайды..

Так-же прикладываю код и видео:

Код:
package adminreport.main;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;

public class Commands implements CommandExecutor{

    private AdminReport plugin;

    public Commands(AdminReport plugin) {
        this.plugin = plugin;
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(!sender.hasPermission("report.send")){
        sender.sendMessage(ChatColor.DARK_RED + "[Ошибка] "+ ChatColor.WHITE +"У Вас нет прав.");
        return true;
        }
        
        if(args.length == 0) {
            return false;
        }
        String message = args[0];
        sender.sendMessage(ChatColor.GREEN + "[Успешно] "+ ChatColor.WHITE +"Сообщение для администрации отправлено:");
        sender.sendMessage("- " + message + ".");
        sender.sendMessage("");
        sender.sendMessage(ChatColor.DARK_GREEN + "[Подсказка] "+ ChatColor.WHITE +"Ожидайте ответа.");
                
        return true;
        
    }

}

 
Привет. Вместо String message = args[0];
Напиши
String message = String.join(" ", args);

Ты в коде писал только аргумент под номером 0, тоесть первый аргумент
А то что я кинул, сделает Все аргументы, и разделит их пробелом
Код:
package adminreport.main;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;

public class Commands implements CommandExecutor{

    private AdminReport plugin;

    public Commands(AdminReport plugin) {
        this.plugin = plugin;
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(!sender.hasPermission("report.send")){
        sender.sendMessage(ChatColor.DARK_RED + "[Ошибка] "+ ChatColor.WHITE +"У Вас нет прав.");
        return true;
        }
       
        if(args.length == 0) {
            return false;
        }
        String message = String.join(" ", args);
        sender.sendMessage(ChatColor.GREEN + "[Успешно] "+ ChatColor.WHITE +"Сообщение для администрации отправлено:");
        sender.sendMessage("- " + message + ".");
        sender.sendMessage("");
        sender.sendMessage(ChatColor.DARK_GREEN + "[Подсказка] "+ ChatColor.WHITE +"Ожидайте ответа.");
               
        return true;
       
    }

}
 
Привет. Вместо String message = args[0];
Напиши
String message = String.join(" ", args);

Ты в коде писал только аргумент под номером 0, тоесть первый аргумент
А то что я кинул, сделает Все аргументы, и разделит их пробелом
Код:
package adminreport.main;

import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;

public class Commands implements CommandExecutor{

    private AdminReport plugin;

    public Commands(AdminReport plugin) {
        this.plugin = plugin;
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if(!sender.hasPermission("report.send")){
        sender.sendMessage(ChatColor.DARK_RED + "[Ошибка] "+ ChatColor.WHITE +"У Вас нет прав.");
        return true;
        }
      
        if(args.length == 0) {
            return false;
        }
        String message = String.join(" ", args);
        sender.sendMessage(ChatColor.GREEN + "[Успешно] "+ ChatColor.WHITE +"Сообщение для администрации отправлено:");
        sender.sendMessage("- " + message + ".");
        sender.sendMessage("");
        sender.sendMessage(ChatColor.DARK_GREEN + "[Подсказка] "+ ChatColor.WHITE +"Ожидайте ответа.");
              
        return true;
      
    }

}

Большое спасибо за помощь!

Уже вечером попробую поменять, сейчас выспаться надо, мне вставать рано..

Как здесь поставить положительный балл, если есть такая возможность?
 
Большое спасибо за помощь!

Уже вечером попробую поменять, сейчас выспаться надо, мне вставать рано..

Как здесь поставить положительный балл, если есть такая возможность?
Достаточно "спасибо". Это малая помощь.
 
А всего то надо было выучить java

Я учу, но пока только знаю 3/10 о синтаксисе Java по моей оценке.

Сейчас у меня недопонимания насчёт создания ссылок на какой-либо класс и присвивании к чему либо, но я понимаю для чего это необходимо делать.

Код:
public class Solution {                                                                                                   
    public static void main(String[] args) {                                                                                                   
Man man = new Man();                                                 
Woman woman = new Woman();                                                 
man.wife = woman;                                                           
woman.husband = man;                                                                                         
    }                                                                                                   
                                                                                                    
    public static class Man {                                                                                                   
        public int age;                                                                                                   
        public int height;                                                                                                   
        public Woman wife;                                                                                                   
    }                                                                                                   
                                                                                                    
    public static class Woman {                                                                                                   
        public int age;                                                                                                   
        public int height;                                                                                                   
        public Man husband;                                                                                                   
    }                                                                                                   
}
В этом коде к мужу присваивается жена, и наоборот, к жене муж.

Я понимаю, что man - это переменная, Man - тип переменной, Man() - сам объект, а new - сама ссылка.
Код:
Man man = new Man()

Но не понимаю, почему пишется при присвивании мужа к жене
woman.husband = man, а не woman.hushband = man() или husband.woman = man?

Хотя, конечно подобные вопросы скорее всего надо задавать не здесь, ведь это уже не будет относится к плагинам.

Ладно, спасибо за совет, буду изучать Java и в дальнейшем конечно, без этого никуда на данный момент.
 
Циклы: Я для вас шутка?
 
Назад
Верх