Как сделать чтобы в ванише нельзя было бить, но если пить зелье в невидимости можно и чтобы при выключении ваниша очистка невидимости ток была, а не всех эффектов.
VanishCommand.php (1,3 КБ)
Сделайте всё за меня? Ок. Сперва перенеси тему в Вопросы и обсуждения
Будет очищаться только невидимость:
VanishCommand.php (1,3 КБ)
Чтобы нельзя было бить, когда есть эффект невидимости:
public function handleEntityDamage(EntityDamageEvent $event) : void{
if($event instanceof EntityDamageByEntityEvent){
$damager = $event->getDamager();
if($damager instanceof Player){
$event->setCancelled($damager->hasEffect(14));
}
}
}
вставь код в класс, который имплементирует интерфейс Listener
Окей спасибо, а как написать чтобы игрок не мог бить игрока в ванише
тогда вот дополненный код
Представляю когда обычный игрок выпил зелье инвиза
$attacker = $event->getDamager();
$victim = $event->getEntity();
if ($attacker instanceof Player && $victim instanceof Player) {
if ($attacker->hasEffect(14) && $attacker !== $victim) {
$event->setCancelled(true);
return;
}
if ($victim->hasEffect(14) && $attacker !== $victim) {
$event->setCancelled(true);
return;
}
}
Хотя ща из своего апи вырежу
У тебя то самое апи в 1 класс?
ну ты написал то же самое, что и я, только сделал два бессмысленных условия))
ща бы сборище говнокода в один класс называть апи))
API (Application Programming Interface) - это набор инструкций и стандартов, которые позволяют разным программам взаимодействовать друг с другом. API определяет как различные компоненты программного обеспечения должны взаимодействовать между собой через стандартизированный интерфейс. При использовании API программист может использовать готовые функции и методы, не задумываясь о том, как они реализованы. API позволяет быстро разрабатывать и тестировать приложения, используя уже готовые компоненты, которые обычно предоставляют другие разработчики.
ну тип таво