From cc5db5939d42d6cf432d033523fae6fbeb532aad Mon Sep 17 00:00:00 2001 From: Shaun Bennett Date: Wed, 17 Sep 2014 14:34:57 -0500 Subject: [PATCH 1/6] Add Music and Costume pages to cosmetic menu --- .../core/cosmetic/ui/button/OpenCostumes.java | 25 ++++ .../core/cosmetic/ui/button/OpenMusic.java | 25 ++++ .../core/cosmetic/ui/page/CostumePage.java | 114 ++++++++++++++++++ .../mineplex/core/cosmetic/ui/page/Menu.java | 44 ++++--- .../core/cosmetic/ui/page/MusicPage.java | 56 +++++++++ .../mineplex/core/gadget/GadgetManager.java | 7 +- 6 files changed, 251 insertions(+), 20 deletions(-) create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/OpenCostumes.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/OpenMusic.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/CostumePage.java create mode 100644 Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/OpenCostumes.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/OpenCostumes.java new file mode 100644 index 000000000..f6b6a7e5a --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/OpenCostumes.java @@ -0,0 +1,25 @@ +package mineplex.core.cosmetic.ui.button; + +import org.bukkit.entity.Player; + +import mineplex.core.cosmetic.ui.page.Menu; +import mineplex.core.shop.item.SingleButton; + +/** + * Created by shaun on 14-09-15. + */ +public class OpenCostumes extends SingleButton +{ + private Menu _menu; + + public OpenCostumes(Menu menu) + { + _menu = menu; + } + + @Override + public void Clicked(Player player) + { + _menu.openCostumes(player); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/OpenMusic.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/OpenMusic.java new file mode 100644 index 000000000..3bdefba2b --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/OpenMusic.java @@ -0,0 +1,25 @@ +package mineplex.core.cosmetic.ui.button; + +import org.bukkit.entity.Player; + +import mineplex.core.cosmetic.ui.page.Menu; +import mineplex.core.shop.item.SingleButton; + +/** + * Created by shaun on 14-09-15. + */ +public class OpenMusic extends SingleButton +{ + private Menu _menu; + + public OpenMusic(Menu menu) + { + _menu = menu; + } + + @Override + public void Clicked(Player player) + { + _menu.openMusic(player); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/CostumePage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/CostumePage.java new file mode 100644 index 000000000..e9ebb9b66 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/CostumePage.java @@ -0,0 +1,114 @@ +package mineplex.core.cosmetic.ui.page; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Material; +import org.bukkit.Sound; +import org.bukkit.entity.Player; + +import mineplex.core.account.CoreClientManager; +import mineplex.core.common.util.C; +import mineplex.core.cosmetic.CosmeticManager; +import mineplex.core.cosmetic.ui.CosmeticShop; +import mineplex.core.donation.DonationManager; +import mineplex.core.gadget.types.Gadget; +import mineplex.core.gadget.types.GadgetType; +import mineplex.core.gadget.types.ItemGadget; +import mineplex.core.gadget.types.OutfitGadget; +import mineplex.core.shop.item.ShopItem; +import mineplex.core.shop.item.SingleButton; + +/** + * Created by shaun on 14-09-15. + */ +public class CostumePage extends GadgetPage +{ + public CostumePage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager, String name, Player player) + { + super(plugin, shop, clientManager, donationManager, name, player); + + BuildPage(); + } + + protected void BuildPage() + { + int slot; + + List costumeClasses = new ArrayList(); + + for (Gadget gadget : Plugin.getGadgetManager().getGadgets(GadgetType.Costume)) + { + OutfitGadget outfitGadget = ((OutfitGadget) gadget); + Class clazz = gadget.getClass(); + + if (!costumeClasses.contains(clazz)) + { + costumeClasses.add(clazz); + } + + slot = (costumeClasses.indexOf(clazz) * 2) + 3 + 18; + + if (outfitGadget.GetSlot() == OutfitGadget.ArmorSlot.Chest) + slot += 9; + else if (outfitGadget.GetSlot() == OutfitGadget.ArmorSlot.Legs) + slot += 18; + else if (outfitGadget.GetSlot() == OutfitGadget.ArmorSlot.Boots) + slot += 27; + + addGadget(gadget, slot); + + if (gadget.IsActive(Player)) + addGlow(slot); + } + + AddButton(8, new ShopItem(Material.TNT, C.cRed + C.Bold + "Remove all Clothing", new String[] { }, 1, false), new SingleButton() + { + @Override + public void Clicked(Player player) + { + boolean gadgetDisabled = false; + for (Gadget gadget : Plugin.getGadgetManager().getGadgets(GadgetType.Costume)) + { + if (gadget.IsActive(player)) + { + gadgetDisabled = true; + gadget.Disable(player); + } + } + + if (gadgetDisabled) + { + BuildPage(); + player.playSound(player.getEyeLocation(), Sound.SPLASH, 1, 1); + } + } + }); + + AddButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[] { }, 1, false), new SingleButton() + { + @Override + public void Clicked(Player player) + { + Shop.OpenPageForPlayer(Player, new Menu(Plugin, Shop, ClientManager, DonationManager, player)); + } + }); + } + + public void activateGadget(Player player, Gadget gadget) + { + if (gadget instanceof ItemGadget) + { + if (Plugin.getInventoryManager().Get(player).getItemCount(gadget.GetName()) <= 0) + { + purchaseGadget(player, gadget); + return; + } + } + + PlayAcceptSound(player); + gadget.Enable(player); + + BuildPage(); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java index 23ead2fae..c6fbc0c90 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java @@ -3,22 +3,21 @@ package mineplex.core.cosmetic.ui.page; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; -import org.bukkit.craftbukkit.v1_7_R4.inventory.CraftItemStack; import org.bukkit.entity.Player; import mineplex.core.account.CoreClientManager; import mineplex.core.common.CurrencyType; import mineplex.core.common.util.C; -import mineplex.core.common.util.F; import mineplex.core.cosmetic.CosmeticManager; import mineplex.core.cosmetic.event.ActivateGemBoosterEvent; import mineplex.core.cosmetic.ui.CosmeticShop; +import mineplex.core.cosmetic.ui.button.OpenCostumes; import mineplex.core.cosmetic.ui.button.OpenGadgets; import mineplex.core.cosmetic.ui.button.OpenMorphs; import mineplex.core.cosmetic.ui.button.OpenMounts; +import mineplex.core.cosmetic.ui.button.OpenMusic; import mineplex.core.cosmetic.ui.button.OpenParticles; import mineplex.core.cosmetic.ui.button.OpenPets; -import mineplex.core.cosmetic.ui.button.TreasureButton; import mineplex.core.donation.DonationManager; import mineplex.core.gadget.types.Gadget; import mineplex.core.gadget.types.GadgetType; @@ -42,7 +41,7 @@ public class Menu extends ShopPageBase @Override protected void BuildPage() { - AddItem(11, new ShopItem(175, DonationManager.Get(Player.getName()).getCoins() + " Coins", 1, false)); + AddItem(11 - 9, new ShopItem(175, DonationManager.Get(Player.getName()).getCoins() + " Coins", 1, false)); int treasureChestCount = Plugin.getInventoryManager().Get(Player).getItemCount("Treasure Chest"); @@ -58,13 +57,13 @@ public class Menu extends ShopPageBase // } // else // { - AddItem(13, new ShopItem(Material.CHEST, ChatColor.RESET + C.cGold + treasureChestCount + " Treasure Chests" + ChatColor.RESET, new String[] { ChatColor.RESET + "Coming soon..." }, 1, false)); + AddItem(13 - 9, new ShopItem(Material.CHEST, ChatColor.RESET + C.cGold + treasureChestCount + " Treasure Chests" + ChatColor.RESET, new String[] { ChatColor.RESET + "Coming soon..." }, 1, false)); //} final GemBooster gemBoosterItem = new GemBooster(Shop.getBoosterEnabled(), Plugin.getInventoryManager().Get(Player).getItemCount("Gem Booster")); - AddButton(15, new ShopItem( + AddButton(15 - 9, new ShopItem( gemBoosterItem.GetDisplayMaterial(), gemBoosterItem.GetDisplayName(), gemBoosterItem.GetDescription(), @@ -111,17 +110,20 @@ public class Menu extends ShopPageBase false)); } - AddButton(27, new ShopItem(Material.NETHER_STAR, "Particle Effects", 1, false), new OpenParticles(this)); - AddButton(29, new ShopItem(Material.BOW, "Gadgets", 1, false), new OpenGadgets(this)); - AddButton(31, new ShopItem(Material.LEATHER, "Morphs", 1, false), new OpenMorphs(this)); - AddButton(33, new ShopItem(Material.IRON_BARDING, "Mounts", 1, false), new OpenMounts(this)); - AddButton(35, new ShopItem(Material.BONE, "Pets", 1, false), new OpenPets(this)); + AddButton(18, new ShopItem(Material.NETHER_STAR, "Particle Effects", 1, false), new OpenParticles(this)); + AddButton(20, new ShopItem(Material.BOW, "Gadgets", 1, false), new OpenGadgets(this)); + AddButton(22, new ShopItem(Material.LEATHER, "Morphs", 1, false), new OpenMorphs(this)); + AddButton(24, new ShopItem(Material.IRON_BARDING, "Mounts", 1, false), new OpenMounts(this)); + AddButton(26, new ShopItem(Material.BONE, "Pets", 1, false), new OpenPets(this)); + // + AddButton(48, new ShopItem(Material.GOLD_CHESTPLATE, "Costumes", 1, false), new OpenCostumes(this)); + AddButton(50, new ShopItem(Material.GREEN_RECORD, "Music", 1, false), new OpenMusic(this)); if (Plugin.getGadgetManager().getActive(Player, GadgetType.Particle) != null) { final Gadget gadget = Plugin.getGadgetManager().getActive(Player, GadgetType.Particle); - AddButton(36, + AddButton(18 + 9, new ShopItem(gadget.GetDisplayMaterial(), gadget.GetDisplayData(), ChatColor.RESET + C.mItem + gadget.GetName(), new String[] {}, 1, false, false), new SingleButton() { @@ -139,7 +141,7 @@ public class Menu extends ShopPageBase { final Gadget gadget = Plugin.getGadgetManager().getActive(Player, GadgetType.Item); - AddButton(38, + AddButton(20 + 9, new ShopItem(gadget.GetDisplayMaterial(), gadget.GetDisplayData(), ChatColor.RESET + C.mItem + gadget.GetName(), new String[] {}, 1, false, false), new SingleButton() { @@ -157,7 +159,7 @@ public class Menu extends ShopPageBase { final Gadget gadget = Plugin.getGadgetManager().getActive(Player, GadgetType.Morph); - AddButton(40, + AddButton(22 + 9, new ShopItem(gadget.GetDisplayMaterial(), gadget.GetDisplayData(), ChatColor.RESET + C.mItem + gadget.GetName(), new String[] {}, 1, false, false), new SingleButton() { @@ -175,7 +177,7 @@ public class Menu extends ShopPageBase { final Mount mount = Plugin.getMountManager().getActive(Player); - AddButton(42, + AddButton(24 + 9, new ShopItem(mount.GetDisplayMaterial(), mount.GetDisplayData(), ChatColor.RESET + C.mItem + mount.GetName(), new String[] {}, 1, false, false), new SingleButton() { @@ -191,7 +193,7 @@ public class Menu extends ShopPageBase if (Plugin.getPetManager().hasActivePet(Player.getName())) { - AddButton(44, new ShopItem(Material.MONSTER_EGG, (byte)Plugin.getPetManager().getActivePet(Player.getName()).getType().getTypeId(), ChatColor.RESET + C.mItem + Plugin.getPetManager().getActivePet(Player.getName()).getCustomName(), new String[] {}, 1, false, false), + AddButton(26 + 9, new ShopItem(Material.MONSTER_EGG, (byte)Plugin.getPetManager().getActivePet(Player.getName()).getType().getTypeId(), ChatColor.RESET + C.mItem + Plugin.getPetManager().getActivePet(Player.getName()).getCustomName(), new String[] {}, 1, false, false), new SingleButton() { @Override @@ -246,4 +248,14 @@ public class Menu extends ShopPageBase { Shop.OpenPageForPlayer(player, new PetPage(Plugin, Shop, ClientManager, DonationManager, "Pets", player)); } + + public void openCostumes(Player player) + { + Shop.OpenPageForPlayer(player, new CostumePage(Plugin, Shop, ClientManager, DonationManager, "Costumes", player)); + } + + public void openMusic(Player player) + { + Shop.OpenPageForPlayer(player, new MusicPage(Plugin, Shop, ClientManager, DonationManager, "Music", player)); + } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java new file mode 100644 index 000000000..64377c8f7 --- /dev/null +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/MusicPage.java @@ -0,0 +1,56 @@ +package mineplex.core.cosmetic.ui.page; + +import org.bukkit.Material; +import org.bukkit.entity.Player; + +import mineplex.core.account.CoreClientManager; +import mineplex.core.common.util.C; +import mineplex.core.cosmetic.CosmeticManager; +import mineplex.core.cosmetic.ui.CosmeticShop; +import mineplex.core.donation.DonationManager; +import mineplex.core.gadget.types.Gadget; +import mineplex.core.gadget.types.GadgetType; +import mineplex.core.shop.item.ShopItem; +import mineplex.core.shop.item.SingleButton; + +/** + * Created by shaun on 14-09-15. + */ +public class MusicPage extends GadgetPage +{ + public MusicPage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager, String name, Player player) + { + super(plugin, shop, clientManager, donationManager, name, player); + } + + protected void BuildPage() + { + int slot = 19; + + for (Gadget gadget : Plugin.getGadgetManager().getGadgets(GadgetType.MusicDisc)) + { + addGadget(gadget, slot); + + slot++; + + if (slot == 26) + slot = 28; + } + + AddButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[] { }, 1, false), new SingleButton() + { + @Override + public void Clicked(Player player) + { + Shop.OpenPageForPlayer(Player, new Menu(Plugin, Shop, ClientManager, DonationManager, player)); + } + }); + } + + @Override + public void activateGadget(Player player, Gadget gadget) + { + super.activateGadget(player, gadget); + player.closeInventory(); + } +} diff --git a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java index 32bac07fd..c11392343 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/gadget/GadgetManager.java @@ -5,7 +5,6 @@ import java.util.List; import org.bukkit.Bukkit; import org.bukkit.Material; -import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.entity.PlayerDeathEvent; @@ -26,13 +25,13 @@ import mineplex.core.disguise.DisguiseManager; import mineplex.core.donation.DonationManager; import mineplex.core.gadget.event.GadgetCollideEntityEvent; import mineplex.core.gadget.gadgets.*; -import mineplex.core.gadget.types.OutfitGadget.ArmorSlot; import mineplex.core.gadget.types.Gadget; import mineplex.core.gadget.types.GadgetType; import mineplex.core.gadget.types.ItemGadget; import mineplex.core.gadget.types.MorphGadget; -import mineplex.core.gadget.types.OutfitGadget; import mineplex.core.gadget.types.MusicGadget; +import mineplex.core.gadget.types.OutfitGadget; +import mineplex.core.gadget.types.OutfitGadget.ArmorSlot; import mineplex.core.gadget.types.ParticleGadget; import mineplex.core.inventory.InventoryManager; import mineplex.core.mount.MountManager; @@ -178,7 +177,7 @@ public class GadgetManager extends MiniPlugin { for (Gadget gadget : _gadgets.get(gadgetType)) { - if (gadget instanceof MorphGadget) + if (gadget instanceof OutfitGadget) { OutfitGadget armor = (OutfitGadget) gadget; From 0139e4095799533b76fc49566d2104cb40be94aa Mon Sep 17 00:00:00 2001 From: Shaun Bennett Date: Wed, 17 Sep 2014 14:35:43 -0500 Subject: [PATCH 2/6] Re-enable Coin Party Bomb reward for rare treasures --- .../src/mineplex/core/treasure/TreasureManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureManager.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureManager.java index 1f4e16978..4e65e156c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/TreasureManager.java @@ -120,8 +120,8 @@ public class TreasureManager extends MiniPlugin // new ItemStack(Material.IRON_BARDING), RewardRarity.RARE, 100)); // _rewardManager.addReward(new InventoryReward(inventoryManager, "TNT", "TNT", 40, 80, // new ItemStack(Material.TNT), RewardRarity.RARE, 100)); -// _rewardManager.addReward(new InventoryReward(inventoryManager, "Coin Party Bomb", "Coin Party Bomb", 1, 1, -// new ItemStack(Material.getMaterial(175)), RewardRarity.RARE, 100)); + _rewardManager.addReward(new InventoryReward(inventoryManager, "Coin Party Bomb", "Coin Party Bomb", 1, 1, + new ItemStack(Material.getMaterial(175)), RewardRarity.RARE, 100)); } // Pets { From 90e402bf695622593379eca7c3c4d0e50e0466c0 Mon Sep 17 00:00:00 2001 From: Shaun Bennett Date: Wed, 17 Sep 2014 14:43:58 -0500 Subject: [PATCH 3/6] Fix menu slots --- .../cosmetic/ui/button/TreasureButton.java | 5 +--- .../mineplex/core/cosmetic/ui/page/Menu.java | 28 ++++++++----------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/TreasureButton.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/TreasureButton.java index 19c8101e3..5e52cd8ab 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/TreasureButton.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/button/TreasureButton.java @@ -3,12 +3,10 @@ package mineplex.core.cosmetic.ui.button; import org.bukkit.entity.Player; import mineplex.core.cosmetic.ui.page.Menu; -import mineplex.core.shop.item.IButton; import mineplex.core.shop.item.SingleButton; public class TreasureButton extends SingleButton { - private Menu _menu; public TreasureButton(Menu menu) @@ -16,11 +14,10 @@ public class TreasureButton extends SingleButton _menu = menu; } - @Override public void Clicked(Player player) { - _menu.openTreasure(player); + } } diff --git a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java index c6fbc0c90..e1a75935d 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/cosmetic/ui/page/Menu.java @@ -18,6 +18,7 @@ import mineplex.core.cosmetic.ui.button.OpenMounts; import mineplex.core.cosmetic.ui.button.OpenMusic; import mineplex.core.cosmetic.ui.button.OpenParticles; import mineplex.core.cosmetic.ui.button.OpenPets; +import mineplex.core.cosmetic.ui.button.TreasureButton; import mineplex.core.donation.DonationManager; import mineplex.core.gadget.types.Gadget; import mineplex.core.gadget.types.GadgetType; @@ -41,29 +42,29 @@ public class Menu extends ShopPageBase @Override protected void BuildPage() { - AddItem(11 - 9, new ShopItem(175, DonationManager.Get(Player.getName()).getCoins() + " Coins", 1, false)); + AddItem(2, new ShopItem(175, DonationManager.Get(Player.getName()).getCoins() + " Coins", 1, false)); int treasureChestCount = Plugin.getInventoryManager().Get(Player).getItemCount("Treasure Chest"); - if (treasureChestCount <= 0 && Player.getName().equals("Chiss")) + if (treasureChestCount <= 0 && Player.getName().equals("Phinary")) { Plugin.getInventoryManager().addItemToInventory(Player, "Utility", "Treasure Chest", 1); treasureChestCount = Plugin.getInventoryManager().Get(Player).getItemCount("Treasure Chest"); } -// if (treasureChestCount > 0) -// { -// AddButton(13, new ShopItem(Material.CHEST, C.cGold + treasureChestCount + " Treasure Chests", new String[] { ChatColor.RESET + "Click to Open Treasure Chest" }, 1, false), new TreasureButton(this)); -// } -// else -// { - AddItem(13 - 9, new ShopItem(Material.CHEST, ChatColor.RESET + C.cGold + treasureChestCount + " Treasure Chests" + ChatColor.RESET, new String[] { ChatColor.RESET + "Coming soon..." }, 1, false)); - //} + if (treasureChestCount > 0) + { + AddButton(4, new ShopItem(Material.CHEST, C.cGold + treasureChestCount + " Treasure Chests", new String[] { ChatColor.RESET + "Click to Open Treasure Chest" }, 1, false), new TreasureButton(this)); + } + else + { + AddItem(4, new ShopItem(Material.CHEST, ChatColor.RESET + C.cGold + treasureChestCount + " Treasure Chests" + ChatColor.RESET, new String[] { ChatColor.RESET + "Coming soon..." }, 1, false)); + } final GemBooster gemBoosterItem = new GemBooster(Shop.getBoosterEnabled(), Plugin.getInventoryManager().Get(Player).getItemCount("Gem Booster")); - AddButton(15 - 9, new ShopItem( + AddButton(6, new ShopItem( gemBoosterItem.GetDisplayMaterial(), gemBoosterItem.GetDisplayName(), gemBoosterItem.GetDescription(), @@ -224,11 +225,6 @@ public class Menu extends ShopPageBase Shop.OpenPageForPlayer(player, new ParticlePage(Plugin, Shop, ClientManager, DonationManager, "Particles", player)); } - public void openTreasure(Player player) - { - Shop.OpenPageForPlayer(player, new TreasurePage(Plugin, Shop, ClientManager, DonationManager, "Open Treasure Chest", player)); - } - public void openGadgets(Player player) { Shop.OpenPageForPlayer(player, new GadgetPage(Plugin, Shop, ClientManager, DonationManager, "Gadgets", player)); From da680359d0253081ddb0d9a460cacd35db847778 Mon Sep 17 00:00:00 2001 From: Shaun Bennett Date: Wed, 17 Sep 2014 14:50:34 -0500 Subject: [PATCH 4/6] Change formatting of treasure announcements --- .../Mineplex.Core/src/mineplex/core/treasure/Treasure.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java index e6ca1372a..430a97ba5 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java @@ -16,6 +16,7 @@ import org.bukkit.craftbukkit.v1_7_R4.util.CraftMagicNumbers; import org.bukkit.entity.Player; import net.minecraft.server.v1_7_R4.PacketPlayOutBlockAction; +import mineplex.core.common.util.C; import mineplex.core.common.util.F; import mineplex.core.common.util.UtilParticle; import mineplex.core.treasure.animation.Animation; @@ -264,12 +265,12 @@ public class Treasure else if (data.getReward().getRarity() == RewardRarity.RARE) { _animations.add(new CircleAnimation(this, data.getBlock().getLocation().add(0.5, 1.5, 0.5))); - Bukkit.broadcastMessage(F.main("Treasure", F.name(_player.getName()) + " opened the Rare treasure " + text)); + Bukkit.broadcastMessage(F.main("Treasure", F.name(_player.getName()) + " opened the " + F.item(C.cGold + "Rare") + " treasure " + text)); } else if (data.getReward().getRarity() == RewardRarity.VERY_RARE) { _animations.add(new ChestExplodeAnimation(this, data.getBlock())); - Bukkit.broadcastMessage(F.main("Treasure", F.name(_player.getName()) + " opened the Legendary treasure " + text)); + Bukkit.broadcastMessage(F.main("Treasure", F.name(_player.getName()) + " opened the " + F.item(C.cRed + "Legendary") + " treasure " + text)); } if (isFinished()) From 33d33f84b4ad4522785e1715052676c7397a0c19 Mon Sep 17 00:00:00 2001 From: Shaun Bennett Date: Wed, 17 Sep 2014 15:22:54 -0500 Subject: [PATCH 5/6] More treasure animation touches + fixes --- .../src/mineplex/core/treasure/Treasure.java | 8 +++--- .../treasure/animation/CircleAnimation.java | 27 +++++++++++++------ .../animation/FireworksAnimation.java | 19 +++++-------- 3 files changed, 29 insertions(+), 25 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java index 430a97ba5..5de0deded 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/Treasure.java @@ -34,7 +34,6 @@ import mineplex.core.treasure.reward.RewardRarity; */ public class Treasure { - // Decay Sets private HashSet _wallsBlockInfo = new HashSet<>(); private HashSet _outerRingBlockInfo = new HashSet<>(); @@ -265,12 +264,12 @@ public class Treasure else if (data.getReward().getRarity() == RewardRarity.RARE) { _animations.add(new CircleAnimation(this, data.getBlock().getLocation().add(0.5, 1.5, 0.5))); - Bukkit.broadcastMessage(F.main("Treasure", F.name(_player.getName()) + " opened the " + F.item(C.cGold + "Rare") + " treasure " + text)); + Bukkit.broadcastMessage(F.main("Treasure", F.name(_player.getName()) + " found " + C.cGold + "Rare " + text)); } else if (data.getReward().getRarity() == RewardRarity.VERY_RARE) { _animations.add(new ChestExplodeAnimation(this, data.getBlock())); - Bukkit.broadcastMessage(F.main("Treasure", F.name(_player.getName()) + " opened the " + F.item(C.cRed + "Legendary") + " treasure " + text)); + Bukkit.broadcastMessage(F.main("Treasure", F.name(_player.getName()) + " found " + C.cRed + "Legendary " + text)); } if (isFinished()) @@ -294,7 +293,6 @@ public class Treasure for (Player player : players) { ((CraftPlayer) player).getHandle().playerConnection.sendPacket(packet); - System.out.println("sending chest open packet"); } } @@ -366,7 +364,7 @@ public class Treasure if (block.getType().equals(Material.CHEST)) { - UtilParticle.PlayParticle(UtilParticle.ParticleType.EXPLODE, block.getLocation().add(0.5, 0.5, 0.5), 0F, 0F, 0F, 0F, 1); + UtilParticle.PlayParticle(UtilParticle.ParticleType.LARGE_SMOKE, block.getLocation().add(0.5, 0.5, 0.5), 0.5F, 0.5F, 0.5F, 0.1F, 10); // block.getLocation().getWorld().createExplosion(block.getLocation().add(0.5, 0.5, 0.5), 0F); } block.getLocation().getWorld().playEffect(block.getLocation(), Effect.STEP_SOUND, block.getTypeId()); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/CircleAnimation.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/CircleAnimation.java index cb884dc1a..557b513cc 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/CircleAnimation.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/CircleAnimation.java @@ -4,7 +4,6 @@ import org.bukkit.Color; import org.bukkit.FireworkEffect; import org.bukkit.Location; import org.bukkit.Sound; -import org.bukkit.block.Block; import mineplex.core.common.util.UtilFirework; import mineplex.core.common.util.UtilParticle; @@ -41,15 +40,27 @@ public class CircleAnimation extends Animation finish(); } - double currentRotation = getTicks() / 20D; - double radius = currentRotation; - double yDiff = currentRotation; - double xDiff = Math.sin(currentRotation * 2 * Math.PI) * radius; - double zDiff = Math.cos(currentRotation * 2 * Math.PI) * radius; + { + double currentRotation = getTicks() / 20D; + double radius = currentRotation; + double yDiff = currentRotation; + double xDiff = Math.sin(currentRotation * 2 * Math.PI) * radius; + double zDiff = Math.cos(currentRotation * 2 * Math.PI) * radius; - Location location = _centerLocation.clone().add(xDiff, yDiff, zDiff); + Location location = _centerLocation.clone().add(xDiff, yDiff, zDiff); - UtilParticle.PlayParticle(UtilParticle.ParticleType.FLAME, location, 0, 0, 0, 0, 1); + UtilParticle.PlayParticle(UtilParticle.ParticleType.FLAME, location, 0, 0, 0, 0, 1); + } + + double radius = getTicks() / 20D; + for (int i = 0; i < 20; i++) + { + double xDiff = Math.sin(i/20D * 2 * Math.PI) * radius; + double zDiff = Math.cos(i/20D * 2 * Math.PI) * radius; + + Location location = _centerLocation.clone().add(xDiff, -1.3, zDiff); + UtilParticle.PlayParticle(UtilParticle.ParticleType.FLAME, location, 0, 0, 0, 0, 1); + } } @Override diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/FireworksAnimation.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/FireworksAnimation.java index 8d559e2eb..043788535 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/FireworksAnimation.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/FireworksAnimation.java @@ -2,21 +2,12 @@ package mineplex.core.treasure.animation; import java.util.Random; -import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.FireworkEffect; import org.bukkit.block.Block; -import org.bukkit.craftbukkit.v1_7_R4.entity.CraftFirework; -import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer; -import org.bukkit.entity.Firework; -import org.bukkit.entity.Player; -import net.minecraft.server.v1_7_R4.PacketPlayOutEntityStatus; - -import mineplex.core.common.util.FireworkUtil; import mineplex.core.common.util.UtilFirework; -import mineplex.core.common.util.UtilPlayer; -import mineplex.core.common.util.UtilServer; +import mineplex.core.common.util.UtilParticle; import mineplex.core.treasure.Treasure; /** @@ -41,10 +32,10 @@ public class FireworksAnimation extends Animation @Override protected void tick() { - if (getTicks() >= 1) + if (getTicks() >= 10) finish(); - if (getTicks() % 10 == 0) + if (getTicks() == 10) { double xDif = 0;//_random.nextGaussian() * 1; double zDif = 0;//_random.nextGaussian() * 1; @@ -57,6 +48,10 @@ public class FireworksAnimation extends Animation UtilFirework.playFirework(_block.getLocation().add(0.5, 0.5, 0.5).add(xDif, yDif, zDif), effect); } + else if (getTicks() % 2 == 0) + { + UtilParticle.PlayParticle(UtilParticle.ParticleType.HEART, _block.getLocation().add(0.5, 1.2, 0.5), 0.5F, 0.2F, 0.5F, 0, 1); + } } From 6c4479298d46de7b559b5d40842d75429df148c7 Mon Sep 17 00:00:00 2001 From: Shaun Bennett Date: Thu, 18 Sep 2014 00:41:56 -0500 Subject: [PATCH 6/6] Fix RewardManager bug, fooling around with animations --- .../mineplex/core/reward/RewardManager.java | 20 +++++++++---------- .../animation/LegendaryAnimation.java | 19 ++++++++++++++++-- .../treasure/animation/RareAnimation.java | 7 ++++--- .../treasure/animation/UncommonAnimation.java | 2 +- 4 files changed, 32 insertions(+), 16 deletions(-) diff --git a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java index 0f102433b..469e2b56c 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/reward/RewardManager.java @@ -5,17 +5,17 @@ import java.util.HashMap; import java.util.List; import java.util.Random; +import org.bukkit.Material; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + import mineplex.core.donation.DonationManager; import mineplex.core.inventory.InventoryManager; import mineplex.core.reward.rewards.CoinReward; import mineplex.core.reward.rewards.InventoryReward; import mineplex.core.reward.rewards.UnknownPackageReward; -import org.bukkit.Material; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; - /** * Created by shaun on 2014-09-04. */ @@ -44,9 +44,9 @@ public class RewardManager _doubleGadgetValue = doubleGadgetValue; addCommon(donationManager, inventoryManager, commonValueMin, commonValueMax); - addUncommon(donationManager, inventoryManager, commonValueMin, commonValueMax); - addRare(donationManager, inventoryManager, commonValueMin, commonValueMax); - addLegendary(donationManager, inventoryManager, commonValueMin, commonValueMax); + addUncommon(donationManager, inventoryManager, uncommonValueMin, uncommonValueMax); + addRare(donationManager, inventoryManager, rareValueMin, rareValueMax); + addLegendary(donationManager, inventoryManager, legendValueMin, legendValueMax); } public void addCommon(DonationManager donationManager, InventoryManager inventoryManager, double minValue, double maxValue) @@ -261,12 +261,12 @@ public class RewardManager double rand = _random.nextDouble(); RewardRarity rarity; - if (isChestOpening ? rand <= 0.01 : rand <= 0.0001) + if (isChestOpening ? rand <= 0.91 : rand <= 0.0001) { // 1% or 0.01% rarity = RewardRarity.LEGENDARY; } - else if (isChestOpening ? rand <= 0.05 : rand <= 0.001) + else if (isChestOpening ? rand <= 0.95 : rand <= 0.001) { // 4% or 0.09% rarity = RewardRarity.RARE; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/LegendaryAnimation.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/LegendaryAnimation.java index 77f4e628a..4c3a31c7e 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/LegendaryAnimation.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/LegendaryAnimation.java @@ -9,6 +9,7 @@ import org.bukkit.Sound; import org.bukkit.block.Block; import mineplex.core.common.util.UtilFirework; +import mineplex.core.common.util.UtilParticle; import mineplex.core.treasure.Treasure; /** @@ -38,13 +39,27 @@ public class LegendaryAnimation extends Animation // _chestBlock.getLocation().getWorld().playSound(_chestBlock.getLocation().add(0.5, 0.5, 0.5), Sound.WITHER_SPAWN, 10F, 1.2F); _chestBlock.getLocation().getWorld().playSound(_chestBlock.getLocation().add(0.5, 0.5, 0.5), Sound.ENDERDRAGON_DEATH, 10F, 2.0F); } - if (getTicks() == 10) + if (getTicks() == 20) { FireworkEffect effect = FireworkEffect.builder().with(FireworkEffect.Type.BALL_LARGE).withColor(Color.RED).withFade(Color.BLACK).build(); UtilFirework.playFirework(_chestBlock.getLocation().add(0.5, 0.5, 0.5), effect); // ((CraftWorld) _chestBlock.getWorld()).getHandle().triggerEffect(1005, _chestBlock.getX(), _chestBlock.getY(), _chestBlock.getZ(), 2257); } - else if (getTicks() < 10) + else if (getTicks() < 15) + { + double radius = 2 - (getTicks() / 10D * 2); + int particleAmount = 20 - (getTicks() * 2); + Location _centerLocation = _chestBlock.getLocation().add(0.5, 0.1, 0.5); + for (int i = 0; i < particleAmount; i++) + { + double xDiff = Math.sin(i/(double)particleAmount * 2 * Math.PI) * radius; + double zDiff = Math.cos(i/(double)particleAmount * 2 * Math.PI) * radius; + + Location location = _centerLocation.clone().add(xDiff, 0, zDiff); + UtilParticle.PlayParticle(UtilParticle.ParticleType.CLOUD, location, 0, 0, 0, 0, 1); + } + } + else if (getTicks() < 20) { double xDif = _random.nextGaussian() * 0.5; double zDif = _random.nextGaussian() * 0.5; diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/RareAnimation.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/RareAnimation.java index f5c778dd5..c43ced09a 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/RareAnimation.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/RareAnimation.java @@ -53,10 +53,11 @@ public class RareAnimation extends Animation } double radius = getTicks() / 20D; - for (int i = 0; i < 20; i++) + int particleAmount = getTicks() / 2; + for (int i = 0; i < particleAmount; i++) { - double xDiff = Math.sin(i/20D * 2 * Math.PI) * radius; - double zDiff = Math.cos(i/20D * 2 * Math.PI) * radius; + double xDiff = Math.sin(i/(double)particleAmount * 2 * Math.PI) * radius; + double zDiff = Math.cos(i/(double)particleAmount * 2 * Math.PI) * radius; Location location = _centerLocation.clone().add(xDiff, -1.3, zDiff); UtilParticle.PlayParticle(UtilParticle.ParticleType.FLAME, location, 0, 0, 0, 0, 1); diff --git a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/UncommonAnimation.java b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/UncommonAnimation.java index 86a5ca6f1..0fbcb55b7 100644 --- a/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/UncommonAnimation.java +++ b/Plugins/Mineplex.Core/src/mineplex/core/treasure/animation/UncommonAnimation.java @@ -41,7 +41,7 @@ public class UncommonAnimation extends Animation double zDif = 0;//_random.nextGaussian() * 1; double yDif = 2;//(_random.nextInt(3) * _random.nextDouble()) + 2; - FireworkEffect effect = FireworkEffect.builder().withColor(Color.fromRGB(_random.nextInt(255), _random.nextInt(255), _random.nextInt(255))) + FireworkEffect effect = FireworkEffect.builder().withColor(Color.RED) .withFade(Color.fromRGB(_random.nextInt(255), _random.nextInt(255), _random.nextInt(255))) .with(FireworkEffect.Type.STAR) .build();