diff --git a/src/main/java/com/alpsbte/plotsystem/core/EventListener.java b/src/main/java/com/alpsbte/plotsystem/core/EventListener.java index 5817f453..e15bbc83 100644 --- a/src/main/java/com/alpsbte/plotsystem/core/EventListener.java +++ b/src/main/java/com/alpsbte/plotsystem/core/EventListener.java @@ -101,10 +101,13 @@ public void onPlayerJoinEvent(@NotNull PlayerJoinEvent event) { @EventHandler public void onPlayerInteractEvent(@NotNull PlayerInteractEvent event) { if (event.getAction().equals(Action.RIGHT_CLICK_BLOCK) || event.getAction().equals(Action.RIGHT_CLICK_AIR)) { - if (event.getItem() != null && event.getItem().equals(CompanionMenu.getMenuItem(event.getPlayer()))) { - event.getPlayer().performCommand("companion"); - } else if (event.getItem() != null && event.getItem().equals(ReviewMenu.getMenuItem(event.getPlayer()))) { - event.getPlayer().performCommand("review"); + Player player = event.getPlayer(); + if (event.getItem() != null && event.getItem().equals(CompanionMenu.getMenuItem(player)) + && player.hasPermission("plotsystem.companion")) { + player.performCommand("companion"); + } else if (event.getItem() != null && event.getItem().equals(ReviewMenu.getMenuItem(player)) + && player.hasPermission("plotsystem.review")) { + player.performCommand("review"); } } @@ -269,8 +272,9 @@ private void handleIronTrapdoorClick(@NotNull PlayerInteractEvent event) { private void sendNotices(@NotNull Player player, Builder builder) { sendReviewNotices(player, builder); - // Start or notify the player if he has not completed the beginner tutorial yet (only if required) - if (TutorialPlot.isRequiredAndInProgress(TutorialCategory.BEGINNER.getId(), player.getUniqueId())) { + // Start or notify only when the player can actually run /tutorial + if (player.hasPermission("plotsystem.tutorial") + && TutorialPlot.isRequiredAndInProgress(TutorialCategory.BEGINNER.getId(), player.getUniqueId())) { if (!player.hasPlayedBefore()) { // If disabled, the player has to start the tutorial manually if (PlotSystem.getPlugin().getConfig().getBoolean(ConfigPaths.BEGINNER_TUTORIAL_START_ON_FIRST_JOIN, true)) diff --git a/src/main/java/com/alpsbte/plotsystem/utils/Utils.java b/src/main/java/com/alpsbte/plotsystem/utils/Utils.java index c55797c2..c92f9354 100644 --- a/src/main/java/com/alpsbte/plotsystem/utils/Utils.java +++ b/src/main/java/com/alpsbte/plotsystem/utils/Utils.java @@ -76,11 +76,18 @@ public static Location getSpawnLocation() { public static void updatePlayerInventorySlots(Player player) { Bukkit.getScheduler().runTaskAsynchronously(PlotSystem.getPlugin(), () -> { - // Add Items - player.getInventory().setItem(8, CompanionMenu.getMenuItem(player)); + // Only place hotbar shortcuts the player can actually use + if (player.hasPermission("plotsystem.companion")) { + player.getInventory().setItem(8, CompanionMenu.getMenuItem(player)); + } else { + player.getInventory().setItem(8, ItemStack.empty()); + } + if (player.hasPermission("plotsystem.review")) { player.getInventory().setItem(7, ReviewMenu.getMenuItem(player)); - } else player.getInventory().setItem(7, ItemStack.empty()); + } else { + player.getInventory().setItem(7, ItemStack.empty()); + } }); }