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

[РЕШЕНО] Отправка сообщения при входе на сервер в несколько строк

Тема в разделе "Разработка плагинов для новичков", создана пользователем Zlodey_duo, 10 июн 2023.

Статус темы:
Закрыта.
  1. Автор темы
    Zlodey_duo

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

    Баллы:
    66
    Имя в Minecraft:
    _X_ZLODEY_X_
    Всем привет, хотел бы спросить как взять сообщения из допустим config.yml состоящий из нескольких строк и отправит при входе на сервер.
    Забыл код...
    P.s - API 1.12.2

    Пример конфига:
    (Не понял как прикрепить фото сорри)
    Код:
    Message:
      - '§f '
      - '§8[§a+§8] §a{name}'
      - '§f '
    Вот данный текст мне нужно вытащить из конфига, знаю как но не помню каким методом
    StringList не получается, напомните, буду благодарен <3
     
  2. Overwrite

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

    Баллы:
    98
    Имя в Minecraft:
    OverwriteMC
    Код:
    for (String msg : config.getStringList("Message")) {
        player.sendMessage(msg);
    }
     
  3. VladNotch

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

    Баллы:
    76
    Код:
    private static Configuration configuration;
    
    @Override
        public void onEnable() {
    
            saveDefaultConfig();
            configuration = this.getConfig();
    
            for (String line : configuration.getStringList("Message")) {
                plr.sendMessage(line);
            }
    
    }
     
  4. Overwrite

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

    Баллы:
    98
    Имя в Minecraft:
    OverwriteMC
    Зачем static то :rolleyes:
     
  5. VladNotch

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

    Баллы:
    76
    мало ли захочется получить где-то еще конфиг в коде, сделает потом геттер статический, и пусть использует где пожелает)
     
  6. VladNotch

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

    Баллы:
    76
    Даже наверное вот так, раз ты хочешь при заходе игрока. Но лучше выноси в отдельный класс листенер.
    Код:
        private static Configuration configuration;
    
        @Override
        public void onEnable() {
    
            saveDefaultConfig();
            configuration = this.getConfig();
    
            class PlayerJoinListener implements Listener {
    
                @EventHandler
                public void onPlayerJoin(PlayerJoinEvent event) {
                    for (String line : configuration.getStringList("Message")) {
                        event.getPlayer().sendMessage(line);
                    }
                }
    
            }
            this.getServer().getPluginManager().registerEvents(new PlayerJoinListener(), this);
       }
    
     
  7. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Чисто ради понтов можно так :cool:
    Код:
    config.getStringList("Message").forEach(player::sendMessage);
     
  8. Автор темы
    Zlodey_duo

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

    Баллы:
    66
    Имя в Minecraft:
    _X_ZLODEY_X_
    Большое спасибо именно эта строчка кода мне нужна была <3
     
  9. Автор темы
    Zlodey_duo

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

    Баллы:
    66
    Имя в Minecraft:
    _X_ZLODEY_X_
    Впервые вижу данный метод и не понимаю что идёт после forEach :bad:
    Влияет данный кусок кода на что нибудь кроме истетичности?
     
  10. Автор темы
    Zlodey_duo

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

    Баллы:
    66
    Имя в Minecraft:
    _X_ZLODEY_X_
    Да я знаю, спасибо большое, но я хочу отправить сообщения всем игрокам о входе какого либо игрока
    а ты в данном коде отправил сообщение лишь игроку, так скажем приватное сообщение которое видит лишь тот игрок который зашёл на сервер.
    Я делаю через event.setJoinMessage(message);
     
  11. Overwrite

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

    Баллы:
    98
    Имя в Minecraft:
    OverwriteMC
    А вообще проще заюзать YAML синтаксис и сделать вот так

    Message: |-
    1
    2
    3
     
  12. Автор темы
    Zlodey_duo

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

    Баллы:
    66
    Имя в Minecraft:
    _X_ZLODEY_X_
    Так?
    Просто не знаю, но чем хуже такой формат:
    Message:
    - ' '
    - 'Сообщение'
    - ' '
     
  13. Overwrite

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

    Баллы:
    98
    Имя в Minecraft:
    OverwriteMC
    Ну типа так одно сообщение, а так не одно :rolleyes:
     
  14. Автор темы
    Zlodey_duo

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

    Баллы:
    66
    Имя в Minecraft:
    _X_ZLODEY_X_
    Всем спасибо <3
    ТЕМА ЗАКРЫТА!
     
Статус темы:
Закрыта.

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