Skip to content

[1.18.2] PlayerInteractEvent 双重触发问题 #843

Open
@NattoCB

Description

@NattoCB

运行环境

Minecraft版本(1.12.2/1.16.5/1.18.2): 1.18.2
构建版本(从/version指令获取): bc64e1f
相关模组/插件: 如下案例

    @EventHandler
    public void onInteract(PlayerInteractEvent e) {
        String u = UUID.randomUUID().toString();
        Player p = e.getPlayer();
        ItemStack i = e.getItem();
        EquipmentSlot h = e.getHand();
        Block cb = e.getClickedBlock();
        p.sendMessage(u + " hash: " + e.hashCode());
        p.sendMessage(u + " material: " + e.getMaterial().name());
        p.sendMessage(u + " hasBlock: " + e.hasBlock());
        p.sendMessage(u + " hasItem: " + e.hasItem());
        p.sendMessage(u + " itemType: " + (i == null ? null : i.getType().name()));
        p.sendMessage(u + " action: " + e.getAction().name());
        p.sendMessage(u + " blockFace: " + e.getBlockFace().name());
        p.sendMessage(u + " hand: "+ (h == null ? null : h.name()));
        p.sendMessage(u + " clickedBlock: "+ (cb == null ? null : cb.getType().name() + " " + cb.getX() + " " + cb.getY() + " " + cb.getZ()));
    }

描述这个BUG

互动空气时,PlayerInteractEvent 正常触发一次

0ad4c5ab47bb5721d7edfb3f3c5190e

互动方块时,PlayerInteractEvent 异常触发两次

e6f9b2669e05c98a4ed647a3f7d9406

导致的问题

PlayerInteractEvent 相关的 handlers 及逻辑被二次触发

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions