dont know if it works

This commit is contained in:
Luca
2021-11-22 22:48:09 +01:00
parent da2fe2dbc1
commit eea0c643ea
16 changed files with 264 additions and 11 deletions

View File

@ -0,0 +1,94 @@
package rip.tilly.bedwars.menus.shop;
import lombok.AllArgsConstructor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.ItemStack;
import rip.tilly.bedwars.BedWars;
import rip.tilly.bedwars.playerdata.PlayerData;
import rip.tilly.bedwars.utils.CC;
import rip.tilly.bedwars.utils.ItemBuilder;
import rip.tilly.bedwars.utils.menu.Button;
import java.util.ArrayList;
import java.util.List;
@AllArgsConstructor
public class ShopButton extends Button {
private final String name;
private final List<String> lore;
private final Material material;
private final int data;
private final int amount;
private final Material costType;
private final String costTypeName;
private final int cost;
private final boolean color;
private final int costItems;
@Override
public ItemStack getButtonItem(Player player) {
List<String> loreList = new ArrayList<>();
loreList.add(" ");
loreList.addAll(lore);
// int costItems = 0;
// for (ItemStack contents : player.getInventory().getContents()) {
// if (contents != null) {
// if (contents.getType() == costType) {
// costItems += contents.getAmount();
// }
// }
// }
loreList.add(" ");
loreList.add(costItems >= cost ? "&aClick to purchase!" : "&cYou don't have enough " + costTypeName + "!");
PlayerData playerData = BedWars.getInstance().getPlayerDataManager().getPlayerData(player.getUniqueId());
if (color) {
return new ItemBuilder(material).name(name).lore(loreList).amount(amount).durability(playerData.getPlayerTeam().getColorData()).hideFlags().build();
} else {
return new ItemBuilder(material).name(name).lore(loreList).amount(amount).durability(data).hideFlags().build();
}
}
@Override
public void clicked(Player player, int slot, ClickType clickType, int hotbarButton) {
// int costItems = 0;
// for (ItemStack contents : player.getInventory().getContents()) {
// if (contents != null) {
// if (contents.getType() == costType) {
// costItems += contents.getAmount();
// }
// }
// }
PlayerData playerData = BedWars.getInstance().getPlayerDataManager().getPlayerData(player.getUniqueId());
if (costItems >= cost) {
for (ItemStack contents : player.getInventory().getContents()) {
if (contents != null) {
if (contents.getType() == costType) {
if (contents.getAmount() == cost) {
player.getInventory().removeItem(contents);
} else {
contents.setAmount(contents.getAmount() - cost);
}
}
}
}
if (color) {
player.getInventory().addItem(new ItemBuilder(material).amount(amount).durability(playerData.getPlayerTeam().getColorData()).hideFlags().build());
} else {
player.getInventory().addItem(new ItemBuilder(material).amount(amount).durability(data).hideFlags().build());
}
playNeutral(player);
} else {
player.sendMessage(CC.translate("&cYou don't have enough " + costTypeName + "!"));
playFail(player);
}
}
}

View File

@ -0,0 +1,20 @@
package rip.tilly.bedwars.menus.shop;
import lombok.RequiredArgsConstructor;
import org.bukkit.Material;
@RequiredArgsConstructor
public enum ShopType {
QUICK("Quick Buy"),
BLOCKS("Blocks"),
ARMOR("Armor"),
TOOLS("Tools"),
WEAPONS("Weapons"),
RANGED("Ranged"),
POTIONS("Potions"),
UTILITY("Utility");
private final String name;
private final Material material;
}

View File

@ -0,0 +1,10 @@
package rip.tilly.bedwars.menus.shop;
import lombok.AllArgsConstructor;
import rip.tilly.bedwars.utils.menu.Button;
@AllArgsConstructor
public class ShopTypeButton extends Button {
private final ShopType shopType;
}

View File

@ -0,0 +1,29 @@
package rip.tilly.bedwars.menus.shop.blocks;
import org.bukkit.entity.Player;
import rip.tilly.bedwars.utils.CC;
import rip.tilly.bedwars.utils.menu.Button;
import rip.tilly.bedwars.utils.menu.Menu;
import java.util.HashMap;
import java.util.Map;
public class BlocksMenu extends Menu {
@Override
public boolean isUpdateAfterClick() {
return true;
}
@Override
public String getTitle(Player player) {
return CC.translate("&eBlocks");
}
@Override
public Map<Integer, Button> getButtons(Player player) {
Map<Integer, Button> buttons = new HashMap<>();
}
}