1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Не работает PlayerInteractEvent

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

Статус темы:
Закрыта.
  1. Автор темы
    leohacker

    leohacker Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Leohacker
    Делаю плагин для 1.18 не работает PlayerInteractEvent, registerEvents есть и он функционирует нормально т.к. другие ивенты работают.
    Код:
        @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
        public void a(PlayerInteractEvent e) {
            System.out.println("6");
            //e.setCancelled(true);
        }
    Не выводить ничего.
     
  2. alexandrage

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

    Баллы:
    173
    Ну может ивент уже кем то отменен, ignoreCancelled = true же.
     
  3. Автор темы
    leohacker

    leohacker Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Leohacker
    ignoreCancelled = true это же означает игнорировать отмену то есть если кто то её отменил то всё равно выполнить ивент
     
  4. MurlikMurlik

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

    Баллы:
    96
    Не совсем так. Он не выполнит твой метод если до этого кто то уже отменил ивент.
    https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/EventHandler.html
     
  5. alexandrage

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

    Баллы:
    173
    Ну вот он и игнорирует при отмене вызов этого метода.
     
  6. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Можно трактовать и так, но это неверно.
    В документации наверняка есть нормальное пояснение.
    Да и дословный перевод "игнорировать отмеренные". Если тру - будешь игнорировать.
    Короче говоря, если хочешь обрабатывать невзирая на другие плагины - ставь false. Вернее можешь вовсе убрать параметр, поскольку он по-умолчанию false
     
  7. alexandrage

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

    Баллы:
    173
    Типичный инглишь :D
     
  8. Автор темы
    leohacker

    leohacker Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Leohacker
    Можете теперь помочь мне с банжи вот такая ошибка
    Код:
    java.lang.IllegalArgumentException: Channel must contain : separator (attempted to use Bungeecord)
            at org.bukkit.plugin.messaging.StandardMessenger.validateAndCorrectChannel(StandardMessenger.java:503) ~[purpur-api-1.18.1-R0.1-SNAPSHOT.jar:?]
            at org.bukkit.plugin.messaging.StandardMessenger.isOutgoingChannelRegistered(StandardMessenger.java:428) ~[purpur-api-1.18.1-R0.1-SNAPSHOT.jar:?]
            at org.bukkit.plugin.messaging.StandardMessenger.validatePluginMessage(StandardMessenger.java:543) ~[purpur-api-1.18.1-R0.1-SNAPSHOT.jar:?]
            at org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer.sendPluginMessage(CraftPlayer.java:1753) ~[purpur-1.18.1.jar:git-Purpur-1523]
            at union.login.Main.sendServer(Main.java:191) ~[NoJoinMessage-1.0-SNAPSHOT.jar:?]
            at union.login.Main.a(Main.java:127) ~[NoJoinMessage-1.0-SNAPSHOT.jar:?]
            at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor28.execute(Unknown Source) ~[?:?]
            at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:75) ~[purpur-api-1.18.1-R0.1-SNAPSHOT.jar:?]
            at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:76) ~[purpur-api-1.18.1-R0.1-SNAPSHOT.jar:git-Purpur-1523]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[purpur-api-1.18.1-R0.1-SNAPSHOT.jar:?]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:630) ~[purpur-api-1.18.1-R0.1-SNAPSHOT.jar:?]
            at net.minecraft.server.network.ServerGamePacketListenerImpl.handleContainerClick(ServerGamePacketListenerImpl.java:2921) ~[?:?]
            at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:58) ~[?:?]
            at net.minecraft.network.protocol.game.ServerboundContainerClickPacket.handle(ServerboundContainerClickPacket.java:13) ~[?:?]
            at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:56) ~[?:?]
            at net.minecraft.server.TickTask.run(TickTask.java:18) ~[purpur-1.18.1.jar:git-Purpur-1523]
            at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:149) ~[?:?]
            at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:23) ~[?:?]
            at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1440) ~[purpur-1.18.1.jar:git-Purpur-1523]
            at net.minecraft.server.MinecraftServer.c(MinecraftServer.java:189) ~[purpur-1.18.1.jar:git-Purpur-1523]
            at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:122) ~[?:?]
            at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1418) ~[purpur-1.18.1.jar:git-Purpur-1523]
            at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1411) ~[purpur-1.18.1.jar:git-Purpur-1523]
            at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:132) ~[?:?]
            at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1389) ~[purpur-1.18.1.jar:git-Purpur-1523]
            at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1295) ~[purpur-1.18.1.jar:git-Purpur-1523]
            at net.minecraft.server.MinecraftServer.lambda$spin$1(MinecraftServer.java:322) ~[purpur-1.18.1.jar:git-Purpur-1523]
            at java.lang.Thread.run(Thread.java:833) ~[?:?]
    Вот строчка в onEnable
    Код:
    getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
    Функция
    Код:
    private void sendServer(Player player, String server) {
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            DataOutputStream dataOutputStream = new DataOutputStream(byteArrayOutputStream);
            try {
                dataOutputStream.writeUTF("Connect");
                dataOutputStream.writeUTF(server);
            } catch (IOException e) {
                e.printStackTrace();
            }
            player.sendPluginMessage(plugin, "Bungeecord", byteArrayOutputStream.toByteArray());
            player.sendMessage(ChatColor.GREEN + "Подключение к серверу....");
        }
    И вызов происходит здесь

    Код:
    @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = false)
    public void a(InventoryClickEvent e) {
        e.setCancelled(true);
        if (e.getCurrentItem() == null){
            return;
        }
        if (e.getCurrentItem().getType().equals(Material.DRAGON_HEAD) ){
            if (e.isLeftClick()) {
                sendServer((Player)e.getWhoClicked(), "vanilla");
            }
        }
    }
     
  9. ventureo

    ventureo Новичок Пользователь

    Баллы:
    11
    Имя в Minecraft:
    Cabopust
    ммм, название канала должно быть не Bungeecord, а BungeeCord. То есть тебя реестр неправильный.
     
  10. Автор темы
    leohacker

    leohacker Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Leohacker
    Спасибо заработало
     
Статус темы:
Закрыта.

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