Add boosters to inventory menu

This commit is contained in:
Shaun Bennett 2016-05-06 13:31:59 +10:00
parent 184d247fc9
commit 93c2886601
6 changed files with 78 additions and 56 deletions

View File

@ -1,5 +1,6 @@
package mineplex.core.cosmetic.ui; package mineplex.core.cosmetic.ui;
import mineplex.core.cosmetic.ui.page.*;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.plugin.messaging.PluginMessageListener; import org.bukkit.plugin.messaging.PluginMessageListener;
@ -7,10 +8,6 @@ import org.bukkit.plugin.messaging.PluginMessageListener;
import mineplex.core.account.CoreClientManager; import mineplex.core.account.CoreClientManager;
import mineplex.core.common.CurrencyType; import mineplex.core.common.CurrencyType;
import mineplex.core.cosmetic.CosmeticManager; import mineplex.core.cosmetic.CosmeticManager;
import mineplex.core.cosmetic.ui.page.GadgetPage;
import mineplex.core.cosmetic.ui.page.Menu;
import mineplex.core.cosmetic.ui.page.PetTagPage;
import mineplex.core.cosmetic.ui.page.TreasurePage;
import mineplex.core.donation.DonationManager; import mineplex.core.donation.DonationManager;
import mineplex.core.gadget.event.ItemGadgetOutOfAmmoEvent; import mineplex.core.gadget.event.ItemGadgetOutOfAmmoEvent;
import mineplex.core.shop.ShopBase; import mineplex.core.shop.ShopBase;
@ -57,15 +54,15 @@ public class CosmeticShop extends ShopBase<CosmeticManager> implements PluginMes
} }
@EventHandler @EventHandler
public void updateTreasure(UpdateEvent event) public void updatePages(UpdateEvent event)
{ {
if (event.getType() != UpdateType.TICK) if (event.getType() != UpdateType.SEC)
return; return;
for (ShopPageBase<CosmeticManager, ? extends ShopBase<CosmeticManager>> shop : getPlayerPageMap().values()) for (ShopPageBase<CosmeticManager, ? extends ShopBase<CosmeticManager>> shop : getPlayerPageMap().values())
{ {
if (shop instanceof TreasurePage) if (shop instanceof BoosterPage)
((TreasurePage) shop).update(); ((BoosterPage) shop).updatePage();
} }
} }
} }

View File

@ -6,8 +6,11 @@ import mineplex.core.cosmetic.ui.CosmeticShop;
import mineplex.core.donation.DonationManager; import mineplex.core.donation.DonationManager;
import mineplex.core.shop.item.ShopItem; import mineplex.core.shop.item.ShopItem;
import mineplex.core.shop.page.ShopPageBase; import mineplex.core.shop.page.ShopPageBase;
import mineplex.core.updater.UpdateType;
import mineplex.core.updater.event.UpdateEvent;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import java.util.ArrayList; import java.util.ArrayList;
@ -16,9 +19,13 @@ import java.util.ArrayList;
*/ */
public class BoosterPage extends ShopPageBase<CosmeticManager, CosmeticShop> public class BoosterPage extends ShopPageBase<CosmeticManager, CosmeticShop>
{ {
private int _count = 0;
public BoosterPage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager, Player player) public BoosterPage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager, Player player)
{ {
super(plugin, shop, clientManager, donationManager, "Game Boosters", player, 9); super(plugin, shop, clientManager, donationManager, "Game Boosters", player, 9);
buildPage();
} }
@Override @Override
@ -27,10 +34,14 @@ public class BoosterPage extends ShopPageBase<CosmeticManager, CosmeticShop>
ArrayList<String> lore = new ArrayList<>(); ArrayList<String> lore = new ArrayList<>();
lore.add(" "); lore.add(" ");
lore.add("You Own: "); lore.add("You Own: " + _count++);
ShopItem booster = new ShopItem(Material.SUGAR, "Game Booster",);
ShopItem booster = new ShopItem(Material.SUGAR, "Game Booster", lore.toArray(new String[0]), 0, false, false);
setItem(4, booster);
}
public void updatePage()
{
refresh();
} }
} }

View File

