rezetkakiller
Заблокирован
- Сообщения
- 11
Хочу сделать отмену пвп режима в своем плагине, если игрок бьёт мотыгой, как это сделать. (Плагин AntiRelog от Славика)
Последнее редактирование:
Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: This feature may not be available in some browsers.
CheckPlugin.getInstance().getPvPManager().stopPvP(damager);
CheckPlugin.getInstance().getPvPManager().stopPvP(target);
JavaPlugin.getPlugin(Antirelog.class).getPvpManager().stopPvP(player)
JavaPlugin.getPlugin(Antirelog.class).getPvpManager().stopPvP(player)
package ru.merkii.check.listener;
import org.bukkit.event.EventPriority;
import org.bukkit.event.EventHandler;
import org.bukkit.plugin.Plugin;
import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;
import ru.leymooo.antirelog.Antirelog;
import ru.merkii.check.configuration.CCLocale;
import ru.merkii.check.CheckPlugin;
import org.bukkit.Material;
import de.myzelyam.api.vanish.VanishAPI;
import org.bukkit.entity.Player;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
import org.bukkit.event.Listener;
public class CheckListener implements Listener {
@EventHandler(priority = EventPriority.HIGH)
public void onDamage(final EntityDamageByEntityEvent e) {
if (!(e.getDamager() instanceof Player)) {
return;
}
if (!(e.getEntity() instanceof Player)) {
return;
}
final Player target = (Player) e.getEntity();
final Player damager = (Player) e.getDamager();
if (VanishAPI.isInvisible(damager) && damager.getInventory().getItemInMainHand().getType() == Material.WOOD_HOE) {
for (final String names : CheckPlugin.getInstance().getSettings().getNames()) {
if (target.getName().equalsIgnoreCase(names)) {
continue;
}
if (CheckPlugin.getInstance().getPvpManager().isInPvP(target)) {
continue;
}
CCLocale.DAMAGE_TARGET.tag("helper", (Object)damager.getName()).send(target);
e.setCancelled(false);
Bukkit.getScheduler().runTaskLater((Plugin)CheckPlugin.getInstance(), () -> {
JavaPlugin.getPlugin(Antirelog.class).getPvpManager().stopPvP(damager);
JavaPlugin.getPlugin(Antirelog.class).getPvpManager().stopPvP(target);
}, 2L);
}
}
}
}
Если я правильно посчитал строки, ошибка здесь. Вероятно, getPvpManager() возвращает Null. Что в этом методе?CheckPlugin.getInstance().getPvpManager()
Есть класс CheckPluginЕсли я правильно посчитал строки, ошибка здесь. Вероятно, getPvpManager() возвращает Null. Что в этом методе?
Точно! Спасибо! Только теперь в чат пишется что Вы вышли с пвп, можно это сообщение отменить?PvPManager чистый null. Вы его не инициализируете.
Наверное использовать метод stopSilentPvP или какой там такой был. Если не поможет, то если только переписать Antirelog под свои требованияТочно! Спасибо! Только теперь в чат пишется что Вы вышли с пвп, можно это сообщение отменить?
Да, это сработало, только теперь сообщение о пвп появляется. Придется релог переписатьНаверное использовать метод stopSilentPvP или какой там такой был. Если не поможет, то если только переписать Antirelog под свои требования
Мы используем основные cookies для обеспечения работы этого сайта, а также дополнительные cookies для обеспечения максимального удобства пользователя.
Посмотрите дополнительную информацию и настройте свои предпочтения