63 lines
1.8 KiB
Java
63 lines
1.8 KiB
Java
/*
|
|
* Copyright (c) 2017 univento.eu - All rights reserved
|
|
* You are not allowed to use, distribute or modify this code
|
|
*/
|
|
|
|
package eu.univento.core.api.shop;
|
|
|
|
|
|
import eu.univento.core.api.player.CustomPlayer;
|
|
import org.bukkit.Bukkit;
|
|
import org.bukkit.entity.Player;
|
|
import org.bukkit.event.EventHandler;
|
|
import org.bukkit.event.Listener;
|
|
import org.bukkit.event.inventory.InventoryClickEvent;
|
|
import org.bukkit.inventory.Inventory;
|
|
import org.bukkit.plugin.Plugin;
|
|
|
|
import java.util.Collections;
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* @author joethei
|
|
* @version 1.0
|
|
*/
|
|
public class ShopMenu implements Listener{
|
|
|
|
private String name;
|
|
private List<ShopItem> items = new LinkedList<>();
|
|
|
|
|
|
public ShopMenu(Plugin plugin, String name, ShopItem... items) {
|
|
this.name = name;
|
|
Collections.addAll(this.items, items);
|
|
Bukkit.getPluginManager().registerEvents(this, plugin);
|
|
}
|
|
|
|
public Inventory getInventory() {
|
|
Inventory inv = Bukkit.createInventory(null, 18, name);
|
|
|
|
for(ShopItem item : items) inv.addItem(item.getItem());
|
|
|
|
return inv;
|
|
}
|
|
|
|
@EventHandler
|
|
public void onInventoryClick(InventoryClickEvent e) {
|
|
CustomPlayer p = CustomPlayer.getPlayer((Player) e.getWhoClicked());
|
|
for(ShopItem item : items) {
|
|
if(item.getItem().equals(e.getCurrentItem())) {
|
|
e.setCancelled(true);
|
|
p.getDatabasePlayer().getCurrency(item.getCurrencyType()).whenComplete((integer, throwable) -> {
|
|
if(integer >= item.getPrice()) {
|
|
p.getDatabasePlayer().buy(item.getCurrencyType(), item.getPrice());
|
|
}else {
|
|
p.sendMessage("Das ist zu teuer für dich");
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
} |