Войти или зарегистрироваться

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

snake302

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


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

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

Если игрок имеет yellowarmor.permisison то на него одевается коженная броня с цветом #E5E533
 
Пермишенам лучше иметь вид <pluginname>.(<groupname>.)<permissionname>.
Т.е. в вашем случае пермишены должны иметь вид autoarmor.color.blue и по аналогии.
 
Пермишенам лучше иметь вид <pluginname>.(<groupname>.)<permissionname>.
Т.е. в вашем случае пермишены должны иметь вид autoarmor.color.blue и по аналогии.
да название вообще для меня роли не имеет, меня интересует сам код, реализация
 
Код:
if(player.hasPermission("Твой_Перм")){
//Фигня
}
 
Слушаем эвент при котором мы хотим надевать броню, проверяем пермишены с помощью player.hasPermission, и надеваем нужную броню. Не забудьте добавить проверку на то чтобы не одевать кучу вещей на игроа со сразу несколькими пермишенами.
 
Так вам просто нужно было узнать, есть ли пермишен? Я-то начал гуглить про покраску брони.
 
да, следующий вопрос остается с покраской брони...

Код:
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) });
            }
 
Тебе нужно сконструировать новую LeatherMeta с помощью ItemFactory, применить к ней DyeColor, а потом применить эту мету к итему, а потом выдать этот итем игроку.
 
Код:
        ItemStack lhelm = new ItemStack(Material.LEATHER_HELMET);
            LeatherArmorMeta lameta = (LeatherArmorMeta) lhelm.getItemMeta();
            lameta.setColor(Color.BLACK);
            lhelm.setItemMeta(lameta);


ругается на setColor
 
1.DyeColor там должен быть
2.Ты должен сздавать мету из ItemFactory иначе шанс нарваться на NPE очень высок, так как итем может не иметь меты.
 
Благодарю за помощь!
 
Назад
Верх