Created
October 8, 2025 13:44
-
-
Save TheMeinerLP/0f9efab5e7173e1aa36b187463b7a595 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package net.onelitefeather.antiredstoneclockremastered.listener; | |
| import jakarta.inject.Inject; | |
| import net.kyori.adventure.text.Component; | |
| import net.onelitefeather.antiredstoneclockremastered.AntiRedstoneClockRemastered; | |
| import net.onelitefeather.antiredstoneclockremastered.service.api.RedstoneClockService; | |
| import net.onelitefeather.antiredstoneclockremastered.service.UpdateService; | |
| import net.onelitefeather.antiredstoneclockremastered.utils.Constants; | |
| import org.bukkit.block.BlockFace; | |
| import org.bukkit.event.EventHandler; | |
| import org.bukkit.event.EventPriority; | |
| import org.bukkit.event.Listener; | |
| import org.bukkit.event.block.BlockBreakEvent; | |
| import org.bukkit.event.player.PlayerJoinEvent; | |
| public final class PlayerListener implements Listener { | |
| private final RedstoneClockService redstoneClockService; | |
| private final UpdateService updateService; | |
| @Inject | |
| public PlayerListener(RedstoneClockService redstoneClockService, UpdateService updateService) { | |
| this.redstoneClockService = redstoneClockService; | |
| this.updateService = updateService; | |
| } | |
| @EventHandler | |
| private void onPlayerJoinEvent(PlayerJoinEvent playerJoinEvent) { | |
| var player = playerJoinEvent.getPlayer(); | |
| if (player.isOp() || (player.hasPermission(Constants.PERMISSION_NOTIFY) && !player.hasPermission(Constants.DISABLE_DONATION_NOTIFY))) { | |
| player.sendMessage(Component.translatable("antiredstoneclockremastered.notify.donation.player").arguments(AntiRedstoneClockRemastered.PREFIX)); | |
| } | |
| if (player.isOp() || player.hasPermission(Constants.PERMISSION_NOTIFY_UPDATE)) { | |
| this.updateService.notifyPlayer(player); | |
| } | |
| } | |
| @EventHandler(priority = EventPriority.HIGHEST) | |
| private void onBlockBreak(BlockBreakEvent blockBreakEvent) { | |
| var block = blockBreakEvent.getBlock(); | |
| recheck: | |
| if (Constants.REDSTONE_ITEMS.contains(block.getType())) { | |
| this.redstoneClockService.removeClockByLocation(block.getLocation()); | |
| } else { | |
| block = block.getRelative(BlockFace.UP); | |
| break recheck; | |
| } | |
| } | |
| @EventHandler(priority = EventPriority.HIGHEST) | |
| private void onSignBlockBreak(BlockBreakEvent blockBreakEvent) { | |
| var block = blockBreakEvent.getBlock(); | |
| var hasKey = block.hasMetadata(Constants.META_KEY_ARCR_SIGN); | |
| if (hasKey) { | |
| blockBreakEvent.setDropItems(false); | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment