- Баллы
- 66
- Имя в Minecraft
- Rion_GM
Мне нужно что бы если игрок пил именно зелье исцеления выполнялся код, как это можно сделать?
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
а можно пример если есть?На PlayerItemConsumeEvent проверяй предмет PotionMeta#getBasePotionData().getType() == INSTANT_HEAL.
Ну, я вроде уже описал, что нужно. На java 17 можно в одну строку написать така можно пример если есть?
@EventHandler
public void onConsume(PlayerItemConsumeEvent event) {
if (event.getItem().getItemMeta() instanceof PotionMeta potionMeta && potionMeta.getBasePotionData().getType() == PotionType.INSTANT_HEAL) {
// TODO
}
}
говоритНу, я вроде уже описал, что нужно. На java 17 можно в одну строку написать так
PHP:@EventHandler public void onConsume(PlayerItemConsumeEvent event) { if (event.getItem().getItemMeta() instanceof PotionMeta potionMeta && potionMeta.getBasePotionData().getType() == PotionType.INSTANT_HEAL) { // TODO } }
Как уже сказал, это фича Java 17.говорит
шаблоны в instanceof не поддерживаются на уровне языка 8
что делать?
if (meta instanceof PotionMeta potionMeta) {
// TODO
}
if (meta instanceof PotionMeta) {
PotionMeta potionMeta = (PotionMeta) meta;
}
спасибоКак уже сказал, это фича Java 17.
тоже самое, чтоPHP:if (meta instanceof PotionMeta potionMeta) { // TODO }
PHP:if (meta instanceof PotionMeta) { PotionMeta potionMeta = (PotionMeta) meta; }
не я все равно тупой не пойму как сделать, типа оно теперь работает но работает оно со всеми зельямиКак уже сказал, это фича Java 17.
тоже самое, чтоPHP:if (meta instanceof PotionMeta potionMeta) { // TODO }
PHP:if (meta instanceof PotionMeta) { PotionMeta potionMeta = (PotionMeta) meta; }
Ты вторую половину проверки из моего первого сообщения то посмотри.не я все равно тупой не пойму как сделать, типа оно теперь работает но работает оно со всеми зельями
я так и пыталсяТы вторую половину проверки из моего первого сообщения то посмотри.
я его уже почти дописал так что поздно ты сказал)Советую изначально выучить яп java а потом уже кодить плагины, не повторяй моих ошибок)
Ну дак potionMeta у тебя недоступен во время проверки. Тебе нужно написать эту проверку отдельно уже после получения меты.я так и пытался
if (meta instanceof PotionMeta && potionMeta.getBasePotionData().getType() == PotionType.INSTANT_HEAL){
potionMeta = (PotionMeta) meta;
}
if (meta instanceof PotionMeta){Ну дак potionMeta у тебя недоступен во время проверки. Тебе нужно написать эту проверку отдельно уже после получения меты.
if (...) {} забыл.if (meta instanceof PotionMeta){
potionMeta = (PotionMeta) meta;
potionMeta.getBasePotionData().getType() == PotionType.INSTANT_HEAL;
}
так?)
может я тут где то накосячил?if (...) {} забыл.
public void onPotionDrink(PlayerItemConsumeEvent event) {
Player player = (Player) event.getPlayer();
Object meta = null;
PotionMeta potionMeta;
if (meta instanceof PotionMeta){
potionMeta = (PotionMeta) meta;
if (potionMeta.getBasePotionData().getType() == PotionType.SPEED){
player.sendMessage(ChatColor.GOLD + "Текст ");
}
}
}
Да. meta должна быть взята с употребляемого предмета.может я тут где то накосячил?
Код:public void onPotionDrink(PlayerItemConsumeEvent event) { Player player = (Player) event.getPlayer(); Object meta = null; PotionMeta potionMeta; if (meta instanceof PotionMeta){ potionMeta = (PotionMeta) meta; if (potionMeta.getBasePotionData().getType() == PotionType.SPEED){ player.sendMessage(ChatColor.GOLD + "Текст "); } } }
можешь исправить и скинуть код если не сложно пожалуйста?Да. meta должна быть взята с употребляемого предмета.
можешь исправить и скинуть код если не сложно пожалуйста?
public void onPotionDrink(PlayerItemConsumeEvent event) {
Player player = event.getPlayer();
ItemMeta meta = event.getItem().getItemMeta();
if (meta instanceof PotionMeta) {
PotionMeta potionMeta = (PotionMeta) meta;
if (potionMeta.getBasePotionData().getType() == PotionType.SPEED){
player.sendMessage(ChatColor.GOLD + "Текст ");
}
}
}
