Quakecraft/src/com/Geekpower14/Quake/Shop/ShopManager.java
2019-10-12 13:56:34 +02:00

516 lines
22 KiB
Java

package com.Geekpower14.Quake.Shop;
import com.Geekpower14.Quake.Arena.APlayer;
import com.Geekpower14.Quake.Eco.EcoManager;
import com.Geekpower14.Quake.Quake;
import com.Geekpower14.Quake.Stuff.Armor.ArmorBasic;
import com.Geekpower14.Quake.Stuff.Hat.HatBasic;
import com.Geekpower14.Quake.Stuff.Item.ItemBasic;
import com.Geekpower14.Quake.Utils.IconMenu;
import com.Geekpower14.Quake.Versions.GetMaterials;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.PlayerInventory;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.plugin.Plugin;
public class ShopManager {
public Quake _plugin;
public HashMap<String, Item> _objects = new HashMap();
public ShopManager(Quake b) {
_plugin = b;
}
public void getMainShop(Player p) {
Material DiaHoeMat = GetMaterials.GetDiamandHoe();
Material LeaCheMat = GetMaterials.GetLeatherChestplate();
Material JaOLanMat = GetMaterials.GetJackOLantern();
Material EmeralMat = GetMaterials.GetEmerald();
Material BedMat = GetMaterials.GetBed();
if(DiaHoeMat == null || LeaCheMat == null || JaOLanMat == null || EmeralMat == null || BedMat == null) {
p.sendMessage("It's happend an error on get Materials on getMainShop. Please Inform the Team or Bl4ckSkull666. Thank you ( https://www.Survival-Piraten.de )");
return;
}
_plugin._imm.create(p, "Quake Manager", 54, new IconMenu.OptionClickEventHandler() {
@Override
public void onOptionClick(IconMenu.OptionClickEvent event) {
if (event.getName() == null) {
return;
}
Quake.getPlugin()._shop.Main_Manager(event.getPlayer(), event.getName());
}
});
_plugin._imm.setOption(p, 0, new ItemStack(DiaHoeMat, 1), _plugin._trad.get("Shop.ManagerHoe"), "Hoe_manager", new String[]{_plugin._trad.get("Shop.SelectHoe")});
_plugin._imm.setOption(p, 3, new ItemStack(LeaCheMat, 1), _plugin._trad.get("Shop.ManagerArmor"), "Armor_manager", new String[]{_plugin._trad.get("Shop.SelectArmor")});
_plugin._imm.setOption(p, 5, new ItemStack(JaOLanMat, 1), _plugin._trad.get("Shop.ManagerHat"), "Hat_manager", new String[]{_plugin._trad.get("Shop.SelectHat")});
_plugin._imm.setOption(p, 8, new ItemStack(EmeralMat, 1), _plugin._trad.get("Shop.Shop"), "Shop", new String[]{_plugin._trad.get("Shop.BuyNewStuff")});
_plugin._imm.setOption(p, 49, new ItemStack(BedMat, 1), _plugin._trad.get("Shop.Exit"), "Exit", new String[]{_plugin._trad.get("Shop.ExitDesc")});
}
public void getHoeManager(Player player, int page) {
Material BedMat = GetMaterials.GetBed();
if(BedMat == null) {
player.sendMessage("It's happend an error on get Materials on getHoeManager. Please Inform the Team or Bl4ckSkull666. Thank you ( https://www.Survival-Piraten.de )");
return;
}
APlayer.createConfig(player);
_plugin._imm.create(player, "Hoe Manager", 54, new IconMenu.OptionClickEventHandler(){
@Override
public void onOptionClick(IconMenu.OptionClickEvent event) {
if (event.getName() == null) {
return;
}
event.setWillDestroy(true);
Quake.getPlugin()._shop.Hoe_Manager(event.getPlayer(), event.getName());
}
});
List<String> Hoes = _plugin._stuff.getItems(player);
int i = 0;
i = page;
while (i <= (page >= 1 ? 44 * page : 44)) {
if (Hoes.size() < i + 1) break;
ItemBasic item = _plugin._stuff.getItem(Hoes.get(i));
String[] stockArr = new String[item.getItem().getItemMeta().getLore().size()];
stockArr = item.getItem().getItemMeta().getLore().toArray(stockArr);
_plugin._imm.setOption(player, i, item.getItem(), item.getItem().getItemMeta().getDisplayName(), item._name, stockArr);
++i;
}
_plugin._imm.setOption(player, 49, new ItemStack(BedMat, 1), _plugin._trad.get("Shop.navigation.home"), "Home", new String[]{_plugin._trad.get("Shop.navigation.homeDesc")});
}
public void getHatManager(Player player, int page) {
Material BedMat = GetMaterials.GetBed();
if(BedMat == null) {
player.sendMessage("It's happend an error on get Materials on getHatManager. Please Inform the Team or Bl4ckSkull666. Thank you ( https://www.Survival-Piraten.de )");
return;
}
_plugin._imm.create(player, "Hat Manager", 54, new IconMenu.OptionClickEventHandler(){
@Override
public void onOptionClick(IconMenu.OptionClickEvent event) {
if (event.getName() == null) {
return;
}
event.setWillDestroy(true);
Quake.getPlugin()._shop.Hat_Manager(event.getPlayer(), event.getName());
}
});
List<String> Hat = _plugin._stuff.getHats(player);
int i = 0;
i = page;
while (i <= (page >= 1 ? 44 * page : 44)) {
if (Hat.size() < i + 1) break;
HatBasic item = _plugin._stuff.getHat(Hat.get(i));
String[] stockArr = new String[item.getItem().getItemMeta().getLore().size()];
stockArr = item.getItem().getItemMeta().getLore().toArray(stockArr);
_plugin._imm.setOption(player, i, item.getItem(), item.getItem().getItemMeta().getDisplayName(), item._name, stockArr);
++i;
}
_plugin._imm.setOption(player, 49, new ItemStack(BedMat, 1), _plugin._trad.get("Shop.navigation.home"), "Home", new String[]{_plugin._trad.get("Shop.navigation.homeDesc")});
}
public void getArmorManager(Player player, int page) {
Material BedMat = GetMaterials.GetBed();
if(BedMat == null) {
player.sendMessage("It's happend an error on get Materials on getArmorManager. Please Inform the Team or Bl4ckSkull666. Thank you ( https://www.Survival-Piraten.de )");
return;
}
_plugin._imm.create(player, "Armor Manager", 54, new IconMenu.OptionClickEventHandler(){
@Override
public void onOptionClick(IconMenu.OptionClickEvent event) {
if (event.getName() == null) {
return;
}
event.setWillDestroy(true);
Quake.getPlugin()._shop.Armor_Manager(event.getPlayer(), event.getName());
}
});
List<String> Armor = _plugin._stuff.getArmors(player);
int i = 0;
i = page;
while (i <= (page >= 1 ? 44 * page : 44)) {
if (Armor.size() < i + 1) break;
ArmorBasic item = _plugin._stuff.getArmor(Armor.get(i));
String[] stockArr = new String[item.getItem().getItemMeta().getLore().size()];
stockArr = item.getItem().getItemMeta().getLore().toArray(stockArr);
_plugin._imm.setOption(player, i, item.getItem(), item.getItem().getItemMeta().getDisplayName(), item._name, stockArr);
++i;
}
_plugin._imm.setOption(player, 49, new ItemStack(BedMat, 1), _plugin._trad.get("Shop.navigation.home"), "Home", new String[]{_plugin._trad.get("Shop.navigation.homeDesc")});
}
public void getShopMenu(Player player, int page) {
Material SignMat = GetMaterials.GetSign();
Material BedMat = GetMaterials.GetBed();
if(SignMat == null || BedMat == null) {
player.sendMessage("It's happend an error on get Materials on getShopMenu. Please Inform the Team or Bl4ckSkull666. Thank you ( https://www.Survival-Piraten.de )");
return;
}
int slot;
String name = "Shop";
if (page > 0) {
name = "Shop - Page " + page;
}
_plugin._imm.create(player, name, 54, new IconMenu.OptionClickEventHandler(){
@Override
public void onOptionClick(IconMenu.OptionClickEvent event) {
if (event.getName() == null) {
return;
}
Quake.getPlugin()._shop.Shop_Manager(event.getPlayer(), event.getName());
if (!event.getName().equalsIgnoreCase("Home")) {
openShop(event.getPlayer());
}
}
});
ArrayList<ItemBasic> Hoes = _plugin._stuff.getItems();
ArrayList<ArmorBasic> Armor = _plugin._stuff.getArmors();
ArrayList<HatBasic> Hat = _plugin._stuff.getHats();
int i = slot = page >= 1 ? 44 * page : 0;
int tmp = 0;
tmp = 0;
while (i <= slot + 44 && tmp < Hoes.size()) {
if (Hoes.size() < tmp + 1) break;
ItemBasic item = Hoes.get(tmp);
String[] arrstring = new String[2];
arrstring[0] = _plugin._trad.get("Shop.price").replace("[PRICE]", Integer.toString(item._price));
arrstring[1] = !item._needToBuy.equals("") ? _plugin._trad.get("Shop.needToBuy").replace("[NEED]", item._needToBuy) : "";
_plugin._imm.setOption(player, i, item.getItem(), item.getItem().getItemMeta().getDisplayName(), "HOE_" + item._name, arrstring);
tmp++;
i++;
}
tmp = 0;
while (i <= slot + 44 && tmp < Hat.size()) {
if (Hat.size() < tmp + 1) break;
HatBasic item = Hat.get(tmp);
String[] arrstring = new String[2];
arrstring[0] = _plugin._trad.get("Shop.price").replace("[PRICE]", Integer.toString(item._price));
arrstring[1] = !item._needToBuy.equals("") ? _plugin._trad.get("Shop.needToBuy").replace("[NEED]", item._needToBuy) : "";
_plugin._imm.setOption(player, i, item.getItem(), item.getItem().getItemMeta().getDisplayName(), "HAT_" + item._name, arrstring);
tmp++;
i++;
}
tmp = 0;
while (i <= slot + 44 && tmp < Armor.size()) {
if (Armor.size() < tmp + 1) break;
ArmorBasic item = Armor.get(tmp);
String[] arrstring = new String[2];
arrstring[0] = _plugin._trad.get("Shop.price").replace("[PRICE]", Integer.toString(item._price));
arrstring[1] = !item._needToBuy.equals("") ? _plugin._trad.get("Shop.needToBuy").replace("[NEED]", item._needToBuy) : "";
_plugin._imm.setOption(player, i, item.getItem(), item.getItem().getItemMeta().getDisplayName(), "ARMOR_" + item._name, arrstring);
tmp++;
i++;
}
if (page > 0) {
_plugin._imm.setOption(player, 45, new ItemStack(SignMat, 1), _plugin._trad.get("Shop.navigation.previousPage"), "Page-" + (page - 1), new String[]{_plugin._trad.get("Shop.navigation.previousPageDesc")});
}
_plugin._imm.setOption(player, 49, new ItemStack(BedMat, 1), _plugin._trad.get("Shop.navigation.home"), "Home", new String[]{_plugin._trad.get("Shop.navigation.homeDesc")});
Item so = getItemShop(player);
_plugin._imm.setOption(player, 50, so.getIcon(), so.getName(), "Nothing", so.getDescription());
if (i == slot + 44) {
_plugin._imm.setOption(player, 53, new ItemStack(SignMat, 1), _plugin._trad.get("Shop.navigation.nextPage"), "Page-" + (page + 1), new String[]{_plugin._trad.get("Shop.navigation.nextPageDesc")});
}
}
public void getShopItem(Player player) {
Material EmeralMat = GetMaterials.GetEmerald();
if(EmeralMat == null) {
player.sendMessage("It's happend an error on get Materials on getShopItem. Please Inform the Team or Bl4ckSkull666. Thank you ( https://www.Survival-Piraten.de )");
return;
}
PlayerInventory i = player.getInventory();
ItemStack coucou = new ItemStack(EmeralMat, 1);
ItemMeta coucou_meta = coucou.getItemMeta();
coucou_meta.setDisplayName(_plugin._trad.get("Shop.item.name"));
coucou.setItemMeta(coucou_meta);
i.addItem(new ItemStack[]{coucou});
}
public ItemStack getShop() {
ItemStack coucou = new ItemStack(_plugin._shopId, 1);
ItemMeta coucou_meta = coucou.getItemMeta();
coucou_meta.setDisplayName(_plugin._trad.get("Shop.item.name"));
coucou.setItemMeta(coucou_meta);
return coucou;
}
public String getMeta() {
return _plugin._trad.get("Shop.item.name");
}
public Item getItemShop(Player player) {
Material EmeralMat = GetMaterials.GetEmerald();
if(EmeralMat == null) {
player.sendMessage("It's happend an error on get Materials on getItemShop. Please Inform the Team or Bl4ckSkull666. Thank you ( https://www.Survival-Piraten.de )");
return null;
}
EcoManager eco = _plugin._eco;
int coins = eco.getPlayerMoney(player);
return new Item("Shop", new ItemStack(EmeralMat, 1), "shop", new String[] {_plugin._trad.get("Shop.youHave"), "" + ChatColor.GOLD + coins + " " + _plugin._trad.get("Shop.Coins.name")}, 0, 0);
}
public void openShop(final Player p) {
Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin)_plugin, new Runnable(){
@Override
public void run() {
Quake.getPlugin()._shop.getShopMenu(p, 0);
Quake.getPlugin()._imm.show(p);
}
}, 2);
}
public void Main_Manager(final Player p, String id) {
if (id.equalsIgnoreCase("Hoe_manager")) {
Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin)_plugin, new Runnable() {
@Override
public void run() {
Quake.getPlugin()._shop.getHoeManager(p, 0);
Quake.getPlugin()._imm.show(p);
}
}, 2);
return;
}
if (id.equalsIgnoreCase("Hat_manager")) {
Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin)_plugin, new Runnable() {
@Override
public void run() {
Quake.getPlugin()._shop.getHatManager(p, 0);
Quake.getPlugin()._imm.show(p);
}
}, 2);
return;
}
if (id.equalsIgnoreCase("Armor_manager")) {
Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin)_plugin, new Runnable() {
@Override
public void run() {
Quake.getPlugin()._shop.getArmorManager(p, 0);
Quake.getPlugin()._imm.show(p);
}
}, 2);
return;
}
if (id.equalsIgnoreCase("Shop")) {
Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin)_plugin, new Runnable() {
@Override
public void run() {
Quake.getPlugin()._shop.getShopMenu(p, 0);
Quake.getPlugin()._imm.show(p);
}
}, 2);
return;
}
}
public void Hoe_Manager(final Player p, String id) {
if (id.equalsIgnoreCase("Home")) {
Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin)_plugin, new Runnable() {
@Override
public void run() {
Quake.getPlugin()._shop.getMainShop(p);
Quake.getPlugin()._imm.show(p);
}
}, 2);
return;
}
if (_plugin._stuff.setSelectedItem(p, id)) {
p.sendMessage(_plugin._trad.get("Shop.Selection.Hoe"));
} else {
p.sendMessage(ChatColor.RED + " Error: Hoe not successful selected !");
}
Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin)_plugin, new Runnable() {
@Override
public void run() {
Quake.getPlugin()._shop.getHoeManager(p, 0);
Quake.getPlugin()._imm.show(p);
}
}, 2);
}
public void Hat_Manager(final Player p, String id) {
if (id.equalsIgnoreCase("Home")) {
Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin)_plugin, new Runnable() {
@Override
public void run() {
Quake.getPlugin()._shop.getMainShop(p);
Quake.getPlugin()._imm.show(p);
}
}, 2);
return;
}
if (_plugin._stuff.setSelectedHat(p, id)) {
p.sendMessage(_plugin._trad.get("Shop.Selection.Hat"));
} else {
p.sendMessage(ChatColor.RED + " Error: Hat not successful selected !");
}
Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin)_plugin, new Runnable() {
@Override
public void run() {
Quake.getPlugin()._shop.getHatManager(p, 0);
Quake.getPlugin()._imm.show(p);
}
}, 2);
}
public void Armor_Manager(final Player p, String id) {
if (id.equalsIgnoreCase("Home")) {
Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin)_plugin, new Runnable(){
@Override
public void run() {
Quake.getPlugin()._shop.getMainShop(p);
Quake.getPlugin()._imm.show(p);
}
}, 2);
return;
}
if (_plugin._stuff.setSelectedArmor(p, id)) {
p.sendMessage(_plugin._trad.get("Shop.Selection.Armor"));
} else {
p.sendMessage(ChatColor.RED + " Error: Armor not successful selected !");
}
Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin)_plugin, new Runnable() {
@Override
public void run() {
Quake.getPlugin()._shop.getArmorManager(p, 0);
Quake.getPlugin()._imm.show(p);
}
}, 2);
}
public void Shop_Manager(final Player p, String id) {
if (id.startsWith("Page")) {
final String[] pa = id.split("-");
Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin)_plugin, new Runnable(){
@Override
public void run() {
Quake.getPlugin()._shop.getShopMenu(p, Integer.valueOf(pa[1]));
Quake.getPlugin()._imm.show(p);
}
}, 2);
return;
}
if (id.equalsIgnoreCase("Home")) {
Bukkit.getScheduler().scheduleSyncDelayedTask((Plugin)_plugin, new Runnable(){
@Override
public void run() {
Quake.getPlugin()._shop.getMainShop(p);
Quake.getPlugin()._imm.show(p);
}
}, 2);
return;
}
if (id.startsWith("HOE")) {
ItemBasic need;
String[] pa = id.split("_");
String ide = pa[1];
ItemBasic item = _plugin._stuff.getItem(ide);
if (!item._needToBuy.equals("") && (need = _plugin._stuff.getItem(item._needToBuy)) != null && !_plugin._stuff.hasItem(p, item._needToBuy)) {
p.sendMessage(_plugin._trad.get("Shop.YouNeed").replace("[NEED]", item._needToBuy));
return;
}
if (!Quake.hasPermission(p, item._needPerm)) {
p.sendMessage(_plugin._trad.get("Shop.NoPermissionToBuy"));
return;
}
if (!_plugin._eco.has(p, item._price)) {
p.sendMessage(_plugin._trad.get("Shop.NotEnoughMoney"));
return;
}
if (_plugin._stuff.hasItem(p, item._name)) {
p.sendMessage(_plugin._trad.get("Shop.AlreadyHaveItem"));
return;
}
_plugin._eco.soustrairePlayerMoney(p, item._price);
_plugin._stuff.addItem(p, item._name);
p.sendMessage(_plugin._trad.get("Shop.YouHaveBoughtItem").replace("[NAME]", item._name));
return;
}
if (id.startsWith("HAT")) {
HatBasic need;
String[] pa = id.split("_");
String ide = pa[1];
HatBasic item = _plugin._stuff.getHat(ide);
if (!item._needToBuy.equals("") && (need = _plugin._stuff.getHat(item._needToBuy)) != null && !_plugin._stuff.hasHat(p, item._needToBuy)) {
p.sendMessage(_plugin._trad.get("Shop.YouNeed").replace("[NEED]", item._needToBuy));
return;
}
if (!Quake.hasPermission(p, item._needPerm)) {
p.sendMessage(_plugin._trad.get("Shop.NoPermissionToBuy"));
return;
}
if (!_plugin._eco.has(p, item._price)) {
p.sendMessage(_plugin._trad.get("Shop.NotEnoughMoney"));
return;
}
if (_plugin._stuff.hasHat(p, item._name)) {
p.sendMessage(_plugin._trad.get("Shop.AlreadyHaveThisHat"));
return;
}
_plugin._eco.soustrairePlayerMoney(p, item._price);
_plugin._stuff.addHat(p, item._name);
p.sendMessage(_plugin._trad.get("Shop.YouHaveBoughtItem").replace("[NAME]", item._name));
return;
}
if (id.startsWith("ARMOR")) {
ArmorBasic need;
String[] pa = id.split("_");
String ide = pa[1];
ArmorBasic item = _plugin._stuff.getArmor(ide);
if (!item._needToBuy.equals("") && (need = _plugin._stuff.getArmor(item._needToBuy)) != null && !_plugin._stuff.hasArmor(p, item._needToBuy)) {
p.sendMessage(_plugin._trad.get("Shop.YouNeed").replace("[NEED]", item._needToBuy));
return;
}
if (!Quake.hasPermission(p, item._needPerm)) {
p.sendMessage(_plugin._trad.get("Shop.NoPermissionToBuy"));
return;
}
if (!_plugin._eco.has(p, item._price)) {
p.sendMessage(_plugin._trad.get("Shop.NotEnoughMoney"));
return;
}
if (_plugin._stuff.hasArmor(p, item._name)) {
p.sendMessage(_plugin._trad.get("Shop.AlreadyHaveThisArmor"));
return;
}
_plugin._eco.soustrairePlayerMoney(p, item._price);
_plugin._stuff.addArmor(p, item._name);
p.sendMessage(_plugin._trad.get("Shop.YouHaveBoughtItem").replace("[NAME]", item._name));
return;
}
}
}