|
61 | 61 | import org.bukkit.event.Event; |
62 | 62 | import org.bukkit.event.Event.Result; |
63 | 63 | import org.bukkit.event.EventHandler; |
| 64 | +import org.bukkit.event.inventory.InventoryOpenEvent; |
64 | 65 | import org.bukkit.event.player.PlayerTakeLecternBookEvent; |
65 | 66 | import org.bukkit.event.vehicle.VehicleExitEvent; |
66 | 67 |
|
@@ -410,13 +411,15 @@ public void onUseEntity(UseEntityEvent event) { |
410 | 411 | canUse = event.getRelevantFlags().isEmpty() || query.queryState(BukkitAdapter.adapt(target), associable, combine(event)) != State.DENY; |
411 | 412 | what = "use that"; |
412 | 413 | /* Paintings, item frames, etc. */ |
413 | | - } else if (Entities.isConsideredBuildingIfUsed(entity)) { |
| 414 | + } else if (Entities.isConsideredBuildingIfUsed(entity) |
| 415 | + // weird case since sneak+interact is chest access and not ride |
| 416 | + || type == EntityType.CHEST_BOAT && event.getOriginalEvent() instanceof InventoryOpenEvent) { |
414 | 417 | if ((type == EntityType.ITEM_FRAME || type == EntityType.GLOW_ITEM_FRAME) |
415 | 418 | && event.getCause().getFirstPlayer() != null |
416 | 419 | && ((ItemFrame) entity).getItem().getType() != Material.AIR) { |
417 | 420 | canUse = query.testBuild(BukkitAdapter.adapt(target), associable, combine(event, Flags.ITEM_FRAME_ROTATE)); |
418 | 421 | what = "change that"; |
419 | | - } else if (Entities.isMinecart(type)) { |
| 422 | + } else if (Entities.isMinecart(type) || type == EntityType.CHEST_BOAT) { |
420 | 423 | canUse = query.testBuild(BukkitAdapter.adapt(target), associable, combine(event, Flags.CHEST_ACCESS)); |
421 | 424 | what = "open that"; |
422 | 425 | } else { |
|
0 commit comments