38a20f98c2
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.
231 lines
5.8 KiB
Java
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() {}
|
|
} |