@ -71,19 +71,20 @@ public class Menu extends ShopPageBase<CosmeticManager, CosmeticShop>
addItem(4, shards); addItem(4, shards);
// Cosmetic Items // Cosmetic Items
// int[] slots = UtilUI.getIndicesFor(12, 2); int[] slots = UtilUI.getIndicesFor(13, 2);
int particleSlot = 10;//slots[0]; int particleSlot = slots[0];
int arrowSlot = 12;//slots[1]; int arrowSlot = slots[1];
int jumpSlot = 14;//slots[2]; int jumpSlot = slots[2];
int deathSlot = 16;//slots[3]; int deathSlot = slots[3];
int gadgetSlot = 28;//slots[4]; int gadgetSlot = slots[4];
int morphSlot = 30;//slots[5]; int morphSlot = slots[5];
int mountSlot = 32;//slots[6]; int mountSlot = slots[6];
int petSlot = 34;//slots[7]; int petSlot = slots[7];
int hatSlot = 46;//slots[8]; int hatSlot = slots[8];
int costumeSlot = 48;//slots[9]; int costumeSlot = slots[9];
int musicSlot = 50;//slots[10]; int musicSlot = slots[10];
int tauntSlot = 52;//slots[11]; int tauntSlot = slots[11];
int boosterSlot = slots[12];
EnumMap<GadgetType, Integer> ownedCount = new EnumMap<GadgetType, Integer>(GadgetType.class); EnumMap<GadgetType, Integer> ownedCount = new EnumMap<GadgetType, Integer>(GadgetType.class);
EnumMap<GadgetType, Integer> maxCount = new EnumMap<GadgetType, Integer>(GadgetType.class); EnumMap<GadgetType, Integer> maxCount = new EnumMap<GadgetType, Integer>(GadgetType.class);
@ -200,6 +201,10 @@ public class Menu extends ShopPageBase<CosmeticManager, CosmeticShop>
player.sendMessage(F.main("Shop", "Coming soon!")); player.sendMessage(F.main("Shop", "Coming soon!"));
} }
}); });
addButton(boosterSlot, new ShopItem(Material.EMERALD, "Game Boosters",
new String[]{C.Bold + "", C.cDGreen + C.Italics + "Coming soon!"}, 1, false),
(player, clickType) -> openBoosters(player));
} }
private String[] getLore(int ownedCount, int maxCount, String info, String visibility, Gadget enabled) private String[] getLore(int ownedCount, int maxCount, String info, String visibility, Gadget enabled)
@ -247,4 +252,9 @@ public class Menu extends ShopPageBase<CosmeticManager, CosmeticShop>
{ {
getShop().openPageForPlayer(player, new MusicPage(getPlugin(), getShop(), getClientManager(), getDonationManager(), "Music", player)); getShop().openPageForPlayer(player, new MusicPage(getPlugin(), getShop(), getClientManager(), getDonationManager(), "Music", player));
} }
public void openBoosters(Player player)
{
getShop().openPageForPlayer(player, new BoosterPage(getPlugin(), getShop(), getClientManager(), getDonationManager(), player));
}
} }

View File

@ -2,16 +2,20 @@ package mineplex.core.gamebooster;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.UUID;
import mineplex.serverdata.data.Data; import mineplex.serverdata.data.Data;
public class BoosterData implements Data public class BoosterData implements Data
{ {
private BoostGame _game; private BoostGame _game;
private long _timeRemaining;
private List<BoostedGame> _boostQueue = new ArrayList<>(); private List<BoostedGame> _boostQueue = new ArrayList<>();
public BoosterData(BoostGame game) public BoosterData(BoostGame game)
{ {
_game = game; _game = game;
_timeRemaining = 1000 * 60 * 60;
} }
public List<BoostedGame> getBoostQueue() public List<BoostedGame> getBoostQueue()
@ -19,6 +23,11 @@ public class BoosterData implements Data
return _boostQueue; return _boostQueue;
} }
public long getTimeRemaining()
{
return _timeRemaining;
}
@Override @Override
public String getDataId() public String getDataId()
{ {
@ -27,24 +36,23 @@ public class BoosterData implements Data
public static class BoostedGame public static class BoostedGame
{ {
private String _playerName;
private UUID _playerUUID;
private String _server; public BoostedGame(String playerName, UUID playerUUID)
private String _player;
public BoostedGame(String _server, String _player)
{ {
this._server = _server; _playerName = playerName;
this._player = _player; _playerUUID = playerUUID;
} }
public String getServer() public String getPlayerName()
{ {
return _server; return _playerName;
} }
public String getPlayer() public UUID getPlayerUUID()
{ {
return _player; return _playerUUID;
} }
} }
} }

View File

