playercurrentgamedata.java LINE 58 is null
This commit is contained in:
@ -18,6 +18,7 @@ import org.bukkit.material.MaterialData;
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
public class ItemBuilder implements Listener {
|
||||
@ -32,6 +33,10 @@ public class ItemBuilder implements Listener {
|
||||
this.is = is;
|
||||
}
|
||||
|
||||
public ItemBuilder(Material m, int amount) {
|
||||
this.is = new ItemStack(m, amount);
|
||||
}
|
||||
|
||||
public ItemBuilder amount(final int amount) {
|
||||
is.setAmount(amount);
|
||||
|
||||
@ -192,6 +197,11 @@ public class ItemBuilder implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
public ItemBuilder addEnchantments(Map<Enchantment, Integer> enchantments) {
|
||||
this.is.addEnchantments(enchantments);
|
||||
return this;
|
||||
}
|
||||
|
||||
public ItemStack build() {
|
||||
return is;
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package rip.tilly.bedwars.utils.menusystem;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.InventoryHolder;
|
||||
@ -27,12 +28,12 @@ public abstract class Menu implements InventoryHolder {
|
||||
|
||||
public abstract void handleMenu(InventoryClickEvent event);
|
||||
|
||||
public abstract void setMenuItems();
|
||||
public abstract void setMenuItems(Player player);
|
||||
|
||||
public void open() {
|
||||
public void open(Player player) {
|
||||
inventory = Bukkit.createInventory(this, getSlots(), getMenuName());
|
||||
|
||||
this.setMenuItems();
|
||||
this.setMenuItems(player);
|
||||
|
||||
playerMenuUtil.getOwner().openInventory(inventory);
|
||||
}
|
||||
|
@ -0,0 +1,100 @@
|
||||
package rip.tilly.bedwars.utils.menusystem.menu;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import rip.tilly.bedwars.BedWars;
|
||||
import rip.tilly.bedwars.game.Game;
|
||||
import rip.tilly.bedwars.playerdata.PlayerData;
|
||||
import rip.tilly.bedwars.playerdata.currentgame.PlayerCurrentGameData;
|
||||
import rip.tilly.bedwars.upgrades.Upgrade;
|
||||
import rip.tilly.bedwars.upgrades.UpgradeItem;
|
||||
import rip.tilly.bedwars.utils.CC;
|
||||
import rip.tilly.bedwars.utils.menusystem.Menu;
|
||||
import rip.tilly.bedwars.utils.menusystem.PlayerMenuUtil;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
public class UpgradesMenu extends Menu {
|
||||
|
||||
private BedWars main = BedWars.getInstance();
|
||||
|
||||
List<UpgradeItem> upgradeItems = new ArrayList<UpgradeItem>();
|
||||
|
||||
public UpgradesMenu(PlayerMenuUtil playerMenuUtil) {
|
||||
super(playerMenuUtil);
|
||||
|
||||
this.upgradeItems.add(new UpgradeItem("Sharpened Swords", new String[]{"Your team permanently gains", "sharpness one on all swords"}, Material.IRON_SWORD, Upgrade.SHARPENED_SWORDS));
|
||||
this.upgradeItems.add(new UpgradeItem("Reinforced Armor", new String[]{"Your team permanently gets", "protection one all all armor"}, Material.IRON_CHESTPLATE, Upgrade.PROTECTION));
|
||||
this.upgradeItems.add(new UpgradeItem("Maniac Miner", new String[]{"Your team will permanently get haste"}, Material.GOLD_PICKAXE, Upgrade.MANIAC_MINER));
|
||||
this.upgradeItems.add(new UpgradeItem("Faster Forge", new String[]{"Increase your team's generator speed"}, Material.FURNACE, Upgrade.FASTER_FORGE));
|
||||
this.upgradeItems.add(new UpgradeItem("Heal Pool", new String[]{"Your team permanently gains", "Sharpness 1 on all swords"}, Material.BEACON, Upgrade.HEAL_POOL));
|
||||
this.upgradeItems.add(new UpgradeItem("Dragon Buff", new String[]{"Your team permanently gains", "Sharpness 1 on all swords"}, Material.DRAGON_EGG, Upgrade.DRAGON_BUFF));
|
||||
this.upgradeItems.add(new UpgradeItem("Trap", new String[]{"Get an alert when players", "come to your base"}, Material.TRIPWIRE_HOOK, Upgrade.TRAP));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMenuName() {
|
||||
return CC.translate("&eUpgrades Menu");
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSlots() {
|
||||
return 27;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMenu(InventoryClickEvent event) {
|
||||
Player player = (Player) event.getWhoClicked();
|
||||
|
||||
PlayerData playerData = this.main.getPlayerDataManager().getPlayerData(player.getUniqueId());
|
||||
|
||||
PlayerCurrentGameData playerCurrentGameData = playerData.getCurrentGameData();
|
||||
|
||||
Game game = this.main.getGameManager().getGameFromUUID(player.getUniqueId());
|
||||
|
||||
if (event.getView().getTitle().equalsIgnoreCase(CC.translate("&eUpgrades Menu"))) {
|
||||
for (UpgradeItem upgradeItem : this.upgradeItems) {
|
||||
if (upgradeItem.getItemStack(player, playerCurrentGameData).getItemMeta().getDisplayName().equalsIgnoreCase(event.getCurrentItem().getItemMeta().getDisplayName())) {
|
||||
if (playerCurrentGameData.getCostToUpgrade(upgradeItem.getUpgrade()) == -1) {
|
||||
player.sendMessage(CC.translate("&cYour team already has the highest upgrade for &c&l" + upgradeItem.getUpgrade().getFormattedName()));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (upgradeItem.canBuy(player, playerCurrentGameData.getLevelForUpgrade(upgradeItem.getUpgrade()) + 1)) {
|
||||
upgradeItem.buy(player, playerCurrentGameData.getLevelForUpgrade(upgradeItem.getUpgrade()) + 1, game, playerCurrentGameData);
|
||||
|
||||
player.updateInventory();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
player.sendMessage(CC.translate("&cYou do not have enough diamonds for &c&l" + upgradeItem.getUpgrade().getFormattedName() + " " + upgradeItem.getUpgrade().getNumberToRomanNumeral(playerCurrentGameData.getLevelForUpgrade(upgradeItem.getUpgrade()) + 1)));
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setMenuItems(Player player) {
|
||||
PlayerData playerData = this.main.getPlayerDataManager().getPlayerData(player.getUniqueId());
|
||||
|
||||
PlayerCurrentGameData playerCurrentGameData = playerData.getCurrentGameData();
|
||||
|
||||
for (int i = 0; i < this.inventory.getSize(); i++) {
|
||||
this.inventory.setItem(i, this.FILLER_GLASS);
|
||||
}
|
||||
|
||||
AtomicInteger atomicInteger = new AtomicInteger(10);
|
||||
|
||||
this.upgradeItems.forEach(itemStack -> {
|
||||
this.inventory.setItem(atomicInteger.get(), itemStack.getItemStack(player, playerCurrentGameData));
|
||||
|
||||
atomicInteger.addAndGet(1);
|
||||
});
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user