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

Помогите выдача предмета/брони по пермисиону

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

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

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

    Баллы:
    78
    Имя в Minecraft:
    mr_snake302
    Всем Привет) я не много туплю и не могу сообразить как сделать вот такую вещь:


    Если игрок имеет bluearmor.permission то на него одевается коженная броня с цветом #344CB2

    Если игрок имеет redarmor.permission то на него одевается коженная броня с цветом #994444

    Если игрок имеет yellowarmor.permisison то на него одевается коженная броня с цветом #E5E533
     
  2. Хостинг MineCraft
    <
  3. serega6531

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

    Баллы:
    173
    Skype:
    shkurovs
    Пермишенам лучше иметь вид <pluginname>.(<groupname>.)<permissionname>.
    Т.е. в вашем случае пермишены должны иметь вид autoarmor.color.blue и по аналогии.
     
  4. Автор темы
    snake302

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

    Баллы:
    78
    Имя в Minecraft:
    mr_snake302
    да название вообще для меня роли не имеет, меня интересует сам код, реализация
     
  5. BeYkeR

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

    Баллы:
    173
    Код:
    if(player.hasPermission("Твой_Перм")){
    //Фигня
    }
     
    snake302 нравится это.
  6. Автор темы
    snake302

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

    Баллы:
    78
    Имя в Minecraft:
    mr_snake302
    спасибо))) то что надо
     
  7. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Слушаем эвент при котором мы хотим надевать броню, проверяем пермишены с помощью player.hasPermission, и надеваем нужную броню. Не забудьте добавить проверку на то чтобы не одевать кучу вещей на игроа со сразу несколькими пермишенами.
     
  8. serega6531

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

    Баллы:
    173
    Skype:
    shkurovs
    Так вам просто нужно было узнать, есть ли пермишен? Я-то начал гуглить про покраску брони.
     
  9. Автор темы
    snake302

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

    Баллы:
    78
    Имя в Minecraft:
    mr_snake302
    да, следующий вопрос остается с покраской брони...

    Код:
    if(player.hasPermission("bluearmor.permission")){
                player.getInventory().setArmorContents(new ItemStack[] { new ItemStack(Material.LEATHER_BOOTS, 1), new ItemStack(Material.LEATHER_LEGGINGS, 1), new ItemStack(Material.LEATHER_CHESTPLATE, 1), new ItemStack(Material.LEATHER_HELMET, 1) });
                }
     
  10. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Тебе нужно сконструировать новую LeatherMeta с помощью ItemFactory, применить к ней DyeColor, а потом применить эту мету к итему, а потом выдать этот итем игроку.
     
  11. Автор темы
    snake302

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

    Баллы:
    78
    Имя в Minecraft:
    mr_snake302
    Код:
            ItemStack lhelm = new ItemStack(Material.LEATHER_HELMET);
                LeatherArmorMeta lameta = (LeatherArmorMeta) lhelm.getItemMeta();
                lameta.setColor(Color.BLACK);
                lhelm.setItemMeta(lameta);

    ругается на setColor
     
  12. Shevchik

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

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    1.DyeColor там должен быть
    2.Ты должен сздавать мету из ItemFactory иначе шанс нарваться на NPE очень высок, так как итем может не иметь меты.
     
    snake302 нравится это.
  13. Автор темы
    snake302

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

    Баллы:
    78
    Имя в Minecraft:
    mr_snake302
    Благодарю за помощь!
     

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