Skip to content

Commit

Permalink
added check if upgrade can go through on IslandUpgradeEvent
Browse files Browse the repository at this point in the history
  • Loading branch information
Julian Loferer committed Sep 20, 2020
1 parent c3f2f7f commit c204f99
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 21 deletions.
20 changes: 20 additions & 0 deletions src/main/java/com/iridium/iridiumskyblock/Utils.java
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,26 @@ public static boolean canBuy(Player p, double vault, int crystals) {
return false;
}

public static boolean canBuyStandalone(Player p, double vault, int crystals) {
User u = User.getUser(p);
if (u.getIsland() != null) {
if (Vault.econ != null) {
if (Vault.econ.getBalance(p) >= vault && u.getIsland().getCrystals() >= crystals) {
return true;
}
}
if (u.getIsland().money >= vault && u.getIsland().getCrystals() >= crystals) {
return true;
}
}
if (Vault.econ != null) {
if (Vault.econ.getBalance(p) >= vault && crystals == 0) {
return true;
}
}
return false;
}

public static int getExpAtLevel(final int level) {
if (level <= 15) {
return (2 * level) + 7;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,13 @@

public class IslandUpgradeEvent extends IslandEvent {
private boolean cancelled;
private boolean upgradable;
private UpgradeType upgradeType;
public IslandUpgradeEvent(@NotNull Island island, @NotNull UpgradeType upgradeType) {

public IslandUpgradeEvent(@NotNull Island island, @NotNull UpgradeType upgradeType, @NotNull boolean upgradable) {
super(island);
this.upgradeType = upgradeType;
this.upgradable = upgradable;
}

public boolean isCancelled() {
Expand All @@ -23,6 +26,10 @@ public UpgradeType getUpgradeType() {
return upgradeType;
}

public boolean isUpgradable() {
return upgradable;
}

public static enum UpgradeType {
ISLAND_SIZE, MEMBER_SIZE, WARPS, GENERATOR;
}
Expand Down
40 changes: 20 additions & 20 deletions src/main/java/com/iridium/iridiumskyblock/gui/UpgradeGUI.java
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,12 @@ public void onInventoryClick(InventoryClickEvent e) {
if (e.getSlot() == IridiumSkyblock.getUpgrades().sizeUpgrade.slot && IridiumSkyblock.getUpgrades().sizeUpgrade.enabled) {
if (IridiumSkyblock.getUpgrades().sizeUpgrade.upgrades.containsKey(getIsland().getSizeLevel() + 1)) {
Upgrades.IslandUpgrade upgrade = IridiumSkyblock.getUpgrades().sizeUpgrade.upgrades.get(getIsland().getSizeLevel() + 1);
IslandUpgradeEvent islandUpgradeEvent = new IslandUpgradeEvent(getIsland(), IslandUpgradeEvent.UpgradeType.ISLAND_SIZE, Utils.canBuyStandalone(p, upgrade.vaultCost, upgrade.crystalsCost));
Bukkit.getPluginManager().callEvent(islandUpgradeEvent);
if(!islandUpgradeEvent.isUpgradable() || islandUpgradeEvent.isCancelled()) {
return;
}
if (Utils.canBuy(p, upgrade.vaultCost, upgrade.crystalsCost)) {
IslandUpgradeEvent islandUpgradeEvent = new IslandUpgradeEvent(getIsland(), IslandUpgradeEvent.UpgradeType.ISLAND_SIZE);
Bukkit.getPluginManager().callEvent(islandUpgradeEvent);
if(islandUpgradeEvent.isCancelled()) {
return;
}
getIsland().setSizeLevel(getIsland().getSizeLevel() + 1);
} else {
e.getWhoClicked().sendMessage(Utils.color(IridiumSkyblock.getMessages().notEnoughCrystals.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
Expand All @@ -62,12 +62,12 @@ public void onInventoryClick(InventoryClickEvent e) {
if (e.getSlot() == IridiumSkyblock.getUpgrades().memberUpgrade.slot && IridiumSkyblock.getUpgrades().memberUpgrade.enabled) {
if (IridiumSkyblock.getUpgrades().memberUpgrade.upgrades.containsKey(getIsland().getMemberLevel() + 1)) {
Upgrades.IslandUpgrade upgrade = IridiumSkyblock.getUpgrades().memberUpgrade.upgrades.get(getIsland().getMemberLevel() + 1);
IslandUpgradeEvent islandUpgradeEvent = new IslandUpgradeEvent(getIsland(), IslandUpgradeEvent.UpgradeType.MEMBER_SIZE, Utils.canBuyStandalone(p, upgrade.vaultCost, upgrade.crystalsCost));
Bukkit.getPluginManager().callEvent(islandUpgradeEvent);
if(!islandUpgradeEvent.isUpgradable() || islandUpgradeEvent.isCancelled()) {
return;
}
if (Utils.canBuy(p, upgrade.vaultCost, upgrade.crystalsCost)) {
IslandUpgradeEvent islandUpgradeEvent = new IslandUpgradeEvent(getIsland(), IslandUpgradeEvent.UpgradeType.MEMBER_SIZE);
Bukkit.getPluginManager().callEvent(islandUpgradeEvent);
if(islandUpgradeEvent.isCancelled()) {
return;
}
getIsland().setMemberLevel(getIsland().getMemberLevel() + 1);
} else {
e.getWhoClicked().sendMessage(Utils.color(IridiumSkyblock.getMessages().notEnoughCrystals.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
Expand All @@ -79,12 +79,12 @@ public void onInventoryClick(InventoryClickEvent e) {
if (e.getSlot() == IridiumSkyblock.getUpgrades().warpUpgrade.slot && IridiumSkyblock.getUpgrades().warpUpgrade.enabled) {
if (IridiumSkyblock.getUpgrades().warpUpgrade.upgrades.containsKey(getIsland().getWarpLevel() + 1)) {
Upgrades.IslandUpgrade upgrade = IridiumSkyblock.getUpgrades().warpUpgrade.upgrades.get(getIsland().getWarpLevel() + 1);
IslandUpgradeEvent islandUpgradeEvent = new IslandUpgradeEvent(getIsland(), IslandUpgradeEvent.UpgradeType.WARPS, Utils.canBuyStandalone(p, upgrade.vaultCost, upgrade.crystalsCost));
Bukkit.getPluginManager().callEvent(islandUpgradeEvent);
if(!islandUpgradeEvent.isUpgradable() || islandUpgradeEvent.isCancelled()) {
return;
}
if (Utils.canBuy(p, upgrade.vaultCost, upgrade.crystalsCost)) {
IslandUpgradeEvent islandUpgradeEvent = new IslandUpgradeEvent(getIsland(), IslandUpgradeEvent.UpgradeType.WARPS);
Bukkit.getPluginManager().callEvent(islandUpgradeEvent);
if(islandUpgradeEvent.isCancelled()) {
return;
}
getIsland().setWarpLevel(getIsland().getWarpLevel() + 1);
} else {
e.getWhoClicked().sendMessage(Utils.color(IridiumSkyblock.getMessages().notEnoughCrystals.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
Expand All @@ -96,12 +96,12 @@ public void onInventoryClick(InventoryClickEvent e) {
if (e.getSlot() == IridiumSkyblock.getUpgrades().oresUpgrade.slot && IridiumSkyblock.getUpgrades().oresUpgrade.enabled) {
if (IridiumSkyblock.getUpgrades().oresUpgrade.upgrades.containsKey(getIsland().getOreLevel() + 1)) {
Upgrades.IslandUpgrade upgrade = IridiumSkyblock.getUpgrades().oresUpgrade.upgrades.get(getIsland().getOreLevel() + 1);
IslandUpgradeEvent islandUpgradeEvent = new IslandUpgradeEvent(getIsland(), IslandUpgradeEvent.UpgradeType.GENERATOR, Utils.canBuyStandalone(p, upgrade.vaultCost, upgrade.crystalsCost));
Bukkit.getPluginManager().callEvent(islandUpgradeEvent);
if(!islandUpgradeEvent.isUpgradable() || islandUpgradeEvent.isCancelled()) {
return;
}
if (Utils.canBuy(p, upgrade.vaultCost, upgrade.crystalsCost)) {
IslandUpgradeEvent islandUpgradeEvent = new IslandUpgradeEvent(getIsland(), IslandUpgradeEvent.UpgradeType.GENERATOR);
Bukkit.getPluginManager().callEvent(islandUpgradeEvent);
if(islandUpgradeEvent.isCancelled()) {
return;
}
getIsland().setOreLevel(getIsland().getOreLevel() + 1);
} else {
e.getWhoClicked().sendMessage(Utils.color(IridiumSkyblock.getMessages().notEnoughCrystals.replace("%prefix%", IridiumSkyblock.getConfiguration().prefix)));
Expand Down

0 comments on commit c204f99

Please sign in to comment.