@ -2,6 +2,7 @@ package mineplex.core.gamebooster;
import mineplex.core.MiniPlugin; import mineplex.core.MiniPlugin;
import mineplex.core.account.CoreClientManager; import mineplex.core.account.CoreClientManager;
import mineplex.core.cosmetic.ui.page.BoosterPage;
import mineplex.core.donation.DonationManager; import mineplex.core.donation.DonationManager;
import mineplex.core.inventory.InventoryManager; import mineplex.core.inventory.InventoryManager;
import mineplex.serverdata.Region; import mineplex.serverdata.Region;
@ -10,6 +11,9 @@ import mineplex.serverdata.redis.RedisDataRepository;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import java.util.Set;
import java.util.UUID;
/** /**
* Handles activation of GameBoosters * Handles activation of GameBoosters
* *
@ -18,13 +22,14 @@ import org.bukkit.plugin.java.JavaPlugin;
public class GameBoosterManager extends MiniPlugin public class GameBoosterManager extends MiniPlugin
{ {
// The item name used for InventoryManager // The item name used for InventoryManager
private static final String BOOSTER_ITEM = "Global.GameBooster"; private static final String BOOSTER_INVENTORY_ITEM = "Global.GameBooster";
private final CoreClientManager _clientManager; private final CoreClientManager _clientManager;
private final DonationManager _donationManager; private final DonationManager _donationManager;
private final InventoryManager _inventoryManager; private final InventoryManager _inventoryManager;
private final DataRepository<BoosterData> _boosterRepository; private final DataRepository<BoosterData> _boosterRepository;
private BoostGame _activeBoostGame;
public GameBoosterManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, InventoryManager inventoryManager) public GameBoosterManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, InventoryManager inventoryManager)
{ {
@ -49,7 +54,7 @@ public class GameBoosterManager extends MiniPlugin
*/ */
public int getAvailableBoosters(Player player, BoostGame game) public int getAvailableBoosters(Player player, BoostGame game)
{ {
return _inventoryManager.Get(player).getItemCount(BOOSTER_ITEM); return _inventoryManager.Get(player).getItemCount(BOOSTER_INVENTORY_ITEM);
} }
/** /**
@ -67,10 +72,16 @@ public class GameBoosterManager extends MiniPlugin
return false; return false;
} }
public BoosterData getBoostData(BoostGame game) /**
* Return the BoosterData for a specific BoostGame
* @param game The BoostGame we want data for
* @return The BoosterData instance for that game
*/
public BoosterData getBoosterData(BoostGame game)
{ {
// TODO BoosterData data = new BoosterData(game);
return null; data.getBoostQueue().add(new BoosterData.BoostedGame("Phinary", UUID.randomUUID()));
return data;
} }
} }

View File

@ -296,7 +296,6 @@ public abstract class Game implements Listener
public final ChatStatData BlankLine = new ChatStatData().blankLine(); public final ChatStatData BlankLine = new ChatStatData().blankLine();
// Gems // Gems
private final DataRepository<BoosterData> _boosterRepository = new RedisDataRepository(Region.currentRegion(), BoosterData.class, "gemBooster");
public double GemMultiplier = 1; public double GemMultiplier = 1;
public boolean GemHunterEnabled = true; public boolean GemHunterEnabled = true;
public boolean GemBoosterEnabled = true; public boolean GemBoosterEnabled = true;
@ -1364,22 +1363,6 @@ public abstract class Game implements Listener
SetState(GameState.End); SetState(GameState.End);
} }
@EventHandler(priority = EventPriority.MONITOR)
public void GameStateChange(GameStateChangeEvent event)
{
if (event.GetState() != GameState.Dead)
{
return;
}
BoosterData data = _boosterRepository.getElement(Manager.GetServerConfig().ServerType);
if (data != null)
{
data.getBoostQueue().remove(0);
_boosterRepository.addElement(data, 60 * 30); // 30 minutes
}
}
public void AddGemBooster(Player player) public void AddGemBooster(Player player)
{ {
if (!GemBoosterEnabled) if (!GemBoosterEnabled)
@ -1394,6 +1377,7 @@ public abstract class Game implements Listener
return; return;
} }
/*
BoosterData data = _boosterRepository.getElement(Manager.GetServerConfig().ServerType); BoosterData data = _boosterRepository.getElement(Manager.GetServerConfig().ServerType);
if (data == null) if (data == null)
{ {
@ -1418,6 +1402,7 @@ public abstract class Game implements Listener
Bukkit.broadcastMessage(F.main("Game", "Gem boosters are now active on this server thanks to " + F.elem(player.getName()) + "! Use /tip " + player.getName() + " to give three shards as thanks!")); Bukkit.broadcastMessage(F.main("Game", "Gem boosters are now active on this server thanks to " + F.elem(player.getName()) + "! Use /tip " + player.getName() + " to give three shards as thanks!"));
GemBoosters.add(player.getName()); GemBoosters.add(player.getName());
*/
} }
public String getBoosters() public String getBoosters()