diff --git a/Plugins/.idea/codeStyleSettings.xml b/Plugins/.idea/codeStyleSettings.xml
index f428c40c9..44295e3d8 100644
--- a/Plugins/.idea/codeStyleSettings.xml
+++ b/Plugins/.idea/codeStyleSettings.xml
@@ -38,5 +38,6 @@
+
\ No newline at end of file
diff --git a/Plugins/.idea/modules.xml b/Plugins/.idea/modules.xml
index bf0ac4bae..b8ed3a047 100644
--- a/Plugins/.idea/modules.xml
+++ b/Plugins/.idea/modules.xml
@@ -11,7 +11,6 @@
-
diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/bonuses/BonusAmount.java b/Plugins/Mineplex.Hub/src/mineplex/hub/bonuses/BonusAmount.java
new file mode 100644
index 000000000..2cbe8403a
--- /dev/null
+++ b/Plugins/Mineplex.Hub/src/mineplex/hub/bonuses/BonusAmount.java
@@ -0,0 +1,113 @@
+package mineplex.hub.bonuses;
+
+import java.util.List;
+
+import mineplex.core.common.util.C;
+
+public class BonusAmount
+{
+ private int _gems;
+ private int _coins;
+ private int _gold;
+ private int _bonusGems;
+ private int _bonusCoins;
+ private int _bonusGold;
+
+ public BonusAmount()
+ {
+
+ }
+
+ public int getGems()
+ {
+ return _gems;
+ }
+
+ public void setGems(int gems)
+ {
+ _gems = gems;
+ }
+
+ public int getCoins()
+ {
+ return _coins;
+ }
+
+ public void setCoins(int coins)
+ {
+ _coins = coins;
+ }
+
+ public int getGold()
+ {
+ return _gold;
+ }
+
+ public void setGold(int gold)
+ {
+ _gold = gold;
+ }
+
+ public int getBonusGems()
+ {
+ return _bonusGems;
+ }
+
+ public void setBonusGems(int bonusGems)
+ {
+ _bonusGems = bonusGems;
+ }
+
+ public int getBonusCoins()
+ {
+ return _bonusCoins;
+ }
+
+ public void setBonusCoins(int bonusCoins)
+ {
+ _bonusCoins = bonusCoins;
+ }
+
+ public int getBonusGold()
+ {
+ return _bonusGold;
+ }
+
+ public void setBonusGold(int bonusGold)
+ {
+ _bonusGold = bonusGold;
+ }
+
+ public int getTotalGems()
+ {
+ return getGems() + getBonusCoins();
+ }
+
+ public int getTotalCoins()
+ {
+ return getGems() + getBonusGems();
+ }
+
+ public int getTotalGold()
+ {
+ return getGems() + getBonusGems();
+ }
+
+ public void addLore(List lore)
+ {
+ addLore(lore, getCoins(), getBonusCoins(), "Coins");
+ addLore(lore, getGems(), getBonusGems(), "Gems");
+ addLore(lore, getGold(), getBonusGold(), "Gold");
+ }
+
+ private void addLore(List lore, int amount, int bonus, String suffix)
+ {
+ if (amount > 0)
+ {
+ lore.add(C.cYellow + "Reward " + C.cWhite + amount + " " + suffix);
+ if (bonus > 0)
+ lore.add(C.cYellow + "Streak Bonus " + C.cWhite + bonus + " " + suffix);
+ lore.add(" ");
+ }
+ }
+}
diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/bonuses/BonusManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/bonuses/BonusManager.java
index d4706fcc4..0b5a0c676 100644
--- a/Plugins/Mineplex.Hub/src/mineplex/hub/bonuses/BonusManager.java
+++ b/Plugins/Mineplex.Hub/src/mineplex/hub/bonuses/BonusManager.java
@@ -163,22 +163,30 @@ public class BonusManager extends MiniDbClientPlugin {
return calendar.getTimeInMillis();
}
- public int getRankBonusAmount(Player player)
+ public BonusAmount getRankBonusAmount(Player player)
{
Rank rank = getClientManager().Get(player).GetRank();
- if (rank.Has(Rank.LEGEND)) {
- return 30000;
+ BonusClientData client = Get(player);
+ double multiplyer = 0.25; // TODO
+
+ BonusAmount data = new BonusAmount();
+
+ if (rank.Has(Rank.LEGEND))
+ {
+ data.setCoins(10000);
+ }
+ else if (rank.Has(Rank.ULTRA))
+ {
+ data.setCoins(7500);
+ }
+ else if (rank.Has(Rank.HERO))
+ {
+ data.setCoins(1500);
}
- switch (rank) {
- case ULTRA:
- return 7500;
- case HERO:
- return 15000;
- default:
- return 0;
- }
+ data.setBonusCoins((int) (multiplyer * data.getCoins()));
+ return data;
}
diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/bonuses/gui/buttons/RankBonusButton.java b/Plugins/Mineplex.Hub/src/mineplex/hub/bonuses/gui/buttons/RankBonusButton.java
index 121dfb8d2..1178b594f 100644
--- a/Plugins/Mineplex.Hub/src/mineplex/hub/bonuses/gui/buttons/RankBonusButton.java
+++ b/Plugins/Mineplex.Hub/src/mineplex/hub/bonuses/gui/buttons/RankBonusButton.java
@@ -1,7 +1,9 @@
package mineplex.hub.bonuses.gui.buttons;
+import java.util.ArrayList;
import java.util.function.Consumer;
+import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.common.util.UtilTime;
@@ -11,8 +13,11 @@ import mineplex.core.gui.ItemRefresher;
import mineplex.core.gui.pages.LoadingWindow;
import mineplex.core.gui.pages.TimedMessageWindow;
import mineplex.core.itemstack.ItemStackFactory;
+import mineplex.core.shop.item.ShopItem;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
+import mineplex.hub.bonuses.BonusAmount;
+import mineplex.hub.bonuses.BonusClientData;
import mineplex.hub.bonuses.BonusManager;
import org.bukkit.Bukkit;
@@ -78,7 +83,7 @@ public class RankBonusButton implements GuiItem, Listener {
{
if (isAvailable()) {
_item = ItemStackFactory.Instance.CreateStack(Material.LAPIS_BLOCK, (byte)0, 1, ChatColor.BLUE + "Processing...");
- refreashItem();
+ refreshItem();
new LoadingWindow(getPlugin(), getPlayer(), 6*9);
_bonusManager.attemptRankBonus(getPlayer(), new Consumer()
{
@@ -132,25 +137,59 @@ public class RankBonusButton implements GuiItem, Listener {
return _item;
}
- public void refreashItem() {
+ public void refreshItem() {
getGui().refreshItem(this);
}
public void setItem()
{
+ ArrayList lore = new ArrayList;
+ Material material;
+ String itemName;
+ byte data = 0;
+
+
if (!hasRank)
{
+ material = Material.COAL_BLOCK;
+ itemName = ChatColor.RED + "Players with a Rank can Collect Daily Rewards";
+ lore.add(" ");
+ lore.add(ChatColor.WHITE + "Purchase rank at mineplex.com/shop");
+
_item = ItemStackFactory.Instance.CreateStack(Material.COAL_BLOCK, (byte) 0, 1, ChatColor.YELLOW + "Buy rank plz!");
}
- else if (isAvailable())
+ else
{
+ if (isAvailable())
+ {
+ material = Material.ENDER_CHEST;
+ itemName = C.cGreen + C.Bold + "Click to Claim!";
+ }
+ else
+ {
+ material = Material.REDSTONE_BLOCK;
+ itemName = C.cRed + C.Bold + "Next reward in " + UtilTime.convertString(timeLeft(), 0, TimeUnit.FIT) + "!";
+ }
+
+ lore.add(" ");
+
+ BonusClientData client = _bonusManager.Get(_player);
+
+ BonusAmount bonusAmount = _bonusManager.getRankBonusAmount(_player);
+ bonusAmount.addLore(lore);
+
+ lore.add(C.cYellow + "Current Streak " + C.cWhite + client.getRankStreak());
+ lore.add(C.cYellow + "Highest Streak " + C.cWhite + client.getMaxRankStreak());
+ lore.add(" ");
+ lore.add(C.cYellow + "Record Holder " + C.cWhite + "Phinary");
+ lore.add(C.cYellow + "Streak " + C.cWhite + "420");
+
_item = ItemStackFactory.Instance.CreateStack(Material.ENDER_CHEST, (byte) 0, 1, ChatColor.GREEN + "Click to collect rank bonus!");
}
- else
- {
- _item = ItemStackFactory.Instance.CreateStack(Material.REDSTONE_BLOCK, (byte) 0, 1, ChatColor.RED + "Next Rank bonus in:", new String[] {ChatColor.WHITE + UtilTime.convertString(timeLeft(), 0, TimeUnit.FIT) });
- }
- refreashItem();
+
+ _item = new ShopItem(material, itemName, lore.toArray(new String[0]), 1, false, false);
+
+ refreshItem();
}
public long timeLeft()