Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

Помогите Работа с ActionBar

Discussion in 'Разработка плагинов для новичков' started by Artem99z, Jun 28, 2016.

  1. Автор темы
    Artem99z

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

    Trophy Points:
    88
    Skype:
    Artemuidak
    Имя в Minecraft:
    ReDcTiOn
    У меня плагин выводит название региона в ActionBar`e, как сделать так, чтобы по определенной команде плагин отключался для игрока?

    Использую Spigot 1.10
     
  2. Хостинг MineCraft
    <
  3. Novichock

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

    Trophy Points:
    76
    Skype:
    pavel.batalov1
    Создай для каждого игрока переменную,игрок пишет команду для него эта переменная становится false.Если эта переменная равна false ,то не выводи название региона.
     
  4. Автор темы
    Artem99z

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

    Trophy Points:
    88
    Skype:
    Artemuidak
    Имя в Minecraft:
    ReDcTiOn
    Можно пример кода?
     
  5. Novichock

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

    Trophy Points:
    76
    Skype:
    pavel.batalov1
    Я не знаю твой код, не знаю как выводишь.Я просто дал идею как это можно реализовать.
     
  6. Автор темы
    Artem99z

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

    Trophy Points:
    88
    Skype:
    Artemuidak
    Имя в Minecraft:
    ReDcTiOn
    По твоим словам, у меня выводится такая картинка: При заходе на сервер, в файл записывайте ник игрока со значение true "player: true", при написание команды, в файле это значение меняется.
     
  7. Novichock

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

    Trophy Points:
    76
    Skype:
    pavel.batalov1
    Именно так
     
  8. Автор темы
    Artem99z

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

    Trophy Points:
    88
    Skype:
    Artemuidak
    Имя в Minecraft:
    ReDcTiOn
    Если я вывожу текст в ActionBar вот так:
    Code:
        public static void sendAction(Player player, String msg)
        {
            if(player.hasPermission("regionname.use"))
            {   
            CraftPlayer p = (CraftPlayer) player;
            IChatBaseComponent cbc = IChatBaseComponent.ChatSerializer.a((String) ("{\"text\": \"" + msg + "\"}"));
            PacketPlayOutChat ppoc = new PacketPlayOutChat(cbc, (byte) 2);
            p.getHandle().playerConnection.sendPacket((Packet<?>) ppoc);
            }
        }
    как сделать наоборот? отключение этой функции.
     
  9. CoolBoy

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

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Ну, во-первых, для таких вещей лучше делать рефлексию.
     
  10. Автор темы
    Artem99z

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

    Trophy Points:
    88
    Skype:
    Artemuidak
    Имя в Minecraft:
    ReDcTiOn
    Можно подробнее? я новичок в этом :)
     
  11. CoolBoy

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

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Туториалов я тут, увы, писать не собираюсь. Гуглите.
     
  12. Dereku

    Dereku Старожил

    Trophy Points:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Не лучше. Что прямое использование, что рефлексия - всё нормально.
     
  13. CoolBoy

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

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    С ней ты не будешь зависеть от версии. Что уже +.
    Но вот её быстродействие оставляет желать лучшего.
     
  14. Dereku

    Dereku Старожил

    Trophy Points:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Вообще то в лбом случае тебе придётся ручками обновлять плагин до на следующую версию. Потому что могут быть баги, могут быть исправления.
    Если плагин уже готов, то да - рефлексия будет лучше. Но лично мне не так уж и трудно уделить пару минут для написания новой реализации под nms.
     
  15. CoolBoy

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

    Trophy Points:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Кому как :)
    А по теме, делайте проверку в вашем же евенте на какое-либо событие.
    Скажем создайте аррайлист с плеерами и при определённой команде, добавляйте туда нужного игрока. В евенте проверяйте, есть ли игрок в листе, и если есть - отменяйте / возвращайте евент.

    Если это - дикий костыль, то увы. Ничего лучше придумать не могу.
     
    Last edited: Jul 3, 2016
  16. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    У меня тоже появился подобный плаг, но он не требует каких либо прав. Регион показывается когда игрок перешел в новый регион, потом надпись изчезает.

    [DOUBLEPOST=1467561003,1467560877][/DOUBLEPOST]P.s по поводу рефлесий, я юзаю шедулер раз в n сек, так что потеря скорости в пару миллисекунд, не играет никакой роли.
     

Share This Page