Skip to content
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.gradle
.idea
build
target
13 changes: 13 additions & 0 deletions BattlePass.iml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="minecraft" name="Minecraft">
<configuration>
<autoDetectTypes>
<platformType>SPIGOT</platformType>
</autoDetectTypes>
<projectReimportVersion>1</projectReimportVersion>
</configuration>
</facet>
</component>
</module>
6 changes: 4 additions & 2 deletions src/main/java/com/Lino/battlePass/BattlePass.java
Original file line number Diff line number Diff line change
Expand Up @@ -92,14 +92,16 @@ public void run() {
coinsDistributionTask = new CoinsDistributionTask(BattlePass.this);
if (nextDist != null) {
coinsDistributionTask.setNextDistribution(nextDist);
} else {
coinsDistributionTask.resetDistributionTime();
}
coinsDistributionTask.runTaskTimer(BattlePass.this, 200L, 1200L);
});

registerPlaceholders();
checkForUpdates();

getLogger().info(messageManager.getMessage("messages.plugin-enabled"));
getLogger().info("✓ Battle Pass enabled successfully!");
this.cancel();
} else if (attempts >= MAX_ATTEMPTS) {
getLogger().severe("Failed to initialize MissionManager after 30 seconds!");
Expand Down Expand Up @@ -216,7 +218,7 @@ public void reload() {
boolean isBattlePassGUI = false;
int currentPage = 1;

for (int i = 1; i <= 6; i++) {
for (int i = 1; i <= rewardManager.getMaxPage(); i++) {
if (title.equals(messageManager.getMessage("gui.battlepass", "%page%", String.valueOf(i)))) {
isBattlePassGUI = true;
currentPage = i;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ private boolean handleXPCommand(CommandSender sender, String[] args, boolean add
totalXP = Math.max(0, totalXP - amount);

int newLevel = 1;
while (totalXP >= xpPerLevel && newLevel < 54) {
while (totalXP >= xpPerLevel && newLevel < plugin.getRewardManager().getMaxLevel()) {
totalXP -= xpPerLevel;
newLevel++;
}
Expand Down Expand Up @@ -480,7 +480,7 @@ private boolean handleGiveItemCommand(CommandSender sender, String[] args) {
private void checkLevelUp(Player player, PlayerData data, int xpPerLevel) {
boolean leveled = false;

while (data.xp >= xpPerLevel && data.level < 54) {
while (data.xp >= xpPerLevel && data.level < plugin.getRewardManager().getMaxLevel()) {
data.xp -= xpPerLevel;
data.level++;
data.totalLevels++;
Expand All @@ -491,7 +491,7 @@ private void checkLevelUp(Player player, PlayerData data, int xpPerLevel) {
"%level%", String.valueOf(data.level)));
player.playSound(player.getLocation(), Sound.UI_TOAST_CHALLENGE_COMPLETE, 1.0f, 1.0f);

int available = plugin.getRewardManager().countAvailableRewards(player, data);
int available = plugin.getRewardManager().countAvailableRewards(data);
if (available > 0) {
player.sendMessage(plugin.getMessageManager().getPrefix() +
plugin.getMessageManager().getMessage("messages.new-rewards"));
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/com/Lino/battlePass/gui/BattlePassGui.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ private void setupProgressItem(Inventory gui) {
.replace("%level%", String.valueOf(playerData.level))
.replace("%xp%", String.valueOf(playerData.xp))
.replace("%xp_needed%", String.valueOf(plugin.getConfigManager().getXpPerLevel()))
.replace("%max_level%", String.valueOf(maxLevel))
.replace("%premium_status%", premiumStatus)
.replace("%season_time%", plugin.getMissionManager().getTimeUntilSeasonEnd());
lore.add(GradientColorParser.parse(processedLine));
Expand Down Expand Up @@ -209,8 +210,7 @@ private void setupNavigationButtons(Inventory gui) {
gui.setItem(45, createNavigationItem(false, page - 1));
}

int maxPages = (int) Math.ceil(maxLevel / 9.0);
if (page < maxPages) {
if (page < plugin.getRewardManager().getMaxPage()) {
gui.setItem(53, createNavigationItem(true, page + 1));
}
}
Expand Down
5 changes: 3 additions & 2 deletions src/main/java/com/Lino/battlePass/gui/RewardsEditorGui.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ public void open() {
}

Inventory gui = createInventory();
String maxLevel = String.valueOf(plugin.getRewardManager().getMaxLevel());

ItemStack freeRewards = new ItemStack(Material.CHEST);
ItemMeta freeMeta = freeRewards.getItemMeta();
Expand All @@ -39,7 +40,7 @@ public void open() {
freeLore.add(GradientColorParser.parse("&7that all players can claim"));
freeLore.add("");
freeLore.add(GradientColorParser.parse("<gradient:#4ECDC4:#45B7D1>▼ Features ▼</gradient>"));
freeLore.add(GradientColorParser.parse("&7• View all 54 levels"));
freeLore.add(GradientColorParser.parse("&7• View all %max_level% levels".replace("%max_level%", maxLevel)));
freeLore.add(GradientColorParser.parse("&7• Add/remove items"));
freeLore.add(GradientColorParser.parse("&7• Configure commands"));
freeLore.add("");
Expand All @@ -59,7 +60,7 @@ public void open() {
premiumLore.add(GradientColorParser.parse("&7exclusive to premium pass holders"));
premiumLore.add("");
premiumLore.add(GradientColorParser.parse("<gradient:#FFD700:#FF6B6B>▼ Features ▼</gradient>"));
premiumLore.add(GradientColorParser.parse("&7• View all 54 levels"));
premiumLore.add(GradientColorParser.parse("&7• View all %max_level% levels".replace("%max_level%", maxLevel)));
premiumLore.add(GradientColorParser.parse("&7• Add/remove items"));
premiumLore.add(GradientColorParser.parse("&7• Configure commands"));
premiumLore.add("");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ private void handleLevelBoostUse(PlayerInteractEvent event, Player player) {
}

if (levelsGained > 0) {
int available = plugin.getRewardManager().countAvailableRewards(player, data);
int available = plugin.getRewardManager().countAvailableRewards(data);
if (available > 0) {
player.sendMessage(plugin.getMessageManager().getPrefix() +
plugin.getMessageManager().getMessage("messages.new-rewards"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,7 @@ private void handleBattlePassClick(Player player, ItemStack clicked, int slot) {
String action = meta.getPersistentDataContainer().get(plugin.getEventManager().getNavigationKey(), PersistentDataType.STRING);

// Calcolo dinamico delle pagine massime
int maxLevel = plugin.getRewardManager().getMaxLevel();
int maxPages = (int) Math.ceil(maxLevel / 9.0);
int maxPages = plugin.getRewardManager().getMaxPage();
if (maxPages < 1) maxPages = 1;

if ("previous".equals(action) && currentPage > 1) {
Expand Down Expand Up @@ -197,21 +196,19 @@ private void handleDailyRewardClaim(Player player, int currentPage) {
data.lastDailyReward = now;

int xpPerLevel = plugin.getConfigManager().getXpPerLevel();
boolean leveled = false;
int maxLevel = plugin.getRewardManager().getMaxLevel();

while (data.xp >= xpPerLevel && data.level < maxLevel) {
data.xp -= xpPerLevel;
data.level++;
data.totalLevels++;
leveled = true;

player.sendMessage(plugin.getMessageManager().getPrefix() +
plugin.getMessageManager().getMessage("messages.level-up",
"%level%", String.valueOf(data.level)));
player.playSound(player.getLocation(), Sound.UI_TOAST_CHALLENGE_COMPLETE, 1.0f, 1.0f);

int available = plugin.getRewardManager().countAvailableRewards(player, data);
int available = plugin.getRewardManager().countAvailableRewards(data);
if (available > 0) {
player.sendMessage(plugin.getMessageManager().getPrefix() +
plugin.getMessageManager().getMessage("messages.new-rewards"));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ private void handleDetailsClick(Player player, InventoryClickEvent event, String
if (slot == 12) {
ConfigurationSection section = plugin.getConfigManager().getMissionsConfig().getConfigurationSection("mission-pools." + key);
if (section != null) {
String missionType = section.getString("type");
String missionType = section.getString("type", "UNKNOWN");
isTargetRequired = plugin.getMissionEditorManager().isTargetRequired(missionType);
}
}
Expand Down
Loading