|
18 | 18 |
|
19 | 19 | public class PlayerInteractListener implements Listener { |
20 | 20 | @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = false) |
21 | | - public void onClick(PlayerInteractEvent event) { |
22 | | - switch (event.getAction()) { |
23 | | - case RIGHT_CLICK_AIR: |
24 | | - rightClick(event); |
25 | | - break; |
26 | | - case RIGHT_CLICK_BLOCK: |
27 | | - rightClickBlock(event); |
28 | | - break; |
29 | | - case LEFT_CLICK_BLOCK: |
30 | | - leftClickBlock(event); |
31 | | - break; |
32 | | - case LEFT_CLICK_AIR: |
33 | | - case PHYSICAL: |
34 | | - default: |
35 | | - break; |
36 | | - } |
| 21 | + public void onClick(@NotNull PlayerInteractEvent event) { |
| 22 | + event.setCancelled(switch (event.getAction()) { |
| 23 | + case RIGHT_CLICK_AIR -> rightClick(event); |
| 24 | + case RIGHT_CLICK_BLOCK -> rightClickBlock(event); |
| 25 | + case LEFT_CLICK_BLOCK -> leftClickBlock(event); |
| 26 | + default -> false; |
| 27 | + }); |
37 | 28 | } |
38 | 29 |
|
39 | | - private void leftClickBlock(@NotNull PlayerInteractEvent event) { |
40 | | - if (event.getPlayer().getInventory().getItemInMainHand().getType() != Material.STONE_BUTTON) |
41 | | - return; |
42 | | - |
| 30 | + private boolean leftClickBlock(@NotNull PlayerInteractEvent event) { |
43 | 31 | Material type = event.getClickedBlock().getType(); |
44 | | - if(!Tag.SIGNS.isTagged(type)) |
45 | | - return; |
| 32 | + if (!Tag.SIGNS.isTagged(type)) |
| 33 | + return false; |
46 | 34 |
|
47 | 35 | Sign sign = (Sign) event.getClickedBlock().getState(); |
48 | 36 | if (!sign.getLine(0).equalsIgnoreCase("Mounted") || !sign.getLine(1).equalsIgnoreCase("Gun")) |
49 | | - return; |
50 | | - |
51 | | - // If a player left clicks the mounted gun with a stone button in hand, |
52 | | - // show them the statistics for the plugin (Damage, Knockback, Velocity, etc.) |
| 37 | + return false; |
| 38 | + |
| 39 | + if (event.getPlayer().getInventory().getItemInMainHand().getType() != Material.STONE_BUTTON) |
| 40 | + return true; |
| 41 | + |
| 42 | + // If a player left-clicks the mounted gun with a stone button in hand, show them the statistics for the plugin (Damage, Knockback, Velocity, etc.) |
53 | 43 | event.getPlayer().sendMessage("\n" |
54 | 44 | + ChatColor.GOLD + "Damage/Shot: " + ChatColor.GRAY + Config.Damage + "\n" |
55 | 45 | + ChatColor.GOLD + "Delay Between Shots: " + ChatColor.GRAY + Config.DelayBetweenShots + "\n" |
56 | 46 | + ChatColor.GOLD + "Velocity: " + ChatColor.GRAY + Config.ArrowVelocity + "\n" |
57 | 47 | + ChatColor.GOLD + "Fire Chance: " + ChatColor.GRAY + Config.IncindiaryChance * 100.0D + "%\n" |
58 | 48 | + ChatColor.GOLD + "Knockback: " + ChatColor.GRAY + Config.KnockbackStrength + "\n" |
59 | 49 | + ChatColor.GOLD + "Cost to Place: $" + ChatColor.GRAY + Config.CostToPlace); |
60 | | - event.setCancelled(true); |
| 50 | + return true; |
61 | 51 | } |
62 | 52 |
|
63 | | - private void rightClickBlock(@NotNull PlayerInteractEvent event) { |
| 53 | + private boolean rightClickBlock(@NotNull PlayerInteractEvent event) { |
64 | 54 | Material type = event.getClickedBlock().getType(); |
65 | | - if(!Tag.SIGNS.isTagged(type)) |
66 | | - return; |
| 55 | + if (!Tag.SIGNS.isTagged(type)) |
| 56 | + return false; |
67 | 57 |
|
68 | 58 | Sign sign = (Sign) event.getClickedBlock().getState(); |
69 | 59 | if (!sign.getLine(0).equalsIgnoreCase("Mounted") || !sign.getLine(1).equalsIgnoreCase("Gun")) |
70 | | - return; |
| 60 | + return false; |
71 | 61 |
|
72 | 62 | if (event.getClickedBlock().getRelative(BlockFace.DOWN).getType() == Material.SLIME_BLOCK) |
73 | | - return; |
| 63 | + return true; |
74 | 64 |
|
75 | 65 | Location signPos = event.getClickedBlock().getLocation(); |
76 | 66 | signPos.setPitch(event.getPlayer().getLocation().getPitch()); |
77 | 67 | signPos.setDirection(event.getPlayer().getVelocity()); |
78 | 68 | TurretsMain.getInstance().getTurretManager().mount(event.getPlayer(), signPos); |
| 69 | + return true; |
79 | 70 | } |
80 | 71 |
|
81 | | - private void rightClick(PlayerInteractEvent event) { |
| 72 | + private boolean rightClick(@NotNull PlayerInteractEvent event) { |
82 | 73 | Player player = event.getPlayer(); |
83 | 74 | if (!TurretsMain.getInstance().getTurretManager().isOnTurret(player) || !player.hasPermission("ap-turrets.use")) |
84 | | - return; |
| 75 | + return false; |
85 | 76 |
|
86 | 77 | if (player.getInventory().getItemInMainHand().getType() == Material.MILK_BUCKET |
87 | 78 | || player.getInventory().getItemInOffHand().getType() == Material.MILK_BUCKET) { |
88 | 79 | // If the player tries to use milk to clear the effects, cancel the event to keep that from happening |
89 | | - event.setCancelled(true); |
90 | | - return; |
| 80 | + return true; |
91 | 81 | } |
92 | 82 |
|
93 | 83 | if (player.getInventory().getItemInMainHand().getType() != Material.STONE_BUTTON |
94 | 84 | && player.getInventory().getItemInOffHand().getType() != Material.STONE_BUTTON) |
95 | | - return; |
| 85 | + return false; |
96 | 86 |
|
97 | 87 | if (TurretsMain.getInstance().getTurretManager().isReloading(player)) |
98 | | - return; |
| 88 | + return false; |
99 | 89 |
|
100 | 90 | // Fires the turret and keeps them from interacting with something else and placing the button accidentally |
101 | 91 | TurretsMain.getInstance().getTurretManager().fire(player); |
102 | | - event.setCancelled(true); |
| 92 | + return true; |
103 | 93 | } |
104 | 94 | } |
0 commit comments