Mineplex/GOD DAMN COSMETICS/bonuses/gui/buttons/PollButton.java
Daniel Waggner 38a20f98c2 Removed Files
These two directories contain code that was removed from the src and dependencies of the compiled files. They were removed due to being either a. unnecessary or b. a royal pain in my booty.
2021-05-23 18:13:37 -07:00

231 lines
5.8 KiB
Java

package mineplex.core.bonuses.gui.buttons;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.Plugin;
import mineplex.core.account.CoreClientManager;
import mineplex.core.bonuses.BonusAmount;
import mineplex.core.bonuses.BonusManager;
import mineplex.core.common.util.C;
import mineplex.core.common.util.UtilText;
import mineplex.core.gui.GuiInventory;
import mineplex.core.gui.GuiItem;
import mineplex.core.gui.SimpleGui;
import mineplex.core.gui.SimpleGuiItem;
import mineplex.core.gui.botton.BackBotton;
import mineplex.core.gui.pages.TimedMessageWindow;
import mineplex.core.itemstack.ItemStackFactory;
import mineplex.core.poll.Poll;
import mineplex.core.poll.PollManager;
import mineplex.core.recharge.Recharge;
public class PollButton extends SimpleGui implements GuiItem {
protected boolean _create;
private PollManager _pollManager;
private BonusManager _bonusManager;
private CoreClientManager _clientManager;
private GuiInventory _master;
private HashMap<Integer, GuiItem> hard = new HashMap<Integer, GuiItem>();
private Poll _poll;
public PollButton(Plugin plugin, Player player, PollManager pollManager, CoreClientManager clientManager, GuiInventory master, BonusManager bonusManager)
{
super(plugin, player, "Poll:", 6 * 9);
this._create = true;
this._master = master;
this._clientManager = clientManager;
this._pollManager = pollManager;
hard.put(0, new BackBotton(master));
_bonusManager = bonusManager;
}
@Override
public void setup()
{
if (_create)
{
_poll = _pollManager.getNextPoll(_pollManager.Get(getPlayer()), _clientManager.Get(getPlayer()).getPrimaryGroup());
if (_poll != null)
{
setItem(13, getQuestionItem(_poll.getQuestion()));
int[] slots = even(9, _poll.getAnswers().length);
for (int i = 0; i < slots.length; i++)
{
AnswerItem item = new AnswerItem(_poll, i);
setItem(9 * 3 + slots[i], item);
}
}
}
}
@Override
public ItemStack getObject()
{
List<String> lore = new ArrayList<>();
if (_poll == null)
{
lore.add("");
lore.add(C.cWhite + "You've voted on all of the polls!");
return ItemStackFactory.Instance.CreateStack(Material.REDSTONE_BLOCK, (byte) 0, 1, ChatColor.RED + C.Bold + "Vote on Poll", lore);
}
else
{
lore.add("");
lore.add(C.cWhite + _poll.getQuestion());
lore.add("");
int i = 1;
for(String str : _poll.getAnswers())
{
lore.add(C.cAqua + "" + i + ".) " + C.cWhite + str);
i++;
}
lore.add("");
BonusAmount amount = new BonusAmount();
amount.setShards(_poll.getCoinReward());
amount.setGems(_poll.getCoinReward());
amount.addLore(lore);
// lore.add(C.cYellow + "Reward:" + C.cWhite + " 500 Gems");
lore.add("");
lore.add(C.cGreen + "Click to go to the vote page!");
return ItemStackFactory.Instance.CreateStack(Material.BOOK_AND_QUILL, (byte) 0, 1, C.cGreen + C.Bold + "Vote on Poll", lore);
}
}
@Override
public void click(ClickType clickType)
{
if (!Recharge.Instance.use(getPlayer(), "Poll Main Button", 1000, false, false))
{
return;
}
if (_poll == null)
{
getPlayer().playSound(getPlayer().getLocation(), Sound.ITEM_BREAK, 1, 1.6f);
}
else
{
getPlayer().playSound(getPlayer().getLocation(), Sound.NOTE_PLING, 1, 1.6f);
openInventory();
}
}
public GuiItem getQuestionItem(String question)
{
List<String> lore = new ArrayList<>();
lore.add("");
for (String string : wrap(question))
{
lore.add(C.cWhite + string);
}
lore.add("");
int i = 1;
for (String str : _poll.getAnswers())
{
lore.add(C.cAqua + "" + i + ".) " + C.cWhite + str);
i++;
}
lore.add("");
BonusAmount amount = new BonusAmount();
amount.setShards(_poll.getCoinReward());
amount.setGems(_poll.getCoinReward());
amount.addLore(lore);
return new SimpleGuiItem(ItemStackFactory.Instance.CreateStack(Material.BOOK_AND_QUILL, (byte) 0, 1, ChatColor.GREEN + C.cGreen + C.Bold + "Vote on Poll",
lore));
}
public static String[] wrap(String text)
{
return UtilText.wrap(text, 40);
}
public static int[] even(int size, int amount)
{
int[] list = new int[amount];
float interval = (size / amount);
float offset = -(interval / 2);
for (int i = 1; i <= amount; i++)
{
list[i - 1] = (int) (Math.ceil(i * interval) + offset);
}
return list;
}
public Poll getPoll()
{
return _poll;
}
public GuiInventory getMaster()
{
return _master;
}
private class AnswerItem implements GuiItem
{
private int _num;
private AnswerItem(Poll poll, int num)
{
_num = num;
}
@Override
public ItemStack getObject()
{
List<String> lore = new ArrayList<>();
lore.add("");
lore.add(C.cWhite + getPoll().getAnswers()[_num]);
return ItemStackFactory.Instance.CreateStack(Material.EMERALD, (byte) 0, 1, ChatColor.GREEN + "Option " + (_num + 1), lore);
}
@Override
public void click(ClickType clickType)
{
if (!Recharge.Instance.use(getPlayer(), "Poll Answer Button", 1000, false, false))
{
return;
}
_create = true;
_pollManager.answerPoll(getPlayer(), _poll, _num + 1);
getPlayer().playSound(getPlayer().getLocation(), Sound.NOTE_PLING, 1, 1.6f);
new TimedMessageWindow(getPlugin(), getPlayer(), ItemStackFactory.Instance.CreateStack(Material.EMERALD_BLOCK, (byte) 0, 1, ChatColor.GREEN + "Your anwser:", wrap(getPoll().getAnswers()[_num])), ChatColor.GREEN + "Moo", 6 * 9, 50, getMaster()).openInventory();
_bonusManager.addPendingExplosion(getPlayer(), "POLL");
getPlayer().closeInventory();
}
@Override
public void setup() {}
@Override
public void close() {}
}
@Override
public void close() {}
}