1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Получение отправленной команды в виде String

Тема в разделе "Разработка плагинов для новичков", создана пользователем Prot_CN, 19 мар 2020.

Метки:
  1. Автор темы
    Prot_CN

    Prot_CN Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Prot_CN
    Как в onCommand получить String отправленной команды вида: /test helloworld it's ssssssssssss .....f

    Чтобы в результате было нечто = "/test helloworld it's ssssssssssss .....f"? (точки - пробелы)

    P.S. проще говоря, как возможно сохранять большие пробелы в аргументах, если это будущий message?
     
  2. TrashCode

    TrashCode Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    TrashCode
    String cmd = command.getName() + Arrays.stream(args).collect(Collectors.joining(" "));
     
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    String.join(" ", args);
     
  4. Автор темы
    Prot_CN

    Prot_CN Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Prot_CN
    Он не будет учитывать space'ы проставленные в аргументах, обрежет их.
     
  5. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Не обрежет, у тебя будет просто очень много пустых агрументов.
     
  6. Автор темы
    Prot_CN

    Prot_CN Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Prot_CN
    Не работают предложенные методы, я понимаю, что Вы разделяете аргументы искусственным пробелом, но мне нужны естественные пробелы проставленные вовремя ввода команды "Shevchik _ _ _ _ hi"

    P.S. нужно наоборот не избавляться от них, а сохранять произвольные пробелы между аргументами
     
  7. HunterGaming

    HunterGaming Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Ты можешь попробовать PlayerCommandPreprocessEvent
     
  8. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Какая разница как получены пробелы. Они чем то отличаются? Нет.
     
  9. Автор темы
    Prot_CN

    Prot_CN Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Prot_CN
    Если ты напишешь /chat hello guys ____ what? (_ - space, форум обрезает их), то как тебе сохранить расстояние между guys и what? Это ведь чат, здесь все должно учитываться!
     
  10. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Это команда. Чат пишется без слеша. И да, майн игнорирует лишние пробелы в команде. Ибо они не несут никакой нагрузки.
     
  11. HunterGaming

    HunterGaming Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    sqdFendy
    Он наверное хочет, чтобы сообщение отправлялось через команду
     
  12. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Ну придется смириться тогда.
     
  13. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Если из консоли вводить то все пробелы на месте.
    Код:
    ps        list        v
    [, , , , , , , list, , , , , , , , v]
    
    В случае игрока майнкрафт нормализует пробелы, и получить что-либо можно только из пакета.
     
    Последнее редактирование: 20 мар 2020
  14. Автор темы
    Prot_CN

    Prot_CN Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    Prot_CN
    Пакетами? А какие варианты возможны? Давно хотел изучить тему с пакетами, протоколлибами и в общем, пакетами...!
     
  15. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Вариант только один - слушать PacketPlayInChat.
     
  16. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Не мучить мозг и юзать чат через какой то спец символ.
     

Поделиться этой страницей