For some reason the placeholder doesn't get parsed when creating a bossbar (it gets parsed in commands though)
@EventHandler
public void ExitTownBorder(PlayerExitsFromTownBorderEvent event) {
int remainingTime = (Integer.parseInt(Objects.requireNonNull(getConfig().getString("protection_time_after_exiting_town_border"))));
Player player = Bukkit.getPlayer(uuid);
protectionExpirationTime.put(event.getPlayer(), (long) remainingTime*1000L + System.currentTimeMillis());
BukkitTask task = Bukkit.getScheduler().runTaskLater(plugin, () -> removePlayerIfExpired(event.getPlayer()), remainingTime*20L);
cancelProtectionTask.put(event.getPlayer(), task);
BukkitTask updateProgress = new UpdateBossBarProgress(event.getPlayer()).runTaskTimer(plugin, 20, 20);
runningBossBars.put(event.getPlayer(), updateProgress);
String bossBarText = PlaceholderAPI.setPlaceholders(player, getConfig().getString("bossbar_message","You are protected for %townywild_countdown%!"));
String bossbarColor = getConfig().getString("bossbar_color");
String bossbarStyle = getConfig().getString("bossbar_style");
bossBarText = ChatColor.translateAlternateColorCodes('&', bossBarText);
timeLeftBar.addPlayer(event.getPlayer());
timeLeftBar.setTitle(bossBarText);
timeLeftBar.setColor(BarColor.valueOf(bossbarColor));
timeLeftBar.setStyle(BarStyle.valueOf(bossbarStyle));
}```