Merge branch 'master' of ssh://184.154.0.242:7999/min/mineplex

This commit is contained in:
libraryaddict 2015-02-11 00:59:45 +13:00
commit 5a516e4c78
15 changed files with 233 additions and 58 deletions

View File

@ -61,11 +61,16 @@ public class PacketPlayOutPlayerInfo extends Packet {
} }
public static PacketPlayOutPlayerInfo updateDisplayName(EntityPlayer player) { public static PacketPlayOutPlayerInfo updateDisplayName(EntityPlayer player) {
return updateDisplayName(player, getFormattedName(player));
}
public static PacketPlayOutPlayerInfo updateDisplayName(EntityPlayer player, String displayName)
{
PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo(); PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo();
packet.action = 3; packet.action = 3;
packet.username = player.listName; packet.username = player.listName;
packet.player = player.getProfile(); packet.player = player.getProfile();
packet._tabName = getFormattedName(player); packet._tabName = displayName;
return packet; return packet;
} }

View File

@ -74,7 +74,7 @@ public class RewardManager
} }
// Gadgets // Gadgets
addReward(new InventoryReward(inventoryManager, "Paintball Gun Ammo", "Paintball Gun", addReward(new InventoryReward(inventoryManager, "Paintballs", "Paintball Gun",
(int)(100*(minValue/500)), (int)(100*(maxValue/500)), (int)(100*(minValue/500)), (int)(100*(maxValue/500)),
new ItemStack(Material.GOLD_BARDING), rarity, 1)); new ItemStack(Material.GOLD_BARDING), rarity, 1));
@ -82,7 +82,7 @@ public class RewardManager
(int)(50*(minValue/500)), (int)(50*(maxValue/500)), (int)(50*(minValue/500)), (int)(50*(maxValue/500)),
new ItemStack(Material.FIREWORK), rarity, 1)); new ItemStack(Material.FIREWORK), rarity, 1));
addReward(new InventoryReward(inventoryManager, "Melon Launcher Ammo", "Melon Launcher", addReward(new InventoryReward(inventoryManager, "Melons", "Melon Launcher",
(int)(50*(minValue/500)), (int)(50*(maxValue/500)), (int)(50*(minValue/500)), (int)(50*(maxValue/500)),
new ItemStack(Material.MELON_BLOCK), rarity, 1)); new ItemStack(Material.MELON_BLOCK), rarity, 1));
@ -90,11 +90,11 @@ public class RewardManager
(int)(40*(minValue/500)), (int)(40*(maxValue/500)), (int)(40*(minValue/500)), (int)(40*(maxValue/500)),
new ItemStack(Material.getMaterial(131)), rarity, 1)); new ItemStack(Material.getMaterial(131)), rarity, 1));
addReward(new InventoryReward(inventoryManager, "Ethereal Pearls", "Ethereal Pearl", addReward(new InventoryReward(inventoryManager, "Pearls", "Ethereal Pearl",
(int)(30*(minValue/500)), (int)(30*(maxValue/500)), (int)(30*(minValue/500)), (int)(30*(maxValue/500)),
new ItemStack(Material.ENDER_PEARL), rarity, 1)); new ItemStack(Material.ENDER_PEARL), rarity, 1));
addReward(new InventoryReward(inventoryManager, "Bat Blaster Ammo", "Bat Blaster", addReward(new InventoryReward(inventoryManager, "Bat Swarms", "Bat Blaster",
(int)(20*(minValue/500)), (int)(20*(maxValue/500)), (int)(20*(minValue/500)), (int)(20*(maxValue/500)),
new ItemStack(Material.IRON_BARDING), rarity, 1)); new ItemStack(Material.IRON_BARDING), rarity, 1));
@ -118,7 +118,7 @@ public class RewardManager
} }
// Gadgets // Gadgets
addReward(new InventoryReward(inventoryManager, "Paintball Gun Ammo", "Paintball Gun", addReward(new InventoryReward(inventoryManager, "Paintballs", "Paintball Gun",
(int)(100*(minValue/500)), (int)(100*(maxValue/500)), (int)(100*(minValue/500)), (int)(100*(maxValue/500)),
new ItemStack(Material.GOLD_BARDING), rarity, 250)); new ItemStack(Material.GOLD_BARDING), rarity, 250));
@ -126,19 +126,19 @@ public class RewardManager
(int)(50*(minValue/500)), (int)(50*(maxValue/500)), (int)(50*(minValue/500)), (int)(50*(maxValue/500)),
new ItemStack(Material.FIREWORK), rarity, 250)); new ItemStack(Material.FIREWORK), rarity, 250));
addReward(new InventoryReward(inventoryManager, "Melon Launcher Ammo", "Melon Launcher", addReward(new InventoryReward(inventoryManager, "Melons", "Melon Launcher",
(int)(50*(minValue/500)), (int)(50*(maxValue/500)), (int)(50*(minValue/500)), (int)(50*(maxValue/500)),
new ItemStack(Material.MELON_BLOCK), rarity, 250)); new ItemStack(Material.MELON_BLOCK), rarity, 250));
addReward(new InventoryReward(inventoryManager, "Flesh Hook Ammo", "Flesh Hook", addReward(new InventoryReward(inventoryManager, "Flesh Hooks", "Flesh Hook",
(int)(40*(minValue/500)), (int)(40*(maxValue/500)), (int)(40*(minValue/500)), (int)(40*(maxValue/500)),
new ItemStack(Material.getMaterial(131)), rarity, 250)); new ItemStack(Material.getMaterial(131)), rarity, 250));
addReward(new InventoryReward(inventoryManager, "Ethereal Pearls", "Ethereal Pearl", addReward(new InventoryReward(inventoryManager, "Pearls", "Ethereal Pearl",
(int)(30*(minValue/500)), (int)(30*(maxValue/500)), (int)(30*(minValue/500)), (int)(30*(maxValue/500)),
new ItemStack(Material.ENDER_PEARL), rarity, 250)); new ItemStack(Material.ENDER_PEARL), rarity, 250));
addReward(new InventoryReward(inventoryManager, "Bat Blaster Ammo", "Bat Blaster", addReward(new InventoryReward(inventoryManager, "Bat Swarms", "Bat Blaster",
(int)(20*(minValue/500)), (int)(20*(maxValue/500)), (int)(20*(minValue/500)), (int)(20*(maxValue/500)),
new ItemStack(Material.IRON_BARDING), rarity, 250)); new ItemStack(Material.IRON_BARDING), rarity, 250));
@ -291,10 +291,11 @@ public class RewardManager
int currentReward = 0; int currentReward = 0;
Reward[] rewards = new Reward[4]; Reward[] rewards = new Reward[4];
boolean hasUncommon = false; boolean hasUncommon = false;
boolean canGiveMythical = true;
while (currentReward < 4) while (currentReward < 4)
{ {
Reward reward = nextReward(player, rewards, currentReward == 3 && !hasUncommon, type); Reward reward = nextReward(player, rewards, currentReward == 3 && !hasUncommon, type, canGiveMythical);
if (reward == null) if (reward == null)
{ {
@ -305,6 +306,13 @@ public class RewardManager
{ {
hasUncommon = true; hasUncommon = true;
} }
//Only allow 1 Mythical
if (reward.getRarity().ordinal() >= RewardRarity.MYTHICAL.ordinal())
{
canGiveMythical = false;
}
rewards[currentReward] = reward; rewards[currentReward] = reward;
currentReward++; currentReward++;
} }
@ -328,14 +336,14 @@ public class RewardManager
// return nextReward(player, excludedRewards, false, isChestOpening); // return nextReward(player, excludedRewards, false, isChestOpening);
// } // }
public Reward nextReward(Player player, Reward[] excludedRewards, boolean requiresUncommon, RewardType type) public Reward nextReward(Player player, Reward[] excludedRewards, boolean requiresUncommon, RewardType type, boolean canGiveMythical)
{ {
RewardRarity rarity = type.generateRarity(requiresUncommon); RewardRarity rarity = type.generateRarity(requiresUncommon);
//Dont give Rank Upgrade if already has Legend //Dont give Rank Upgrade if already has Legend
if (rarity == RewardRarity.MYTHICAL) if (rarity == RewardRarity.MYTHICAL)
{ {
if (_clientManager.Get(player).GetRank().Has(Rank.LEGEND)) if (!canGiveMythical || _clientManager.Get(player).GetRank().Has(Rank.LEGEND))
{ {
rarity = RewardRarity.LEGENDARY; rarity = RewardRarity.LEGENDARY;
} }

View File

@ -2,11 +2,11 @@ package mineplex.core.reward;
public enum RewardType public enum RewardType
{ {
//% Chances Mythic Legend Rare Uncommon //% Chances Mythic Legend Rare Uncommon
GameLoot( 0.000001, 0.001, 0.004, 3), GameLoot( 0.000001, 0.00001, 0.0001, 3),
BasicChest( 0, 0.01, 0.04, 5), OldChest( 0, 0.01, 0.04, 5),
HeroicChest( 0, 1, 4, 25), AncientChest( 0, 1, 4, 25),
LegendaryChest( 0.5, 2.5, 10, 40); MythicalChest( 0.5, 2.5, 10, 40);
private double _mythicalChance; private double _mythicalChance;
private double _legendaryChance; private double _legendaryChance;

View File

@ -0,0 +1,25 @@
package mineplex.core.treasure;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import mineplex.core.common.CurrencyType;
import mineplex.core.shop.item.SalesPackageBase;
public class OldChest extends SalesPackageBase
{
public OldChest()
{
super("Old Chest", Material.CHEST, (byte) 0, new String[] {}, 1000);
KnownPackage = false;
OneTimePurchaseOnly = false;
}
@Override
public void Sold(Player player, CurrencyType currencyType)
{
}
}

View File

@ -91,8 +91,7 @@ public class Treasure
_chestData[i] = new ChestData(chestBlocks[i]); _chestData[i] = new ChestData(chestBlocks[i]);
} }
if (_treasureType == TreasureType.HEROIC || _treasureType == TreasureType.LEGENDARY) _animations.add(new BlockChangeAnimation(this, _otherBlockInfo));
_animations.add(new BlockChangeAnimation(this, _otherBlockInfo));
} }
public int getFinishedTickCount() public int getFinishedTickCount()

View File

@ -99,7 +99,7 @@ public class TreasureLocation implements Listener
setHoloChestVisible(false); setHoloChestVisible(false);
if (treasureType == TreasureType.HEROIC || treasureType == TreasureType.LEGENDARY) if (treasureType == TreasureType.ANCIENT || treasureType == TreasureType.MYTHICAL)
Bukkit.broadcastMessage(F.main("Treasure", F.name(player.getName()) + " is opening a " + treasureType.getName())); Bukkit.broadcastMessage(F.main("Treasure", F.name(player.getName()) + " is opening a " + treasureType.getName()));
Reward[] rewards = _treasureManager.getRewards(player, treasureType.getRewardType()); Reward[] rewards = _treasureManager.getRewards(player, treasureType.getRewardType());

View File

@ -1,33 +1,24 @@
package mineplex.core.treasure; package mineplex.core.treasure;
import org.bukkit.Material;
import org.bukkit.Sound; import org.bukkit.Sound;
import mineplex.core.common.util.UtilParticle.ParticleType; import mineplex.core.common.util.UtilParticle.ParticleType;
/**
* Created by Shaun on 8/28/2014.
*/
public enum TreasureStyle public enum TreasureStyle
{ {
/** OLD(
* These are examples, not final!
*/
BASIC(
ParticleType.EXPLODE, ParticleType.EXPLODE,
ParticleType.EXPLODE, ParticleType.EXPLODE,
Sound.FIZZ, Sound.FIZZ,
Sound.HORSE_ARMOR), Sound.HORSE_ARMOR),
HEROIC( ANCIENT(
ParticleType.FLAME, ParticleType.FLAME,
ParticleType.LAVA, ParticleType.LAVA,
Sound.LAVA_POP, Sound.LAVA_POP,
Sound.EXPLODE), Sound.EXPLODE),
LEGENDARY( MYTHICAL(
ParticleType.HAPPY_VILLAGER, ParticleType.HAPPY_VILLAGER,
ParticleType.LARGE_EXPLODE, ParticleType.LARGE_EXPLODE,
Sound.PORTAL_TRAVEL, Sound.PORTAL_TRAVEL,

View File

@ -7,11 +7,11 @@ import mineplex.core.reward.RewardType;
public enum TreasureType public enum TreasureType
{ {
BASIC(C.cYellow + "Basic Chest", "Basic Chest", RewardType.BasicChest, Material.CHEST, TreasureStyle.BASIC), OLD(C.cYellow + "Old Chest", "Old Chest", RewardType.OldChest, Material.CHEST, TreasureStyle.OLD),
HEROIC(C.cGold + "Heroic Chest", "Heroic Chest", RewardType.HeroicChest, Material.TRAPPED_CHEST, TreasureStyle.HEROIC), ANCIENT(C.cGold + "Ancient Chest", "Ancient Chest", RewardType.AncientChest, Material.TRAPPED_CHEST, TreasureStyle.ANCIENT),
LEGENDARY(C.cRed + "Legendary Chest", "Legendary Chest", RewardType.LegendaryChest, Material.ENDER_CHEST, TreasureStyle.LEGENDARY); MYTHICAL(C.cRed + "Mythical Chest", "Mythical Chest", RewardType.MythicalChest, Material.ENDER_CHEST, TreasureStyle.MYTHICAL);
private final String _name; private final String _name;
private final RewardType _rewardType; private final RewardType _rewardType;

View File

@ -51,13 +51,19 @@ public class BlockChangeAnimation extends Animation
} }
else if (b.getType() == Material.SMOOTH_BRICK) else if (b.getType() == Material.SMOOTH_BRICK)
{ {
Material newMaterial = getTreasure().getTreasureType() == TreasureType.HEROIC ? Material.NETHER_BRICK : Material.QUARTZ_BLOCK; if (getTreasure().getTreasureType() == TreasureType.OLD)
continue;
Material newMaterial = getTreasure().getTreasureType() == TreasureType.ANCIENT ? Material.NETHER_BRICK : Material.QUARTZ_BLOCK;
_blockInfoList.add(new BlockInfo(b)); _blockInfoList.add(new BlockInfo(b));
b.setType(newMaterial); b.setType(newMaterial);
} }
else if (b.getType() == Material.SMOOTH_STAIRS || b.getType() == Material.COBBLESTONE_STAIRS) else if (b.getType() == Material.SMOOTH_STAIRS || b.getType() == Material.COBBLESTONE_STAIRS)
{ {
Material newMaterial = getTreasure().getTreasureType() == TreasureType.HEROIC ? Material.NETHER_BRICK_STAIRS : Material.QUARTZ_STAIRS; if (getTreasure().getTreasureType() == TreasureType.OLD)
continue;
Material newMaterial = getTreasure().getTreasureType() == TreasureType.ANCIENT ? Material.NETHER_BRICK_STAIRS : Material.QUARTZ_STAIRS;
_blockInfoList.add(new BlockInfo(b)); _blockInfoList.add(new BlockInfo(b));
b.setType(newMaterial); b.setType(newMaterial);
} }

View File

@ -80,11 +80,11 @@ public class ChestSpawnAnimation extends Animation
_particleLocation.add(_particleDirection); _particleLocation.add(_particleDirection);
//Play Particels //Play Particels
if (getTreasure().getTreasureType() == TreasureType.BASIC) if (getTreasure().getTreasureType() == TreasureType.OLD)
{ {
UtilParticle.PlayParticle(getTreasure().getTreasureType().getStyle().getSecondaryParticle(), _centerLocation, 0.1f, 0.1f, 0.1f, 0, 1); UtilParticle.PlayParticle(getTreasure().getTreasureType().getStyle().getSecondaryParticle(), _centerLocation, 0.1f, 0.1f, 0.1f, 0, 1);
} }
else if (getTreasure().getTreasureType() == TreasureType.HEROIC) else if (getTreasure().getTreasureType() == TreasureType.ANCIENT)
{ {
float x = (float) (Math.sin(getTicks()/4D)); float x = (float) (Math.sin(getTicks()/4D));
float z = (float) (Math.cos(getTicks()/4D)); float z = (float) (Math.cos(getTicks()/4D));
@ -95,7 +95,7 @@ public class ChestSpawnAnimation extends Animation
UtilParticle.PlayParticle(getTreasure().getTreasureType().getStyle().getSecondaryParticle(), newLoc, 0f, 0f, 0f, 0, 1); UtilParticle.PlayParticle(getTreasure().getTreasureType().getStyle().getSecondaryParticle(), newLoc, 0f, 0f, 0f, 0, 1);
} }
else if (getTreasure().getTreasureType() == TreasureType.LEGENDARY) else if (getTreasure().getTreasureType() == TreasureType.MYTHICAL)
{ {
float y = 5 * scale; float y = 5 * scale;
double width = 0.7 * ((double) getTicks() / (double) ANIMATION_DURATION); double width = 0.7 * ((double) getTicks() / (double) ANIMATION_DURATION);

View File

@ -0,0 +1,45 @@
package mineplex.core.treasure.gui;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;
import mineplex.core.account.CoreClientManager;
import mineplex.core.common.CurrencyType;
import mineplex.core.donation.DonationManager;
import mineplex.core.inventory.InventoryManager;
import mineplex.core.shop.item.IButton;
import mineplex.core.shop.page.ConfirmationPage;
import mineplex.core.treasure.OldChest;
import mineplex.core.treasure.TreasureManager;
public class BuyBasicChestButton implements IButton
{
private Player _player;
private InventoryManager _inventoryManager;
private TreasurePage _page;
public BuyBasicChestButton(Player player, InventoryManager inventoryManager, TreasurePage page)
{
_player = player;
_inventoryManager = inventoryManager;
_page = page;
}
@Override
public void onClick(final Player player, ClickType clickType)
{
_page.getShop().OpenPageForPlayer(player, new ConfirmationPage<TreasureManager, TreasureShop>(
_page.getPlugin(), _page.getShop(), _page.getClientManager(), _page.getDonationManager(), new Runnable()
{
public void run()
{
_inventoryManager.addItemToInventory(player, "Item", "Old Chest", 1);
_page.Refresh();
}
}, _page, new OldChest(), CurrencyType.Coins, player));
}
}

View File

@ -8,12 +8,17 @@ import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import mineplex.core.account.CoreClientManager; import mineplex.core.account.CoreClientManager;
import mineplex.core.common.CurrencyType;
import mineplex.core.common.util.C; import mineplex.core.common.util.C;
import mineplex.core.common.util.F; import mineplex.core.common.util.F;
import mineplex.core.cosmetic.CosmeticManager;
import mineplex.core.cosmetic.ui.CosmeticShop;
import mineplex.core.donation.DonationManager; import mineplex.core.donation.DonationManager;
import mineplex.core.inventory.InventoryManager; import mineplex.core.inventory.InventoryManager;
import mineplex.core.shop.item.ShopItem; import mineplex.core.shop.item.ShopItem;
import mineplex.core.shop.page.ConfirmationPage;
import mineplex.core.shop.page.ShopPageBase; import mineplex.core.shop.page.ShopPageBase;
import mineplex.core.treasure.TreasureKey;
import mineplex.core.treasure.TreasureLocation; import mineplex.core.treasure.TreasureLocation;
import mineplex.core.treasure.TreasureManager; import mineplex.core.treasure.TreasureManager;
import mineplex.core.treasure.TreasureType; import mineplex.core.treasure.TreasureType;
@ -36,38 +41,71 @@ public class TreasurePage extends ShopPageBase<TreasureManager, TreasureShop>
@Override @Override
protected void BuildPage() protected void BuildPage()
{ {
int basicCount = _inventoryManager.Get(Player).getItemCount(TreasureType.BASIC.getItemName()); int basicCount = _inventoryManager.Get(Player).getItemCount(TreasureType.OLD.getItemName());
int heroicCount = _inventoryManager.Get(Player).getItemCount(TreasureType.HEROIC.getItemName()); int heroicCount = _inventoryManager.Get(Player).getItemCount(TreasureType.ANCIENT.getItemName());
int legendaryCount = _inventoryManager.Get(Player).getItemCount(TreasureType.LEGENDARY.getItemName()); int legendaryCount = _inventoryManager.Get(Player).getItemCount(TreasureType.MYTHICAL.getItemName());
List<String> basicLore = new ArrayList<String>(); List<String> basicLore = new ArrayList<String>();
basicLore.add(" "); basicLore.add(" ");
basicLore.add(F.value("Basic Chests Owned", "" + basicCount)); basicLore.add(F.value("Old Chests Owned", "" + basicCount));
basicLore.add(" ");
basicLore.add(C.cGray + "We've scoured the lands of Minecraft");
basicLore.add(C.cGray + "and found these abandoned chests.");
basicLore.add(C.cGray + "The contents are unknown, but");
basicLore.add(C.cGray + "according to the inscriptions on the");
basicLore.add(C.cGray + "the straps they appear to contain");
basicLore.add(C.cGray + "many kinds of loot.");
basicLore.add(" "); basicLore.add(" ");
if (basicCount > 0) if (basicCount > 0)
basicLore.add(ChatColor.RESET + "Click to open!"); basicLore.add(ChatColor.RESET + C.cGreen + "Click to Open!");
else
{
basicLore.add(ChatColor.RESET + "Cost: " + C.cYellow + "1000 Coins");
basicLore.add(ChatColor.RESET + "Click to Purchase!");
}
List<String> heroicLore = new ArrayList<String>(); List<String> heroicLore = new ArrayList<String>();
heroicLore.add(" "); heroicLore.add(" ");
heroicLore.add(F.value("Heroic Chests Owned", "" + heroicCount)); heroicLore.add(F.value("Ancient Chests Owned", "" + heroicCount));
heroicLore.add(" ");
heroicLore.add(C.cGray + "Some of our bravest adventurers");
heroicLore.add(C.cGray + "have discovered these chests within ");
heroicLore.add(C.cGray + "temples hidden in Minecrafts worlds.");
heroicLore.add(" "); heroicLore.add(" ");
if (heroicCount > 0) if (heroicCount > 0)
heroicLore.add(ChatColor.RESET + "Click to open!"); heroicLore.add(ChatColor.RESET + C.cGreen + "Click to Open!");
else
{
heroicLore.add(ChatColor.RESET + "Purchase at: " + C.cYellow + "www.mineplex.com/shop");
}
List<String> legendaryLore = new ArrayList<String>(); List<String> legendaryLore = new ArrayList<String>();
legendaryLore.add(" "); legendaryLore.add(" ");
legendaryLore.add(F.value("Legendary Chests Owned", "" + legendaryCount)); legendaryLore.add(F.value("Mythical Chests Owned", "" + legendaryCount));
legendaryLore.add(" ");
legendaryLore.add(C.cGray + "All our previous adventurers have");
legendaryLore.add(C.cGray + "perished in search of these chests.");
legendaryLore.add(C.cGray + "However, legends of their existence");
legendaryLore.add(C.cGray + "convinced Sterling, Chiss and Defek7");
legendaryLore.add(C.cGray + "to venture out and discover the");
legendaryLore.add(C.cGray + "location of these chests on their own.");
legendaryLore.add(" "); legendaryLore.add(" ");
if (legendaryCount > 0) if (legendaryCount > 0)
legendaryLore.add(ChatColor.RESET + "Click to open!"); legendaryLore.add(ChatColor.RESET + C.cGreen + "Click to Open!");
else
{
legendaryLore.add(ChatColor.RESET + "Purchase at: " + C.cYellow + "www.mineplex.com/shop");
}
ShopItem basic = new ShopItem(Material.CHEST, C.cGreen + C.Bold + "Old Chest", basicLore.toArray(new String[0]), 0, false, false);
ShopItem heroic = new ShopItem(Material.TRAPPED_CHEST, C.cGold + C.Bold + "Ancient Chest", heroicLore.toArray(new String[0]), 0, false, false);
ShopItem legendary = new ShopItem(Material.ENDER_CHEST, C.cRed + C.Bold + "Mythical Chest", legendaryLore.toArray(new String[0]), 0, false, false);
ShopItem basic = new ShopItem(Material.CHEST, C.cGreen + C.Bold + "Basic Chest", basicLore.toArray(new String[0]), 0, false, false); if (basicCount > 0)
ShopItem heroic = new ShopItem(Material.TRAPPED_CHEST, C.cGold + C.Bold + "Heroic Chest", heroicLore.toArray(new String[0]), 0, false, false); AddButton(2, basic, new OpenTreasureButton(Player, _treasureLocation, TreasureType.OLD));
ShopItem legendary = new ShopItem(Material.ENDER_CHEST, C.cRed + C.Bold + "Legendary Chest", legendaryLore.toArray(new String[0]), 0, false, false); else
AddButton(2, basic, new BuyBasicChestButton(Player, _inventoryManager, this));
AddButton(2, basic, new OpenTreasureButton(Player, _treasureLocation, TreasureType.BASIC)); AddButton(4, heroic, new OpenTreasureButton(Player, _treasureLocation, TreasureType.ANCIENT));
AddButton(4, heroic, new OpenTreasureButton(Player, _treasureLocation, TreasureType.HEROIC)); AddButton(6, legendary, new OpenTreasureButton(Player, _treasureLocation, TreasureType.MYTHICAL));
AddButton(6, legendary, new OpenTreasureButton(Player, _treasureLocation, TreasureType.LEGENDARY));
} }
} }

View File

@ -84,6 +84,7 @@ import mineplex.minecraft.game.core.fire.Fire;
import nautilus.game.arcade.addons.CompassAddon; import nautilus.game.arcade.addons.CompassAddon;
import nautilus.game.arcade.addons.SoupAddon; import nautilus.game.arcade.addons.SoupAddon;
import nautilus.game.arcade.addons.TeamArmorAddon; import nautilus.game.arcade.addons.TeamArmorAddon;
import nautilus.game.arcade.command.DisguiseCommand;
import nautilus.game.arcade.command.GameCommand; import nautilus.game.arcade.command.GameCommand;
import nautilus.game.arcade.command.WriteCommand; import nautilus.game.arcade.command.WriteCommand;
import nautilus.game.arcade.command.YoutubeCommand; import nautilus.game.arcade.command.YoutubeCommand;
@ -306,6 +307,7 @@ public class ArcadeManager extends MiniPlugin implements IRelation
addCommand(new GameCommand(this)); addCommand(new GameCommand(this));
addCommand(new WriteCommand(this)); addCommand(new WriteCommand(this));
addCommand(new YoutubeCommand(this)); addCommand(new YoutubeCommand(this));
addCommand(new DisguiseCommand(this));
} }
public GameServerConfig GetServerConfig() public GameServerConfig GetServerConfig()

View File

@ -0,0 +1,56 @@
package nautilus.game.arcade.command;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import nautilus.game.arcade.ArcadeManager;
import net.minecraft.util.com.mojang.authlib.GameProfile;
import mineplex.core.command.CommandBase;
import mineplex.core.common.Rank;
import mineplex.core.common.util.C;
import mineplex.core.common.util.ProfileLoader;
import mineplex.core.common.util.UUIDFetcher;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.disguise.disguises.DisguisePlayer;
public class DisguiseCommand extends CommandBase<ArcadeManager>
{
public DisguiseCommand(ArcadeManager plugin)
{
super(plugin, Rank.OWNER, new Rank[] {Rank.OWNER}, "disguise");
}
@Override
public void Execute(final Player caller, final String[] args)
{
if (args.length == 0)
{
UtilPlayer.message(caller, C.cRed + C.Bold + "/disguise <name>");
return;
}
Bukkit.getServer().getScheduler().runTaskAsynchronously(Plugin.GetPlugin(), new Runnable()
{
@Override
public void run()
{
try
{
GameProfile profile = new ProfileLoader(UUIDFetcher.getUUIDOf(args[0]).toString(), args[0]).loadProfile();
DisguisePlayer playerDisguise = new DisguisePlayer(caller, profile);
Plugin.GetDisguise().disguise(playerDisguise);
UtilPlayer.message(caller, C.cGreen + C.Bold + "Disguise Active: " + ChatColor.RESET + args[0]);
}
catch (Exception e)
{
UtilPlayer.message(caller, C.cRed + C.Bold + "Invalid Disguise Name: " + ChatColor.RESET + args[0]);
return;
}
}}
);
}
}

View File

@ -162,7 +162,7 @@ public class GameLootManager implements Listener
return false; return false;
} }
Reward reward = _rewardManager.nextReward(player, null, false, RewardType.GameLoot); Reward reward = _rewardManager.nextReward(player, null, false, RewardType.GameLoot, true);
RewardData rewardData = reward.giveReward("GameLoot", player); RewardData rewardData = reward.giveReward("GameLoot", player);