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

Помогите Проблема с сообщениями игрокам в ArrayList

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

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

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

    Баллы:
    76
    У меня нет ошибок ни где но не отправляет игрокам кто в списке я делал так
    for(String n : plugin.arraylist) {
    Bukkit.getPlayer(n) .sendMessage("...") ;
    }
    И отправляет только первому игроку
     
  2. Автор темы
    Gizar_TV

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

    Баллы:
    76
    Код:
    options:
       prefix: '&e&l[&a&lДругие Голодные Игры&e&l] &f'
       world: world
       lobby: world
       commpasnear: true
       onDeachkick: false
    x: 0
    y: 0
    z: 0
    yw: 0
    maxplayers: 100
    minplayers: 50
    minsec: 5
    maxsec: 60
    messages:
       1: '&3До старта осталось 1 секунда.'
       2: '&3До старта осталось 2 секунды.'
       3: '&3До старта осталось 3 секунды.'
       4: '&3До старта осталось 4 секунды.'
       5: '&3До старта осталось 5 секунд.'
       10: '&3До старта осталось 10 секунд.'
       15: '&3До старта осталось 15 секунд.'
       30: '&3До старта осталось 30 секунд.'
       60: '&3До старта осталось 60 секунд.'
       splayer: '&3До старта осталось &f%online%&3 игроков.'
       death: '&f%dplayer% &3был убит &f%playerd%.'
       minip: '&cВы вышли из игры!'
       mini: '&cВы не можете выйти такак вы не в игре!'
       minipl: '&fВы находитесь в игре для выхода из неё пропишите /ohg leave'
       join: '&f%player%&3 присоеденился к игре.'
       unjoin: '&f%player%&3 покинул игру.'
       full: '&cАрена заполнена!'
       dostartpl: '&aДо старта осталось &3(&a%online%&3/&a%maxplayers%&3)'
       nopl: '&aИгрок не найден!'
       deathkick: '&aВы были убиты %killer%!'
       nodeaths: '%player% &aумер не известной смертью :(!'
       nopex: '&cУ тебя нет на это разрешения.'
       com: '&aБлижайший игрок %player% растояние %dis%.'
       start: '&aИгра начялась!'
       sgame: '&aВы не можете зайти на арену!'
       b2m: '&cБессмертие закончится через 2 минуты.'
       b1m: '&cБессмертие закончится через 1 минуту.'
       b30: '&cБессмертие закончится через 30 секунд.'
       b15: '&cБессмертие закончится через 15 секунд.'
       b10: '&cБессмертие закончится через 10 секунд.'
       b9:  '&cБессмертие закончится через 9 секунд.'
       b8:  '&cБессмертие закончится через 8 секунд.'
       b7:  '&cБессмертие закончится через 7 секунд.'
       b6:  '&cБессмертие закончится через 6 секунд.'
       b5:  '&cБессмертие закончится через 5 секунд.'
       b4:  '&cБессмертие закончится через 4 секунды.'
       b3:  '&cБессмертие закончится через 3 секунды.'
       b2:  '&cБессмертие закончится через 2 секунды.'
       b1:  '&cБессмертие закончится через 1 секунду.'
       b0:  '&cБессмертие закончитлось теперь вы смертны.'
       help:
         gl: '&e----------- &aOthers Hungers Games Help&e ------------'
         1: '&a/ohg help&e - Помошь по коммандам!'
         2: '&a/ohg reload&e - Перезагрузить плагин!'
         3: '&a/ohg start&e - Начять игру!'
         4: '&a/ohg join&e - Зайти в игру!'
         5: '&a/ohg leave&e - Выйти из игры!'
         6: '&e-------------------------------------------------------'
     
  3. Автор темы
    Gizar_TV

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

    Баллы:
    76
    Чему тут офатся если отсчёт робит и отсылает сообщения только первому игроку!
     
  4. Автор темы
    Gizar_TV

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

    Баллы:
    76
    У меня в ArrayList написан
    ArrayList<String> ArrayList = new ArrayList<String>(); может String заменить на Player?
     
  5. Cororo

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

    Баллы:
    76
    Имя в Minecraft:
    TheSirCororo
    Выведи список перед этой шляпой System.out.println(list);
     
  6. Lillie-May

    Lillie-May Новичок Пользователь

    Баллы:
    21
    for (String string : plugin.arrayList)
    {
    Bukkit.getPlayer(string).sendMessage("" + plugin.arrayList.size());
    Bukkit.getPlayer(string).sendMessage("" + plugin.arrayList.get(0));
    Bukkit.getPlayer(string).sendMessage("" + plugin.arrayList.get(1));
    }

    Что выдаст?
     
  7. Автор темы
    Gizar_TV

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

    Баллы:
    76
    Что это даст
     
  8. Автор темы
    Gizar_TV

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

    Баллы:
    76
    Первому игроку отсылает ники всех игроков?
     
  9. Lillie-May

    Lillie-May Новичок Пользователь

    Баллы:
    21
    Скрин?
     
  10. Автор темы
    Gizar_TV

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

    Баллы:
    76
    Это вопрос
     
  11. 4APP1

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

    Баллы:
    76
    Имя в Minecraft:
    HappyWaffle
    Чет мне кажется в листе нет других игроков, попробуй вывести размер листа
     
  12. Ission

    Ission Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    lokivava
    Нет, надо вывести то, что содержится в списке. И показать, что в нём что-то содержится, а не 1 игрок.
     
  13. Автор темы
    Gizar_TV

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

    Баллы:
    76
    В коде уже есть что выводит количество игроков в ArrayList и макс кол-во я я знаю что именно первому игроку выводит сообщение что вам ещë видио записать чтоли
     
  14. alexandrage

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

    Баллы:
    173
    Привели код в порядок и все сразу видно станет. А пока там дичайшая каша ничего не понять.
     
  15. Code

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

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    у тебя полный треш с Runnable
    переменные используются хрен знает откуда
    внешний id, внешний sec
    нахрена тебе на каждого игрока отдельный Runnable создавать?
    понятно почему у тебя первому пишет только.
    например, если minplayers равно 10, то у тебя на каждого из 10 игроков создается Runnable. всего 10 штук.
    первый запускается, проверяет sec == 60, печатает сообщение, делает sec--
    следующий уже видит не 60, а 59. и ничего не печатает.

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

    тебе надо все переписать и нормально инкапсулировать. чтобы не было глобальных счетчиков.
    отправку всем игрокам в какой-нибудь метод закатать, а не в цикли делать неведомую хрень по каждому.
     
  16. Автор темы
    Gizar_TV

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

    Баллы:
    76
    Как сделать чтобы один runnable создовался
     
  17. Автор темы
    Gizar_TV

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

    Баллы:
    76
    Чт не видно чтобы создавало 10 runnable
     
  18. alexandrage

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

    Баллы:
    173
    Еще бы в этой каше что то увидеть.
     
  19. Code

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

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    а, тогда еще хуже
    у тебя после создания runnable стоит return true;
    (естественно в этой каше я его не увидел)
    поэтому создается только для первого игрока. ему и шлется все
     
  20. Автор темы
    Gizar_TV

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

    Баллы:
    76
    Это еще не каша есть и похуже src
     
Статус темы:
Закрыта.

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