src/main/java/de/mviper/adventskalender/AdventListener.java aktualisiert
This commit is contained in:
@@ -1,58 +1,56 @@
|
|||||||
package de.mviper.adventskalender;
|
package de.mviper.adventskalender;
|
||||||
|
|
||||||
import org.bukkit.*;
|
import org.bukkit.*;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.Month;
|
import java.time.Month;
|
||||||
|
|
||||||
public class AdventListener implements Listener {
|
public class AdventListener implements Listener {
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onInventoryClick(InventoryClickEvent event) {
|
public void onInventoryClick(InventoryClickEvent event) {
|
||||||
// KORREKTUR: Wir verwenden den gleichen Schlüssel wie in der AdventInventory.java,
|
String translatedTitle = LanguageManager.getString("gui.title");
|
||||||
// um den Titel zu laden. So sind beide Titel identisch.
|
|
||||||
String translatedTitle = LanguageManager.getString("gui.title");
|
if (event.getView().getTitle().equals(translatedTitle)) {
|
||||||
|
event.setCancelled(true);
|
||||||
if (event.getView().getTitle().equals(translatedTitle)) {
|
|
||||||
event.setCancelled(true); // Diese Zeile wird jetzt wieder ausgeführt!
|
if (!(event.getWhoClicked() instanceof Player)) return;
|
||||||
|
Player player = (Player) event.getWhoClicked();
|
||||||
if (!(event.getWhoClicked() instanceof Player)) return;
|
|
||||||
Player player = (Player) event.getWhoClicked();
|
int slot = event.getSlot();
|
||||||
|
if (slot < 0 || slot > 23) return;
|
||||||
int slot = event.getSlot();
|
|
||||||
if (slot < 0 || slot > 23) return;
|
int day = slot + 1;
|
||||||
|
LocalDate today = LocalDate.now();
|
||||||
int day = slot + 1;
|
|
||||||
LocalDate today = LocalDate.now();
|
if (today.getMonth() == Month.DECEMBER && today.getDayOfMonth() >= day && !CalendarData.hasClaimed(player, day)) {
|
||||||
|
ItemStack reward = AdventInventory.getRewardItem(day);
|
||||||
if (today.getMonth() == Month.DECEMBER && today.getDayOfMonth() >= day && !CalendarData.hasClaimed(player, day)) {
|
if (reward != null && reward.getType() != Material.AIR) {
|
||||||
ItemStack reward = AdventInventory.getRewardItem(day);
|
if (player.getInventory().firstEmpty() == -1) {
|
||||||
if (reward != null && reward.getType() != Material.AIR) {
|
player.getWorld().dropItemNaturally(player.getLocation(), reward);
|
||||||
if (player.getInventory().firstEmpty() == -1) {
|
player.sendMessage(LanguageManager.getString("messages.inventory_full"));
|
||||||
player.getWorld().dropItemNaturally(player.getLocation(), reward);
|
} else {
|
||||||
player.sendMessage(LanguageManager.getString("messages.inventory_full"));
|
player.getInventory().addItem(reward);
|
||||||
} else {
|
}
|
||||||
player.getInventory().addItem(reward);
|
player.sendMessage(LanguageManager.getString("messages.reward_received").replace("%day%", String.valueOf(day)));
|
||||||
}
|
|
||||||
player.sendMessage(LanguageManager.getString("messages.reward_received").replace("%day%", String.valueOf(day)));
|
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1.0f, 1.0f);
|
||||||
|
player.spawnParticle(Particle.VILLAGER_HAPPY, player.getLocation().add(0, 1, 0), 20, 0.5, 0.5, 0.5, 0);
|
||||||
player.playSound(player.getLocation(), Sound.ENTITY_PLAYER_LEVELUP, 1.0f, 1.0f);
|
}
|
||||||
player.spawnParticle(Particle.VILLAGER_HAPPY, player.getLocation().add(0, 1, 0), 20, 0.5, 0.5, 0.5, 0);
|
|
||||||
}
|
CalendarData.setClaimed(player, day);
|
||||||
|
ItemStack newItem = AdventInventory.getCalendarItem(player, day);
|
||||||
CalendarData.setClaimed(player, day);
|
event.getInventory().setItem(slot, newItem);
|
||||||
ItemStack newItem = AdventInventory.getCalendarItem(player, day);
|
|
||||||
event.getInventory().setItem(slot, newItem);
|
} else {
|
||||||
|
player.sendMessage(LanguageManager.getString("messages.day_not_available"));
|
||||||
} else {
|
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1.0f, 1.0f);
|
||||||
player.sendMessage(LanguageManager.getString("messages.day_not_available"));
|
}
|
||||||
player.playSound(player.getLocation(), Sound.ENTITY_VILLAGER_NO, 1.0f, 1.0f);
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user