Untitled
Anonymous
java
02/22/2026 6:06 PM
6.9 KB
11
Indexable
@EventHandler
public void onPlayerInteract(final PlayerInteractEvent event) {
final Action action = event.getAction();
final Player player = event.getPlayer();
if (event.getHand() != EquipmentSlot.HAND) return;
if (action != Action.RIGHT_CLICK_BLOCK) return;
final Block block = event.getClickedBlock();
if (block == null) return;
if (block.getType() != Material.SPAWNER) return;
final Location location = block.getLocation();
final RekusLocation spawnerLocation = RekusLocation.fromBukkitLocation(location);
final RekusSpawner spawner = getModule().getSpawners().get(spawnerLocation);
if (spawner == null) return;
if (!spawner.isBroken()) return;
final String cooldown = spawner.getCooldowns().isOnCooldown(player.getUniqueId());
final SpawnersConfig config = getModule().getConfig();
if (!cooldown.equals("-1")) {
player.sendMessage(ComponentUtil.deserialize(config.getCooldownMessage().replaceAll("%time%", cooldown)));
return;
}
if (spawner.getRepairingPlayer() == null) {
if(getModule().hasProgressTracker(player)) {
player.sendMessage(ComponentUtil.deserialize(config.getRepairingDifferentSpawnerMessage()));
return;
}
final ProgressTracker progressTracker = new ProgressTracker(player);
progressTracker.setup();
getModule().addProgressTracker(player, progressTracker);
spawner.setRepairingPlayer(player);
return;
} else if (spawner.getRepairingPlayer() != player) {
player.sendMessage(ComponentUtil.deserialize(config.getBeingRepairedByAnotherPlayerMessage()));
return;
}
final ProgressTracker progressTracker = getModule().getProgressTracker(player);
if (progressTracker == null) return;
if (progressTracker.getPosition() != progressTracker.getTargetPosition()) {
player.playSound(player, Sound.ENTITY_CAT_HISS, 1F, 0.8F);
progressTracker.setProgress(progressTracker.getProgress() - 1);
if(progressTracker.getProgress() == -1) {
progressTracker.getTask().cancel();
spawner.setRepairingPlayer(null);
getModule().removeProgressTracker(player);
spawner.addCooldown(player.getUniqueId());
player.sendMessage(ComponentUtil.deserialize(config.getFailedToRepairMessage()));
} else {
String randomMessage = ProgressTracker.SPAWNER_MESSAGES.get(nextInt(0, ProgressTracker.SPAWNER_MESSAGES.size()));
while (randomMessage.equals(progressTracker.getLastFailedMessage())) {
randomMessage = ProgressTracker.SPAWNER_MESSAGES.get(nextInt(0, ProgressTracker.SPAWNER_MESSAGES.size()));
}
progressTracker.setLastFailedMessage(randomMessage);
player.sendMessage(ComponentUtil.deserialize("&c" + randomMessage));
}
progressTracker.showBar();
return;
}
progressTracker.setProgress(progressTracker.getProgress() + 1);
if (progressTracker.getProgress() == 4) {
progressTracker.getTask().cancel();
progressTracker.showBar();
getModule().removeProgressTracker(player);
spawner.setRepairingPlayer(null);
spawner.repairSpawner();
player.resetTitle();
player.showTitle(Title.title(
ComponentUtil.deserialize("�FF45&lN�FC43&la�F941&lp�F73F&lr�F43D&la�F13A&lw�EE38&li�EC36&lł�E934&le�E632&lś �E02E&ls�DE2C&lp�DB2A&la�D827&lw�D525&ln�D323&le�D021&lr�CD1F&l!"),
ComponentUtil.deserialize(""),
Title.Times.times(Duration.ofMillis(500), Duration.ofSeconds(3), Duration.ofMillis(500))
));
player.playSound(player, Sound.BLOCK_NOTE_BLOCK_PLING, 1, 1.5f);
Bukkit.getScheduler().runTaskLater(MCRekus.getInstance(), () ->
player.playSound(player, Sound.BLOCK_NOTE_BLOCK_PLING, 1, 1.7f), 10L);
Bukkit.getScheduler().runTaskLater(MCRekus.getInstance(), () ->
player.playSound(player, Sound.BLOCK_NOTE_BLOCK_PLING, 1, 2.0f), 20L);
Bukkit.getScheduler().runTaskLater(MCRekus.getInstance(), () ->
player.playSound(player, Sound.ENTITY_GENERIC_EXPLODE, 1, 0.9f), 20L);
} else {
final int baseLineLength = ProgressTracker.BASE_LINE.length();
int randomPosition = new Random().nextInt(baseLineLength);
while (randomPosition == progressTracker.getTargetPosition()) {
randomPosition = new Random().nextInt(baseLineLength);
}
player.playSound(player, Sound.ENTITY_EXPERIENCE_ORB_PICKUP, 1F, 1.3F);
progressTracker.setTargetPosition(randomPosition);
progressTracker.showTitle();
progressTracker.showBar();
}
}Editor is loading...
Leave a Comment