Update vote button
This commit is contained in:
parent
be18dc1bf5
commit
5f435a079e
@ -268,6 +268,15 @@ public class BonusManager extends MiniClientPlugin<BonusClientData> implements I
|
|||||||
return amount;
|
return amount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BonusAmount getVoteBonusAmount(Player player)
|
||||||
|
{
|
||||||
|
BonusAmount amount = new BonusAmount();
|
||||||
|
amount.setTickets(1);
|
||||||
|
amount.setBonusCoins(100);
|
||||||
|
amount.setBonusExperience(100);
|
||||||
|
return amount;
|
||||||
|
}
|
||||||
|
|
||||||
public BonusAmount getRankBonusAmount(Player player)
|
public BonusAmount getRankBonusAmount(Player player)
|
||||||
{
|
{
|
||||||
Rank rank = _clientManager.Get(player).GetRank();
|
Rank rank = _clientManager.Get(player).GetRank();
|
||||||
|
@ -1,13 +1,21 @@
|
|||||||
package mineplex.hub.bonuses.gui.buttons;
|
package mineplex.hub.bonuses.gui.buttons;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import mineplex.core.common.jsonchat.ClickEvent;
|
||||||
|
import mineplex.core.common.jsonchat.JsonMessage;
|
||||||
|
import mineplex.core.common.util.C;
|
||||||
import mineplex.core.common.util.UtilPlayer;
|
import mineplex.core.common.util.UtilPlayer;
|
||||||
import mineplex.core.common.util.UtilTime;
|
import mineplex.core.common.util.UtilTime;
|
||||||
import mineplex.core.common.util.UtilTime.TimeUnit;
|
import mineplex.core.common.util.UtilTime.TimeUnit;
|
||||||
import mineplex.core.gui.GuiItem;
|
import mineplex.core.gui.GuiItem;
|
||||||
import mineplex.core.gui.ItemRefresher;
|
import mineplex.core.gui.ItemRefresher;
|
||||||
import mineplex.core.itemstack.ItemStackFactory;
|
import mineplex.core.itemstack.ItemStackFactory;
|
||||||
|
import mineplex.core.shop.item.ShopItem;
|
||||||
import mineplex.core.updater.UpdateType;
|
import mineplex.core.updater.UpdateType;
|
||||||
import mineplex.core.updater.event.UpdateEvent;
|
import mineplex.core.updater.event.UpdateEvent;
|
||||||
|
import mineplex.hub.bonuses.BonusAmount;
|
||||||
|
import mineplex.hub.bonuses.BonusClientData;
|
||||||
import mineplex.hub.bonuses.BonusManager;
|
import mineplex.hub.bonuses.BonusManager;
|
||||||
import net.minecraft.server.v1_7_R4.ChatSerializer;
|
import net.minecraft.server.v1_7_R4.ChatSerializer;
|
||||||
import net.minecraft.server.v1_7_R4.IChatBaseComponent;
|
import net.minecraft.server.v1_7_R4.IChatBaseComponent;
|
||||||
@ -29,8 +37,6 @@ public class VoteButton implements GuiItem, Listener {
|
|||||||
|
|
||||||
private ItemStack _item;
|
private ItemStack _item;
|
||||||
|
|
||||||
private long bonusTime;
|
|
||||||
|
|
||||||
private String _url;
|
private String _url;
|
||||||
|
|
||||||
private Player _player;
|
private Player _player;
|
||||||
@ -51,14 +57,9 @@ public class VoteButton implements GuiItem, Listener {
|
|||||||
public void setup()
|
public void setup()
|
||||||
{
|
{
|
||||||
//TODO get url from db
|
//TODO get url from db
|
||||||
_url = "http://minecraftservers.org/server/121070";
|
_url = "http://minecraftservers.org/vote/121070";
|
||||||
|
|
||||||
this.bonusTime = _bonusManager.nextVoteTime(getPlayer());
|
|
||||||
|
|
||||||
//if (_url != null)
|
|
||||||
Bukkit.getPluginManager().registerEvents(this, getPlugin());
|
Bukkit.getPluginManager().registerEvents(this, getPlugin());
|
||||||
|
|
||||||
setItem();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -77,22 +78,14 @@ public class VoteButton implements GuiItem, Listener {
|
|||||||
|
|
||||||
getPlayer().playSound(getPlayer().getLocation(), Sound.NOTE_PLING, 1, 1.6f);
|
getPlayer().playSound(getPlayer().getLocation(), Sound.NOTE_PLING, 1, 1.6f);
|
||||||
|
|
||||||
// TODO This probably needs to be redone, I just looked stuff up and
|
UtilPlayer.message(getPlayer(), C.cRed + "------------------------------------------------");
|
||||||
// pasted it together
|
|
||||||
|
|
||||||
UtilPlayer.message(getPlayer(), "=============================================");
|
|
||||||
UtilPlayer.message(getPlayer(), "");
|
UtilPlayer.message(getPlayer(), "");
|
||||||
IChatBaseComponent comp = ChatSerializer.a("{\"text\":\"" + " " + "\",\"extra\":[{\"text\":\"" + ChatColor.GREEN
|
|
||||||
|
new JsonMessage("Click to Open in Web Browser").click(ClickEvent.OPEN_URL, _url).sendToPlayer(getPlayer());
|
||||||
+ "---==Click to vote==---\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + ChatColor.GREEN
|
new JsonMessage(C.cGreen + _url).click(ClickEvent.OPEN_URL, _url).sendToPlayer(getPlayer());
|
||||||
|
|
||||||
+ _url.replace("http://", "").replace("https://", "") + "\"},\"clickEvent\":{\"action\":\"open_url\",\"value\":\"" + _url
|
|
||||||
|
|
||||||
+ "\"}}]}");
|
|
||||||
|
|
||||||
UtilPlayer.sendPacket(_player, new PacketPlayOutChat(comp, true));
|
|
||||||
UtilPlayer.message(getPlayer(), "");
|
UtilPlayer.message(getPlayer(), "");
|
||||||
UtilPlayer.message(getPlayer(), "=============================================");
|
UtilPlayer.message(getPlayer(), C.cRed + "------------------------------------------------");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -105,37 +98,67 @@ public class VoteButton implements GuiItem, Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
public void onUpdate(UpdateEvent event)
|
|
||||||
{
|
|
||||||
if (!event.getType().equals(UpdateType.SEC))
|
|
||||||
return;
|
|
||||||
setItem();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack getObject()
|
public ItemStack getObject()
|
||||||
{
|
{
|
||||||
return _item;
|
return _item;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void refreshItem() {
|
private void setItem()
|
||||||
getGui().refreshItem(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setItem()
|
|
||||||
{
|
{
|
||||||
if (isAvailable()) {
|
ArrayList<String> lore = new ArrayList<String>();
|
||||||
_item = ItemStackFactory.Instance.CreateStack(Material.JUKEBOX, (byte) 0, 1, ChatColor.GREEN + "Click to vote!");
|
Material material;
|
||||||
} else {
|
String itemName;
|
||||||
_item = ItemStackFactory.Instance.CreateStack(Material.REDSTONE_BLOCK, (byte) 0, 1, ChatColor.RED + "Next link in:", new String[] {ChatColor.WHITE + UtilTime.convertString(timeLeft(), 0, TimeUnit.FIT) });
|
byte data = 0;
|
||||||
|
|
||||||
|
if (isAvailable())
|
||||||
|
{
|
||||||
|
material = Material.CHEST;
|
||||||
|
itemName = C.cGreen + C.Bold + "Vote Bonus";
|
||||||
|
|
||||||
|
lore.add(" ");
|
||||||
|
lore.add(ChatColor.RESET + "Click to Vote!");
|
||||||
}
|
}
|
||||||
refreshItem();
|
else
|
||||||
|
{
|
||||||
|
material = Material.REDSTONE_BLOCK;
|
||||||
|
itemName = C.cRed + C.Bold + "Vote Bonus";
|
||||||
|
|
||||||
|
lore.add(" ");
|
||||||
|
lore.add(ChatColor.RESET + "Next vote in " + UtilTime.convertString(timeLeft(), 0, TimeUnit.FIT) + "!");
|
||||||
|
}
|
||||||
|
|
||||||
|
lore.add(" ");
|
||||||
|
|
||||||
|
BonusClientData client = _bonusManager.Get(_player);
|
||||||
|
|
||||||
|
BonusAmount bonusAmount = _bonusManager.getVoteBonusAmount(_player);
|
||||||
|
bonusAmount.addLore(lore);
|
||||||
|
|
||||||
|
lore.add(C.cYellow + "Current Streak: " + C.cWhite + client.getVoteStreak());
|
||||||
|
lore.add(C.cYellow + "Highest Streak: " + C.cWhite + client.getMaxVoteStreak());
|
||||||
|
|
||||||
|
if (client.getVoteTime() != null)
|
||||||
|
{
|
||||||
|
long lastBonus = _bonusManager.getLocalTime(client.getVoteTime().getTime());
|
||||||
|
long timeLeft = _bonusManager.getStreakTimeRemaining(lastBonus, BonusManager.STREAK_RESET_TIME);
|
||||||
|
|
||||||
|
if (timeLeft > 0)
|
||||||
|
{
|
||||||
|
lore.add(C.cYellow + "Streak Reset: " + C.cWhite + UtilTime.convertString(timeLeft, 1, TimeUnit.FIT));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lore.add(" ");
|
||||||
|
lore.add(C.cYellow + "Record Holder: " + C.cWhite + "Phinary");
|
||||||
|
lore.add(C.cYellow + "Streak: " + C.cWhite + "420");
|
||||||
|
|
||||||
|
_item = new ShopItem(material, itemName, lore.toArray(new String[0]), 1, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public long timeLeft()
|
public long timeLeft()
|
||||||
{
|
{
|
||||||
return this.bonusTime - System.currentTimeMillis();
|
return _bonusManager.nextVoteTime(getPlayer()) - System.currentTimeMillis();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isAvailable()
|
public boolean isAvailable()
|
||||||
@ -160,80 +183,3 @@ public class VoteButton implements GuiItem, Listener {
|
|||||||
return _gui;
|
return _gui;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*implements GuiItem {
|
|
||||||
|
|
||||||
private ItemStack _item;
|
|
||||||
private String _url;
|
|
||||||
private Player _player;
|
|
||||||
|
|
||||||
public VoteButton(Player player)
|
|
||||||
{
|
|
||||||
this._player = player;
|
|
||||||
|
|
||||||
//TODO get url from somewhere
|
|
||||||
_url = "http://minecraftservers.org/server/121070";
|
|
||||||
|
|
||||||
//TODO check if claimed
|
|
||||||
boolean claimed = false;
|
|
||||||
|
|
||||||
if (_url == null)
|
|
||||||
_item = ItemStackFactory.Instance.CreateStack(Material.REDSTONE_BLOCK, (byte) 0, 1, ChatColor.RED + "Nothing to vote for!");
|
|
||||||
else if (claimed) {
|
|
||||||
_item = ItemStackFactory.Instance.CreateStack(Material.REDSTONE_BLOCK, (byte) 0, 1, ChatColor.RED + "You have already voted!");
|
|
||||||
_url = null;
|
|
||||||
} else
|
|
||||||
_item = ItemStackFactory.Instance.CreateStack(Material.JUKEBOX, (byte) 0, 1, ChatColor.GREEN + "Click to vote!");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setup()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void close()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void click(ClickType clickType)
|
|
||||||
{
|
|
||||||
if (_url == null) {
|
|
||||||
getPlayer().playSound(getPlayer().getLocation(), Sound.ITEM_BREAK, 1, 10);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
getPlayer().playSound(getPlayer().getLocation(), Sound.NOTE_PLING, 1, 1.6f);
|
|
||||||
// TODO This probably needs to be redone, I just looked stuff up and
|
|
||||||
// pasted it together
|
|
||||||
IChatBaseComponent comp = ChatSerializer.a("{\"text\":\"" + ChatColor.BLUE + "Vote> \",\"extra\":[{\"text\":\"" + ChatColor.GREEN
|
|
||||||
+ "Click to vote!\",\"hoverEvent\":{\"action\":\"show_text\",\"value\":\"" + ChatColor.GREEN
|
|
||||||
+ _url.replace("http://", "").replace("https://", "") + "\"},\"clickEvent\":{\"action\":\"open_url\",\"value\":\"" + _url
|
|
||||||
+ "\"}}]}");
|
|
||||||
|
|
||||||
UtilPlayer.sendPacket(_player, new PacketPlayOutChat(comp, true));
|
|
||||||
getPlayer().closeInventory();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ItemStack getObject()
|
|
||||||
{
|
|
||||||
return _item;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Player getPlayer()
|
|
||||||
{
|
|
||||||
return _player;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
Loading…
Reference in New Issue
Block a user