Cosmetic Update
New: + New GUI System + Candy Cane Particle + Candy Cane Double Jump + Candy Cane Death Effect + Candy Cane Arrow Trail + Snowman Morph + Baby Reindeer Mount + Pet Coal Apparition Fixed/Updated: * Added getTick to UpdateEvent and UtilTime * Added more methods to UtilParticle * Gadget manager isMoving now counts flying as moving * Updated some cosmetics
This commit is contained in:
parent
49c735e43c
commit
c36182b8d4
@ -283,4 +283,17 @@ public class UtilParticle
|
||||
UtilPlayer.sendPacket(player, packet);
|
||||
}
|
||||
}
|
||||
|
||||
public static void PlayParticleToAll(String particle, Location location, Vector offset, float speed, int count, ViewDist dist)
|
||||
{
|
||||
PlayParticle(particle, location, (float) offset.getX(), (float) offset.getY(), (float) offset.getZ(), speed, count, dist, UtilServer.getPlayers());
|
||||
}
|
||||
|
||||
public static void PlayParticleToAll(String particle, Location location, float offsetX, float offsetY, float offsetZ,
|
||||
float speed, int count, ViewDist dist)
|
||||
{
|
||||
PlayParticle(particle, location, offsetX, offsetY, offsetZ, speed, count, dist, UtilServer.getPlayers());
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -3,6 +3,8 @@ package mineplex.core.common.util;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
|
||||
import net.minecraft.server.v1_8_R3.MinecraftServer;
|
||||
|
||||
public class UtilTime
|
||||
{
|
||||
public static final String DATE_FORMAT_NOW = "MM-dd-yyyy HH:mm:ss";
|
||||
@ -42,6 +44,15 @@ public class UtilTime
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return Returns the current global server tick. Is reset on server restart. Starts out negative. Counts upwards.
|
||||
*/
|
||||
public static int getServerTick()
|
||||
{
|
||||
return MinecraftServer.currentTick;
|
||||
}
|
||||
|
||||
public enum TimeUnit
|
||||
{
|
||||
FIT(1),
|
||||
|
@ -0,0 +1,23 @@
|
||||
package mineplex.core.cosmetic.ui.button;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
|
||||
import mineplex.core.cosmetic.ui.page.ArrowTrailPage;
|
||||
import mineplex.core.cosmetic.ui.page.Menu;
|
||||
import mineplex.core.shop.item.IButton;
|
||||
|
||||
public class OpenArrowTrails implements IButton
|
||||
{
|
||||
private Menu _page;
|
||||
|
||||
public OpenArrowTrails(Menu page)
|
||||
{
|
||||
_page = page;
|
||||
}
|
||||
|
||||
public void onClick(Player player, ClickType clickType)
|
||||
{
|
||||
_page.getShop().openPageForPlayer(player, new ArrowTrailPage(_page.getPlugin(), _page.getShop(), _page.getClientManager(), _page.getDonationManager(), "Arrow Trails", player));
|
||||
}
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package mineplex.core.cosmetic.ui.button;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
|
||||
import mineplex.core.cosmetic.ui.page.DeathEffectPage;
|
||||
import mineplex.core.cosmetic.ui.page.Menu;
|
||||
import mineplex.core.shop.item.IButton;
|
||||
|
||||
public class OpenDeathAnimations implements IButton
|
||||
{
|
||||
private Menu _page;
|
||||
|
||||
public OpenDeathAnimations(Menu page)
|
||||
{
|
||||
_page = page;
|
||||
}
|
||||
|
||||
public void onClick(Player player, ClickType clickType)
|
||||
{
|
||||
_page.getShop().openPageForPlayer(player, new DeathEffectPage(_page.getPlugin(), _page.getShop(), _page.getClientManager(), _page.getDonationManager(), "Death Animations", player));
|
||||
}
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package mineplex.core.cosmetic.ui.button;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
|
||||
import mineplex.core.cosmetic.ui.page.DoubleJumpPage;
|
||||
import mineplex.core.cosmetic.ui.page.Menu;
|
||||
import mineplex.core.shop.item.IButton;
|
||||
|
||||
public class OpenDoubleJump implements IButton
|
||||
{
|
||||
private Menu _page;
|
||||
|
||||
public OpenDoubleJump(Menu page)
|
||||
{
|
||||
_page = page;
|
||||
}
|
||||
|
||||
public void onClick(Player player, ClickType clickType)
|
||||
{
|
||||
_page.getShop().openPageForPlayer(player, new DoubleJumpPage(_page.getPlugin(), _page.getShop(), _page.getClientManager(), _page.getDonationManager(), "Double Jump Effects", player));
|
||||
}
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
package mineplex.core.cosmetic.ui.button;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
|
||||
import mineplex.core.cosmetic.ui.page.HatPage;
|
||||
import mineplex.core.cosmetic.ui.page.Menu;
|
||||
import mineplex.core.shop.item.IButton;
|
||||
|
||||
public class OpenHats implements IButton
|
||||
{
|
||||
private Menu _page;
|
||||
|
||||
public OpenHats(Menu page)
|
||||
{
|
||||
_page = page;
|
||||
}
|
||||
|
||||
public void onClick(Player player, ClickType clickType)
|
||||
{
|
||||
_page.getShop().openPageForPlayer(player, new HatPage(_page.getPlugin(), _page.getShop(), _page.getClientManager(), _page.getDonationManager(), "Hats", player));
|
||||
}
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package mineplex.core.cosmetic.ui.page;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
|
||||
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.IButton;
|
||||
import mineplex.core.shop.item.ShopItem;
|
||||
|
||||
public class ArrowTrailPage extends GadgetPage
|
||||
{
|
||||
|
||||
public ArrowTrailPage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager, String name,
|
||||
Player player)
|
||||
{
|
||||
super(plugin, shop, clientManager, donationManager, name, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void buildPage()
|
||||
{
|
||||
int slot = 19;
|
||||
|
||||
for (Gadget gadget : getPlugin().getGadgetManager().getGadgets(GadgetType.ArrowTrail))
|
||||
{
|
||||
addGadget(gadget, slot);
|
||||
|
||||
if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.Morph) == gadget)
|
||||
addGlow(slot);
|
||||
|
||||
slot++;
|
||||
|
||||
if (slot == 26)
|
||||
slot = 28;
|
||||
}
|
||||
|
||||
addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton()
|
||||
{
|
||||
public void onClick(Player player, ClickType clickType)
|
||||
{
|
||||
getShop().openPageForPlayer(getPlayer(), new Menu(getPlugin(), getShop(), getClientManager(), getDonationManager(), player));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package mineplex.core.cosmetic.ui.page;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
|
||||
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.IButton;
|
||||
import mineplex.core.shop.item.ShopItem;
|
||||
|
||||
public class DeathEffectPage extends GadgetPage
|
||||
{
|
||||
|
||||
public DeathEffectPage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager,
|
||||
String name, Player player)
|
||||
{
|
||||
super(plugin, shop, clientManager, donationManager, name, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void buildPage()
|
||||
{
|
||||
int slot = 19;
|
||||
|
||||
for (Gadget gadget : getPlugin().getGadgetManager().getGadgets(GadgetType.Death))
|
||||
{
|
||||
addGadget(gadget, slot);
|
||||
|
||||
if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.Morph) == gadget)
|
||||
addGlow(slot);
|
||||
|
||||
slot++;
|
||||
|
||||
if (slot == 26)
|
||||
slot = 28;
|
||||
}
|
||||
|
||||
addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton()
|
||||
{
|
||||
public void onClick(Player player, ClickType clickType)
|
||||
{
|
||||
getShop().openPageForPlayer(getPlayer(), new Menu(getPlugin(), getShop(), getClientManager(), getDonationManager(), player));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package mineplex.core.cosmetic.ui.page;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
|
||||
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.IButton;
|
||||
import mineplex.core.shop.item.ShopItem;
|
||||
|
||||
public class DoubleJumpPage extends GadgetPage
|
||||
{
|
||||
|
||||
public DoubleJumpPage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager, String name,
|
||||
Player player)
|
||||
{
|
||||
super(plugin, shop, clientManager, donationManager, name, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void buildPage()
|
||||
{
|
||||
int slot = 19;
|
||||
|
||||
for (Gadget gadget : getPlugin().getGadgetManager().getGadgets(GadgetType.DoubleJump))
|
||||
{
|
||||
addGadget(gadget, slot);
|
||||
|
||||
if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.Morph) == gadget)
|
||||
addGlow(slot);
|
||||
|
||||
slot++;
|
||||
|
||||
if (slot == 26)
|
||||
slot = 28;
|
||||
}
|
||||
|
||||
addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton()
|
||||
{
|
||||
public void onClick(Player player, ClickType clickType)
|
||||
{
|
||||
getShop().openPageForPlayer(getPlayer(), new Menu(getPlugin(), getShop(), getClientManager(), getDonationManager(), player));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package mineplex.core.cosmetic.ui.page;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
|
||||
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.IButton;
|
||||
import mineplex.core.shop.item.ShopItem;
|
||||
|
||||
public class HatPage extends GadgetPage
|
||||
{
|
||||
|
||||
|
||||
public HatPage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager, String name,
|
||||
Player player)
|
||||
{
|
||||
super(plugin, shop, clientManager, donationManager, name, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void buildPage()
|
||||
{
|
||||
int slot = 19;
|
||||
|
||||
List<Gadget> list = getPlugin().getGadgetManager().getGadgets(GadgetType.Hat);
|
||||
if(list != null)
|
||||
for (Gadget gadget : list)
|
||||
{
|
||||
addGadget(gadget, slot);
|
||||
|
||||
if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.Morph) == gadget)
|
||||
addGlow(slot);
|
||||
|
||||
slot++;
|
||||
|
||||
if (slot == 26)
|
||||
slot = 28;
|
||||
}
|
||||
|
||||
addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton()
|
||||
{
|
||||
public void onClick(Player player, ClickType clickType)
|
||||
{
|
||||
getShop().openPageForPlayer(getPlayer(), new Menu(getPlugin(), getShop(), getClientManager(), getDonationManager(), player));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@ -6,15 +6,19 @@ import org.bukkit.entity.Creature;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
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.ui.CosmeticShop;
|
||||
import mineplex.core.cosmetic.ui.button.OpenArrowTrails;
|
||||
import mineplex.core.cosmetic.ui.button.OpenCostumes;
|
||||
import mineplex.core.cosmetic.ui.button.OpenDeathAnimations;
|
||||
import mineplex.core.cosmetic.ui.button.OpenDoubleJump;
|
||||
import mineplex.core.cosmetic.ui.button.OpenGadgets;
|
||||
import mineplex.core.cosmetic.ui.button.OpenHats;
|
||||
import mineplex.core.cosmetic.ui.button.OpenMorphs;
|
||||
import mineplex.core.cosmetic.ui.button.OpenMounts;
|
||||
import mineplex.core.cosmetic.ui.button.OpenMusic;
|
||||
@ -66,67 +70,80 @@ public class Menu extends ShopPageBase<CosmeticManager, CosmeticShop>
|
||||
ChatColor.RESET + "Receives 30000 Coins per Month"
|
||||
}, 1, false));
|
||||
|
||||
// addItem(6, new ShopItem(Material.GOLD_INGOT, donor.getGold() + " Gold", new String[] {
|
||||
// " "
|
||||
// }, 1, false));
|
||||
addButton(10, new ShopItem(Material.NETHER_STAR, "Particle Effects", 1, false), new OpenParticles(this));
|
||||
addButton(12, new ShopItem(Material.ARROW, "Arrow Trails", 1, false), new OpenArrowTrails(this));
|
||||
addButton(14, new ShopItem(Material.GOLD_BOOTS, "Double Jump Effects", 1, false), new OpenDoubleJump(this));
|
||||
addButton(16, new ShopItem(Material.SKULL_ITEM, "Death Animations", 1, false), new OpenDeathAnimations(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(28, new ShopItem(Material.MELON_BLOCK, "Gadgets", 1, false), new OpenGadgets(this));
|
||||
addButton(30, new ShopItem(Material.LEATHER, "Morphs", 1, false), new OpenMorphs(this));
|
||||
addButton(32, new ShopItem(Material.IRON_BARDING, "Mounts", 1, false), new OpenMounts(this));
|
||||
addButton(34, new ShopItem(Material.BONE, "Pets", 1, false), new OpenPets(this));
|
||||
|
||||
addButton(46, new ShopItem(Material.GOLD_HELMET, "Hats", 1, false), new OpenHats(this));
|
||||
addButton(48, new ShopItem(Material.DIAMOND_CHESTPLATE, "Costumes", 1, false), new OpenCostumes(this));
|
||||
addButton(50, new ShopItem(Material.GREEN_RECORD, "Music", 1, false), new OpenMusic(this));
|
||||
|
||||
if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.Particle) != null)
|
||||
{
|
||||
final Gadget gadget = getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.Particle);
|
||||
|
||||
addButton(18 + 9,
|
||||
new ShopItem(gadget.GetDisplayMaterial(), gadget.GetDisplayData(), ChatColor.RESET + C.mItem + gadget.GetName(), new String[]{}, 1, false, false),
|
||||
new IButton()
|
||||
addButton(52, new ShopItem(Material.NAME_TAG, "Taunts", 1, false), new IButton()
|
||||
{
|
||||
@Override
|
||||
public void onClick(Player player, ClickType clickType)
|
||||
{
|
||||
playAcceptSound(player);
|
||||
gadget.Disable(player);
|
||||
refresh();
|
||||
player.sendMessage(F.main("Shop", "Comming soon!"));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.Item) != null)
|
||||
for(GadgetType type : GadgetType.values())
|
||||
{
|
||||
final Gadget gadget = getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.Item);
|
||||
final Gadget gadget = getPlugin().getGadgetManager().getActive(getPlayer(), type);
|
||||
if(gadget == null) continue;
|
||||
|
||||
addButton(20 + 9,
|
||||
new ShopItem(gadget.GetDisplayMaterial(), gadget.GetDisplayData(), ChatColor.RESET + C.mItem + gadget.GetName(), new String[]{}, 1, false, false),
|
||||
int slot = 10;
|
||||
switch (type)
|
||||
{
|
||||
case Particle:
|
||||
slot = 10;
|
||||
break;
|
||||
case ArrowTrail:
|
||||
slot = 12;
|
||||
break;
|
||||
case DoubleJump:
|
||||
slot = 14;
|
||||
break;
|
||||
case Death:
|
||||
slot = 16;
|
||||
break;
|
||||
case Item:
|
||||
slot = 28;
|
||||
break;
|
||||
case Morph:
|
||||
slot = 30;
|
||||
break;
|
||||
case Hat:
|
||||
slot = 46;
|
||||
break;
|
||||
case Costume:
|
||||
slot = 48;
|
||||
break;
|
||||
case MusicDisc:
|
||||
slot = 50;
|
||||
break;
|
||||
case Taunt:
|
||||
slot = 52;
|
||||
break;
|
||||
default:
|
||||
slot = 10;
|
||||
break;
|
||||
}
|
||||
slot += 9;
|
||||
|
||||
addButton(slot, new ShopItem(gadget.GetDisplayMaterial(), gadget.GetDisplayData(), C.mItem + gadget.GetName(), new String[0], 1, false, false),
|
||||
new IButton()
|
||||
{
|
||||
public void onClick(Player player, ClickType clickType)
|
||||
{
|
||||
public void onClick(Player player, ClickType clickType) {
|
||||
playAcceptSound(player);
|
||||
gadget.Disable(player);
|
||||
refresh();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.Morph) != null)
|
||||
{
|
||||
final Gadget gadget = getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.Morph);
|
||||
|
||||
addButton(22 + 9,
|
||||
new ShopItem(gadget.GetDisplayMaterial(), gadget.GetDisplayData(), ChatColor.RESET + C.mItem + gadget.GetName(), new String[]{}, 1, false, false),
|
||||
new IButton()
|
||||
{
|
||||
public void onClick(Player player, ClickType clickType)
|
||||
{
|
||||
playAcceptSound(player);
|
||||
gadget.Disable(player);
|
||||
refresh();
|
||||
}
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
@ -134,8 +151,8 @@ public class Menu extends ShopPageBase<CosmeticManager, CosmeticShop>
|
||||
{
|
||||
final Mount<?> mount = getPlugin().getMountManager().getActive(getPlayer());
|
||||
|
||||
addButton(24 + 9,
|
||||
new ShopItem(mount.GetDisplayMaterial(), mount.GetDisplayData(), ChatColor.RESET + C.mItem + mount.GetName(), new String[]{}, 1, false, false),
|
||||
addButton(32 + 9,
|
||||
new ShopItem(mount.GetDisplayMaterial(), mount.GetDisplayData(), C.mItem + mount.GetName(), new String[0], 1, false, false),
|
||||
new IButton()
|
||||
{
|
||||
public void onClick(Player player, ClickType clickType)
|
||||
@ -151,7 +168,7 @@ public class Menu extends ShopPageBase<CosmeticManager, CosmeticShop>
|
||||
{
|
||||
Creature activePet = getPlugin().getPetManager().getActivePet(getPlayer().getName());
|
||||
String petName = activePet.getType() == EntityType.WITHER ? "Widder" : activePet.getCustomName();
|
||||
addButton(26 + 9, new ShopItem(Material.MONSTER_EGG, (byte) getPlugin().getPetManager().getActivePet(getPlayer().getName()).getType().getTypeId(), ChatColor.RESET + C.mItem + petName, new String[]{}, 1, false, false),
|
||||
addButton(34 + 9, new ShopItem(Material.MONSTER_EGG, (byte) getPlugin().getPetManager().getActivePet(getPlayer().getName()).getType().getTypeId(), C.mItem + petName, new String[0], 1, false, false),
|
||||
new IButton()
|
||||
{
|
||||
public void onClick(Player player, ClickType clickType)
|
||||
|
@ -37,6 +37,8 @@ public class MorphPage extends GadgetPage
|
||||
|
||||
if (slot == 26)
|
||||
slot = 28;
|
||||
if (slot == 35)
|
||||
slot = 37;
|
||||
}
|
||||
|
||||
addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton()
|
||||
|
@ -0,0 +1,57 @@
|
||||
package mineplex.core.cosmetic.ui.page;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
|
||||
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.IButton;
|
||||
import mineplex.core.shop.item.ShopItem;
|
||||
|
||||
public class TauntPage extends GadgetPage
|
||||
{
|
||||
|
||||
|
||||
public TauntPage(CosmeticManager plugin, CosmeticShop shop, CoreClientManager clientManager, DonationManager donationManager, String name,
|
||||
Player player)
|
||||
{
|
||||
super(plugin, shop, clientManager, donationManager, name, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void buildPage()
|
||||
{
|
||||
int slot = 19;
|
||||
|
||||
List<Gadget> list = getPlugin().getGadgetManager().getGadgets(GadgetType.Taunt);
|
||||
if(list != null)
|
||||
for (Gadget gadget : list)
|
||||
{
|
||||
addGadget(gadget, slot);
|
||||
|
||||
if (getPlugin().getGadgetManager().getActive(getPlayer(), GadgetType.Morph) == gadget)
|
||||
addGlow(slot);
|
||||
|
||||
slot++;
|
||||
|
||||
if (slot == 26)
|
||||
slot = 28;
|
||||
}
|
||||
|
||||
addButton(4, new ShopItem(Material.BED, C.cGray + " \u21FD Go Back", new String[]{}, 1, false), new IButton()
|
||||
{
|
||||
public void onClick(Player player, ClickType clickType)
|
||||
{
|
||||
getShop().openPageForPlayer(getPlayer(), new Menu(getPlugin(), getShop(), getClientManager(), getDonationManager(), player));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@ -3,39 +3,6 @@ package mineplex.core.gadget;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import mineplex.core.MiniPlugin;
|
||||
import mineplex.core.account.CoreClientManager;
|
||||
import mineplex.core.achievement.AchievementManager;
|
||||
import mineplex.core.blockrestore.BlockRestore;
|
||||
import mineplex.core.common.Rank;
|
||||
import mineplex.core.common.util.NautHashMap;
|
||||
import mineplex.core.common.util.UtilMath;
|
||||
import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.common.util.UtilTime;
|
||||
import mineplex.core.disguise.DisguiseManager;
|
||||
import mineplex.core.donation.DonationManager;
|
||||
import mineplex.core.gadget.event.GadgetCollideEntityEvent;
|
||||
import mineplex.core.gadget.gadgets.arrowtrail.*;
|
||||
import mineplex.core.gadget.gadgets.death.*;
|
||||
import mineplex.core.gadget.gadgets.doublejump.*;
|
||||
import mineplex.core.gadget.gadgets.item.*;
|
||||
import mineplex.core.gadget.gadgets.morph.*;
|
||||
import mineplex.core.gadget.gadgets.outfit.*;
|
||||
import mineplex.core.gadget.gadgets.particle.*;
|
||||
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.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;
|
||||
import mineplex.core.pet.PetManager;
|
||||
import mineplex.core.preferences.PreferencesManager;
|
||||
import mineplex.core.projectile.ProjectileManager;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
@ -49,6 +16,82 @@ import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.event.player.PlayerToggleSneakEvent;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
import mineplex.core.MiniPlugin;
|
||||
import mineplex.core.account.CoreClientManager;
|
||||
import mineplex.core.achievement.AchievementManager;
|
||||
import mineplex.core.blockrestore.BlockRestore;
|
||||
import mineplex.core.common.Rank;
|
||||
import mineplex.core.common.util.NautHashMap;
|
||||
import mineplex.core.common.util.UtilEnt;
|
||||
import mineplex.core.common.util.UtilMath;
|
||||
import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.common.util.UtilTime;
|
||||
import mineplex.core.disguise.DisguiseManager;
|
||||
import mineplex.core.donation.DonationManager;
|
||||
import mineplex.core.gadget.event.GadgetCollideEntityEvent;
|
||||
import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailCandyCane;
|
||||
import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailFrostLord;
|
||||
import mineplex.core.gadget.gadgets.arrowtrail.ArrowTrailTitan;
|
||||
import mineplex.core.gadget.gadgets.death.DeathCandyCane;
|
||||
import mineplex.core.gadget.gadgets.death.DeathFrostLord;
|
||||
import mineplex.core.gadget.gadgets.death.DeathTitan;
|
||||
import mineplex.core.gadget.gadgets.doublejump.DoubleJumpCandyCane;
|
||||
import mineplex.core.gadget.gadgets.doublejump.DoubleJumpFrostLord;
|
||||
import mineplex.core.gadget.gadgets.doublejump.DoubleJumpTitan;
|
||||
import mineplex.core.gadget.gadgets.item.ItemBatGun;
|
||||
import mineplex.core.gadget.gadgets.item.ItemCoinBomb;
|
||||
import mineplex.core.gadget.gadgets.item.ItemDuelingSword;
|
||||
import mineplex.core.gadget.gadgets.item.ItemEtherealPearl;
|
||||
import mineplex.core.gadget.gadgets.item.ItemFirework;
|
||||
import mineplex.core.gadget.gadgets.item.ItemFleshHook;
|
||||
import mineplex.core.gadget.gadgets.item.ItemMelonLauncher;
|
||||
import mineplex.core.gadget.gadgets.item.ItemPaintballGun;
|
||||
import mineplex.core.gadget.gadgets.item.ItemPaintbrush;
|
||||
import mineplex.core.gadget.gadgets.item.ItemPartyPopper;
|
||||
import mineplex.core.gadget.gadgets.item.ItemTNT;
|
||||
import mineplex.core.gadget.gadgets.morph.MorphBat;
|
||||
import mineplex.core.gadget.gadgets.morph.MorphBlaze;
|
||||
import mineplex.core.gadget.gadgets.morph.MorphBlock;
|
||||
import mineplex.core.gadget.gadgets.morph.MorphBunny;
|
||||
import mineplex.core.gadget.gadgets.morph.MorphChicken;
|
||||
import mineplex.core.gadget.gadgets.morph.MorphCow;
|
||||
import mineplex.core.gadget.gadgets.morph.MorphCreeper;
|
||||
import mineplex.core.gadget.gadgets.morph.MorphEnderman;
|
||||
import mineplex.core.gadget.gadgets.morph.MorphPig;
|
||||
import mineplex.core.gadget.gadgets.morph.MorphPumpkinKing;
|
||||
import mineplex.core.gadget.gadgets.morph.MorphSlime;
|
||||
import mineplex.core.gadget.gadgets.morph.MorphSnowman;
|
||||
import mineplex.core.gadget.gadgets.morph.MorphTitan;
|
||||
import mineplex.core.gadget.gadgets.morph.MorphVillager;
|
||||
import mineplex.core.gadget.gadgets.morph.MorphWither;
|
||||
import mineplex.core.gadget.gadgets.outfit.OutfitRaveSuit;
|
||||
import mineplex.core.gadget.gadgets.outfit.OutfitSpaceSuit;
|
||||
import mineplex.core.gadget.gadgets.outfit.OutfitTeam;
|
||||
import mineplex.core.gadget.gadgets.particle.ParticleCandyCane;
|
||||
import mineplex.core.gadget.gadgets.particle.ParticleEnchant;
|
||||
import mineplex.core.gadget.gadgets.particle.ParticleFairy;
|
||||
import mineplex.core.gadget.gadgets.particle.ParticleFireRings;
|
||||
import mineplex.core.gadget.gadgets.particle.ParticleFoot;
|
||||
import mineplex.core.gadget.gadgets.particle.ParticleFrostLord;
|
||||
import mineplex.core.gadget.gadgets.particle.ParticleGreen;
|
||||
import mineplex.core.gadget.gadgets.particle.ParticleHeart;
|
||||
import mineplex.core.gadget.gadgets.particle.ParticleHelix;
|
||||
import mineplex.core.gadget.gadgets.particle.ParticleLegend;
|
||||
import mineplex.core.gadget.gadgets.particle.ParticleRain;
|
||||
import mineplex.core.gadget.gadgets.particle.ParticleTitan;
|
||||
import mineplex.core.gadget.types.Gadget;
|
||||
import mineplex.core.gadget.types.GadgetType;
|
||||
import mineplex.core.gadget.types.ItemGadget;
|
||||
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;
|
||||
import mineplex.core.pet.PetManager;
|
||||
import mineplex.core.preferences.PreferencesManager;
|
||||
import mineplex.core.projectile.ProjectileManager;
|
||||
|
||||
public class GadgetManager extends MiniPlugin
|
||||
{
|
||||
private CoreClientManager _clientManager;
|
||||
@ -103,6 +146,7 @@ public class GadgetManager extends MiniPlugin
|
||||
addGadget(new ItemCoinBomb(this));
|
||||
addGadget(new ItemPaintbrush(this));
|
||||
addGadget(new ItemDuelingSword(this));
|
||||
addGadget(new ItemPartyPopper(this));
|
||||
|
||||
// Costume
|
||||
addGadget(new OutfitRaveSuit(this, "Rave Hat", -2, ArmorSlot.Helmet, Material.LEATHER_HELMET, (byte)0));
|
||||
@ -135,6 +179,7 @@ public class GadgetManager extends MiniPlugin
|
||||
addGadget(new MorphBunny(this));
|
||||
addGadget(new MorphSlime(this, _achievementManager));
|
||||
addGadget(new MorphTitan(this));
|
||||
addGadget(new MorphSnowman(this));
|
||||
|
||||
// Particles
|
||||
addGadget(new ParticleFoot(this));
|
||||
@ -148,18 +193,22 @@ public class GadgetManager extends MiniPlugin
|
||||
addGadget(new ParticleLegend(this));
|
||||
addGadget(new ParticleFrostLord(this));
|
||||
addGadget(new ParticleTitan(this));
|
||||
addGadget(new ParticleCandyCane(this));
|
||||
|
||||
// Arrow Trails
|
||||
addGadget(new ArrowTrailFrostLord(this));
|
||||
addGadget(new ArrowTrailTitan(this));
|
||||
addGadget(new ArrowTrailCandyCane(this));
|
||||
|
||||
// Death Effect
|
||||
addGadget(new DeathFrostLord(this));
|
||||
addGadget(new DeathTitan(this));
|
||||
addGadget(new DeathCandyCane(this));
|
||||
|
||||
// Double Jump
|
||||
addGadget(new DoubleJumpFrostLord(this));
|
||||
addGadget(new DoubleJumpTitan(this));
|
||||
addGadget(new DoubleJumpCandyCane(this));
|
||||
|
||||
|
||||
// Music
|
||||
@ -207,6 +256,7 @@ public class GadgetManager extends MiniPlugin
|
||||
return _gadgets.get(gadgetType);
|
||||
}
|
||||
|
||||
|
||||
// Disallows two armor gadgets in same slot.
|
||||
public void RemoveOutfit(Player player, ArmorSlot slot)
|
||||
{
|
||||
@ -227,6 +277,7 @@ public class GadgetManager extends MiniPlugin
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
public void RemoveItem(Player player)
|
||||
{
|
||||
for (GadgetType gadgetType : _gadgets.keySet())
|
||||
@ -274,6 +325,17 @@ public class GadgetManager extends MiniPlugin
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
public void removeGadetType(Player player, GadgetType type)
|
||||
{
|
||||
List<Gadget> gadgets = _gadgets.get(type);
|
||||
if(gadgets == null) return;
|
||||
for(Gadget g : gadgets)
|
||||
{
|
||||
g.Disable(player);
|
||||
}
|
||||
}
|
||||
|
||||
public void DisableAll()
|
||||
{
|
||||
@ -367,7 +429,7 @@ public class GadgetManager extends MiniPlugin
|
||||
@EventHandler
|
||||
public void setMoving(PlayerMoveEvent event)
|
||||
{
|
||||
if (UtilMath.offset(event.getFrom(), event.getTo()) <= 0)
|
||||
if (UtilMath.offset(event.getFrom(), event.getTo()) <= 0.1)
|
||||
return;
|
||||
|
||||
_lastMove.put(event.getPlayer(), System.currentTimeMillis());
|
||||
@ -375,6 +437,8 @@ public class GadgetManager extends MiniPlugin
|
||||
|
||||
public boolean isMoving(Player player)
|
||||
{
|
||||
if (!UtilEnt.isGrounded(player)) return true;
|
||||
|
||||
if (!_lastMove.containsKey(player))
|
||||
return false;
|
||||
|
||||
|
@ -0,0 +1,48 @@
|
||||
package mineplex.core.gadget.gadgets.arrowtrail;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Arrow;
|
||||
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.common.util.UtilTime;
|
||||
import mineplex.core.gadget.GadgetManager;
|
||||
import mineplex.core.gadget.types.ArrowEffectGadget;
|
||||
|
||||
public class ArrowTrailCandyCane extends ArrowEffectGadget
|
||||
{
|
||||
|
||||
public ArrowTrailCandyCane(GadgetManager manager)
|
||||
{
|
||||
super(manager, "Candy Cane Arrow Effect", new String[]
|
||||
{
|
||||
C.cWhite + "We whish you a marry " + C.Scramble + "christmas" + C.cWhite + ".",
|
||||
},
|
||||
1,
|
||||
Material.SNOW_BALL, (byte)0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doTrail(Arrow arrow)
|
||||
{
|
||||
int data = 15;
|
||||
int tick = Math.abs(UtilTime.getServerTick()%3);
|
||||
if(tick == 1) data = 1;
|
||||
if(tick == 2) data = 2;
|
||||
Location loc = arrow.getLocation();
|
||||
UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, data), loc, 0, 0, 0, 0.0f, 1, ViewDist.NORMAL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doHitEffect(Arrow arrow)
|
||||
{
|
||||
Location loc = arrow.getLocation();
|
||||
UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 15), loc, 0, 0, 0, 0.1f, 20, ViewDist.NORMAL);
|
||||
UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 1), loc, 0, 0, 0, 0.1f, 20, ViewDist.NORMAL);
|
||||
UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 2), loc, 0, 0, 0, 0.1f, 20, ViewDist.NORMAL);
|
||||
}
|
||||
|
||||
}
|
@ -15,15 +15,13 @@ public class ArrowTrailFrostLord extends ArrowEffectGadget
|
||||
{
|
||||
public ArrowTrailFrostLord(GadgetManager manager)
|
||||
{
|
||||
super(manager, "Frost Lord", new String[]
|
||||
super(manager, "Frost Lord Arrow Trail", new String[]
|
||||
{
|
||||
C.cWhite + "You are a mighty frost lord.",
|
||||
C.cWhite + "Your double jumps and arrows",
|
||||
C.cWhite + "are enchanted with snow powers.",
|
||||
" ",
|
||||
C.cPurple + "No longer available",
|
||||
},
|
||||
-1,
|
||||
10,
|
||||
Material.SNOW_BALL, (byte)0);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,49 @@
|
||||
package mineplex.core.gadget.gadgets.death;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.event.EventHandler;
|
||||
|
||||
import mineplex.core.blood.BloodEvent;
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.gadget.types.DeathEffectGadget;
|
||||
import mineplex.core.gadget.GadgetManager;
|
||||
|
||||
public class DeathCandyCane extends DeathEffectGadget
|
||||
{
|
||||
public DeathCandyCane(GadgetManager manager)
|
||||
{
|
||||
super(manager, "Candy Cane Effect", new String[]
|
||||
{
|
||||
C.cWhite + "COLORS FTW!",
|
||||
C.cWhite + "Take damage with SWAG B)",
|
||||
},
|
||||
10,
|
||||
Material.SNOW_BALL, (byte)0);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void death(BloodEvent event)
|
||||
{
|
||||
if (event.getPlayer() == null)
|
||||
return;
|
||||
|
||||
if (!IsActive(event.getPlayer()))
|
||||
return;
|
||||
|
||||
if (!shouldDisplay(event.getPlayer()))
|
||||
return;
|
||||
|
||||
event.setCancelled(true);
|
||||
|
||||
event.setItem(Material.INK_SACK, (byte) 15);
|
||||
|
||||
Location loc = event.getLocation();
|
||||
int a = event.getParticles();
|
||||
UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 1), loc, 0, 0, 0, 0.1f, a, ViewDist.NORMAL);
|
||||
UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 2), loc, 0, 0, 0, 0.1f, a, ViewDist.NORMAL);
|
||||
}
|
||||
}
|
@ -12,15 +12,13 @@ public class DeathFrostLord extends DeathEffectGadget
|
||||
{
|
||||
public DeathFrostLord(GadgetManager manager)
|
||||
{
|
||||
super(manager, "Frost Lord", new String[]
|
||||
super(manager, "Frost Lord Death Effect", new String[]
|
||||
{
|
||||
C.cWhite + "You are a mighty frost lord.",
|
||||
C.cWhite + "Your double jumps and arrows",
|
||||
C.cWhite + "are enchanted with snow powers.",
|
||||
" ",
|
||||
C.cPurple + "No longer available",
|
||||
},
|
||||
-1,
|
||||
10,
|
||||
Material.SNOW_BALL, (byte)0);
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,36 @@
|
||||
package mineplex.core.gadget.gadgets.doublejump;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.gadget.GadgetManager;
|
||||
import mineplex.core.gadget.types.DoubleJumpEffectGadget;
|
||||
|
||||
public class DoubleJumpCandyCane extends DoubleJumpEffectGadget
|
||||
{
|
||||
|
||||
public DoubleJumpCandyCane(GadgetManager manager)
|
||||
{
|
||||
super(manager, "Candy Cane Jump Effect", new String[]
|
||||
{
|
||||
C.cWhite + "We whish you a marry " + C.Scramble + "christmas" + C.cWhite + ".",
|
||||
},
|
||||
1,
|
||||
Material.SNOW_BALL, (byte)0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doEffect(Player player)
|
||||
{
|
||||
Location loc = player.getLocation();
|
||||
UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 15), loc, 0, 0, 0, 0.15f, 100, ViewDist.NORMAL);
|
||||
UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 1), loc, 0, 0, 0, 0.15f, 100, ViewDist.NORMAL);
|
||||
UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 2), loc, 0, 0, 0, 0.15f, 100, ViewDist.NORMAL);
|
||||
}
|
||||
|
||||
}
|
@ -17,15 +17,11 @@ public class DoubleJumpFrostLord extends DoubleJumpEffectGadget
|
||||
{
|
||||
public DoubleJumpFrostLord(GadgetManager manager)
|
||||
{
|
||||
super(manager, "Frost Lord", new String[]
|
||||
super(manager, "Frost Lord Jump Effect", new String[]
|
||||
{
|
||||
C.cWhite + "You are a mighty frost lord.",
|
||||
C.cWhite + "Your double jumps and arrows",
|
||||
C.cWhite + "are enchanted with snow powers.",
|
||||
" ",
|
||||
C.cPurple + "No longer available",
|
||||
C.cWhite + "More snow incomming.",
|
||||
},
|
||||
-1,
|
||||
1,
|
||||
Material.SNOW_BALL, (byte)0);
|
||||
}
|
||||
|
||||
|
@ -36,6 +36,7 @@ public class DoubleJumpTitan extends DoubleJumpEffectGadget
|
||||
{
|
||||
UtilParticle.PlayParticle(ParticleType.LAVA, player.getLocation(), 0f, 0f, 0f, 0.2f, 40,
|
||||
ViewDist.NORMAL, UtilServer.getPlayers());
|
||||
UtilParticle.PlayParticleToAll(ParticleType.FLAME, player.getLocation(), 0, 0, 0, 0.2f, 40, ViewDist.NORMAL);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
|
@ -8,6 +8,7 @@ import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.gadget.GadgetManager;
|
||||
import mineplex.core.gadget.gadgets.Ammo;
|
||||
import mineplex.core.gadget.types.GadgetType;
|
||||
import mineplex.core.gadget.types.ItemGadget;
|
||||
import mineplex.core.itemstack.ItemStackFactory;
|
||||
|
||||
@ -27,7 +28,7 @@ public class ItemDuelingSword extends ItemGadget
|
||||
@Override
|
||||
public void ApplyItem(Player player, boolean inform)
|
||||
{
|
||||
Manager.RemoveItem(player);
|
||||
Manager.removeGadetType(player, GadgetType.Item);
|
||||
|
||||
_active.add(player);
|
||||
|
||||
|
@ -28,6 +28,7 @@ import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.common.util.UtilEvent.ActionType;
|
||||
import mineplex.core.gadget.GadgetManager;
|
||||
import mineplex.core.gadget.gadgets.Ammo;
|
||||
import mineplex.core.gadget.types.GadgetType;
|
||||
import mineplex.core.gadget.types.ItemGadget;
|
||||
import mineplex.core.itemstack.ItemStackFactory;
|
||||
import mineplex.core.updater.UpdateType;
|
||||
@ -56,7 +57,7 @@ public class ItemPaintbrush extends ItemGadget
|
||||
@Override
|
||||
public void ApplyItem(Player player, boolean inform)
|
||||
{
|
||||
Manager.RemoveItem(player);
|
||||
Manager.removeGadetType(player, GadgetType.Item);
|
||||
|
||||
_active.add(player);
|
||||
|
||||
|
@ -0,0 +1,127 @@
|
||||
package mineplex.core.gadget.gadgets.morph;
|
||||
|
||||
import java.util.WeakHashMap;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.entity.Snowball;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.entity.EntityDamageByEntityEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEvent;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.common.util.F;
|
||||
import mineplex.core.common.util.NautHashMap;
|
||||
import mineplex.core.common.util.UtilAction;
|
||||
import mineplex.core.common.util.UtilEvent;
|
||||
import mineplex.core.common.util.UtilEvent.ActionType;
|
||||
import mineplex.core.common.util.UtilMath;
|
||||
import mineplex.core.disguise.disguises.DisguiseSnowman;
|
||||
import mineplex.core.gadget.GadgetManager;
|
||||
import mineplex.core.gadget.event.GadgetCollideEntityEvent;
|
||||
import mineplex.core.gadget.types.MorphGadget;
|
||||
import mineplex.core.recharge.Recharge;
|
||||
import mineplex.core.recharge.RechargeData;
|
||||
import mineplex.core.updater.UpdateType;
|
||||
import mineplex.core.updater.event.UpdateEvent;
|
||||
|
||||
public class MorphSnowman extends MorphGadget
|
||||
{
|
||||
|
||||
private WeakHashMap<Projectile, Player> _snowball = new WeakHashMap<Projectile, Player>();
|
||||
|
||||
public MorphSnowman(GadgetManager manager)
|
||||
{
|
||||
super(manager, "Snowman Morph",
|
||||
new String[]{ C.cWhite + "Do you wanna build a snowman?", C.cWhite + "It doesn't have to be a snowman...",
|
||||
C.cWhite + "Or... it kind of does...", " ", C.cYellow + "Left Click" + C.cGray + " to use " + C.cGreen + "Snowball", },
|
||||
6000, Material.SNOW_BALL, (byte) 0);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void EnableCustom(Player player)
|
||||
{
|
||||
this.ApplyArmor(player);
|
||||
|
||||
DisguiseSnowman disguise = new DisguiseSnowman(player);
|
||||
disguise.setName(player.getName(), Manager.getClientManager().Get(player).GetRank());
|
||||
disguise.setCustomNameVisible(true);
|
||||
Manager.getDisguiseManager().disguise(disguise);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void DisableCustom(Player player)
|
||||
{
|
||||
this.RemoveArmor(player);
|
||||
Manager.getDisguiseManager().undisguise(player);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onInteract(PlayerInteractEvent event)
|
||||
{
|
||||
if(!IsActive(event.getPlayer())) return;
|
||||
|
||||
if(!UtilEvent.isAction(event, ActionType.L)) return;
|
||||
|
||||
if(event.getItem() != null && event.getItem().getType() != Material.AIR) return;
|
||||
|
||||
if(Recharge.Instance.use(event.getPlayer(), "Blizzard", 12000, true, true))
|
||||
{
|
||||
event.getPlayer().sendMessage(F.main("Recharge", "You used " + F.skill("Blizzard") + "."));
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void Snow(UpdateEvent event)
|
||||
{
|
||||
if (event.getType() != UpdateType.FASTEST)
|
||||
return;
|
||||
|
||||
for (Player player : GetActive())
|
||||
{
|
||||
NautHashMap<String, RechargeData> map = Recharge.Instance.Get(player);
|
||||
if(map == null) continue;
|
||||
|
||||
RechargeData data = map.get("Blizzard");
|
||||
if(data == null) continue;
|
||||
if(data.GetRemaining() < 10000) continue;
|
||||
|
||||
for (int i=0 ; i<4 ; i++)
|
||||
{
|
||||
Snowball snow = player.getWorld().spawn(player.getEyeLocation().add(player.getLocation().getDirection()), Snowball.class);
|
||||
double x = 0.1 - (UtilMath.r(20)/100d);
|
||||
double y = UtilMath.r(20)/100d;
|
||||
double z = 0.1 - (UtilMath.r(20)/100d);
|
||||
snow.setShooter(player);
|
||||
snow.setVelocity(player.getLocation().getDirection().add(new Vector(x,y,z)).multiply(2));
|
||||
_snowball.put(snow, player);
|
||||
}
|
||||
|
||||
//Effect
|
||||
player.getWorld().playSound(player.getLocation(), Sound.STEP_SNOW, 0.2f, 0.5f);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void Snowball(EntityDamageByEntityEvent event)
|
||||
{
|
||||
if (!(event.getDamager() instanceof Snowball))
|
||||
return;
|
||||
|
||||
Snowball proj = (Snowball) event.getDamager();
|
||||
|
||||
if (!_snowball.containsKey(proj))
|
||||
return;
|
||||
|
||||
GadgetCollideEntityEvent gevent = new GadgetCollideEntityEvent(this, event.getEntity());
|
||||
|
||||
if(gevent.isCancelled()) return;
|
||||
|
||||
UtilAction.velocity(event.getEntity(), proj.getVelocity().multiply(0.15).add(new Vector(0, 0.15, 0)));
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -20,6 +20,7 @@ import mineplex.core.common.util.UtilGear;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.gadget.GadgetManager;
|
||||
import mineplex.core.gadget.event.GadgetActivateEvent;
|
||||
import mineplex.core.gadget.types.GadgetType;
|
||||
import mineplex.core.gadget.types.OutfitGadget;
|
||||
import mineplex.core.gadget.types.OutfitGadget.ArmorSlot;
|
||||
import mineplex.core.itemstack.ItemStackFactory;
|
||||
@ -55,7 +56,7 @@ public class OutfitTeam extends OutfitGadget
|
||||
@Override
|
||||
public void ApplyArmor(Player player)
|
||||
{
|
||||
Manager.RemoveMorph(player);
|
||||
Manager.removeGadetType(player, GadgetType.Morph);
|
||||
|
||||
Manager.RemoveOutfit(player, _slot);
|
||||
|
||||
|
@ -0,0 +1,93 @@
|
||||
package mineplex.core.gadget.gadgets.particle;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.gadget.GadgetManager;
|
||||
import mineplex.core.gadget.types.ParticleGadget;
|
||||
import mineplex.core.updater.UpdateType;
|
||||
import mineplex.core.updater.event.UpdateEvent;
|
||||
|
||||
public class ParticleCandyCane extends ParticleGadget
|
||||
{
|
||||
|
||||
private HashMap<UUID, Double> _map = new HashMap<UUID, Double>();
|
||||
|
||||
public ParticleCandyCane(GadgetManager manager)
|
||||
{
|
||||
super(manager, "Candy Cane Particle", new String[]{"Christmas. Nuf said."}, 10, Material.CHEST, (byte)0);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onUpdate(UpdateEvent event)
|
||||
{
|
||||
if (event.getType() != UpdateType.TICK)
|
||||
return;
|
||||
|
||||
for(Player player : GetActive())
|
||||
{
|
||||
if (!shouldDisplay(player))
|
||||
continue;
|
||||
|
||||
boolean moving = Manager.isMoving(player);
|
||||
Location loc = player.getLocation();
|
||||
float y = moving? 0.2f : 0.15f;
|
||||
double yadd = getY(player);
|
||||
if(!moving && yadd < 2.1)
|
||||
{
|
||||
yadd += 0.05;
|
||||
setY(player, yadd);
|
||||
}
|
||||
if(moving && yadd > 0.7)
|
||||
{
|
||||
yadd = 0.7;
|
||||
setY(player, yadd);
|
||||
}
|
||||
loc.add(0, yadd, 0);
|
||||
|
||||
float w = 0.2f;
|
||||
int a = moving? 2 : 6;
|
||||
|
||||
if(!moving)
|
||||
{
|
||||
double d = Math.PI*2 * (event.getTick()/50.0);
|
||||
Vector v = new Vector(Math.sin(d), 0, Math.cos(d));
|
||||
loc.add(v);
|
||||
}
|
||||
|
||||
|
||||
UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 15), loc, w, y, w, 0, a, ViewDist.NORMAL);
|
||||
UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 1), loc, w, y, w, 0, a, ViewDist.NORMAL);
|
||||
UtilParticle.PlayParticleToAll(ParticleType.ICON_CRACK.getParticle(Material.INK_SACK, 2), loc, w, y, w, 0, a, ViewDist.NORMAL);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onQuit(PlayerQuitEvent event)
|
||||
{
|
||||
_map.remove(event.getPlayer().getUniqueId());
|
||||
}
|
||||
|
||||
private void setY(Player p, double y)
|
||||
{
|
||||
_map.put(p.getUniqueId(), y);
|
||||
}
|
||||
|
||||
private double getY(Player p)
|
||||
{
|
||||
Double y = _map.get(p.getUniqueId());
|
||||
if(y == null) return 3;
|
||||
return y.doubleValue();
|
||||
}
|
||||
|
||||
}
|
@ -30,15 +30,13 @@ public class ParticleFrostLord extends ParticleGadget
|
||||
|
||||
public ParticleFrostLord(GadgetManager manager)
|
||||
{
|
||||
super(manager, "Frost Lord", new String[]
|
||||
super(manager, "Frost Lord Particle", new String[]
|
||||
{
|
||||
C.cWhite + "You are a mighty frost lord.",
|
||||
C.cWhite + "Your double jumps and arrows",
|
||||
C.cWhite + "are enchanted with snow powers.",
|
||||
" ",
|
||||
C.cPurple + "No longer available",
|
||||
},
|
||||
-1,
|
||||
10,
|
||||
Material.SNOW_BALL, (byte)0);
|
||||
}
|
||||
|
||||
|
@ -11,11 +11,7 @@ import org.bukkit.event.entity.ProjectileHitEvent;
|
||||
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
||||
|
||||
import mineplex.core.common.util.F;
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.gadget.GadgetManager;
|
||||
import mineplex.core.updater.UpdateType;
|
||||
import mineplex.core.updater.event.UpdateEvent;
|
||||
@ -32,7 +28,7 @@ public abstract class ArrowEffectGadget extends Gadget
|
||||
@Override
|
||||
public void EnableCustom(Player player)
|
||||
{
|
||||
Manager.RemoveParticle(player);
|
||||
Manager.removeGadetType(player, GadgetType.ArrowTrail);
|
||||
|
||||
_active.add(player);
|
||||
|
||||
|
@ -17,7 +17,7 @@ public abstract class DeathEffectGadget extends Gadget
|
||||
@Override
|
||||
public void EnableCustom(Player player)
|
||||
{
|
||||
Manager.RemoveParticle(player);
|
||||
Manager.removeGadetType(player, GadgetType.Death);
|
||||
|
||||
_active.add(player);
|
||||
|
||||
|
@ -23,7 +23,7 @@ public abstract class DoubleJumpEffectGadget extends Gadget
|
||||
@Override
|
||||
public void EnableCustom(Player player)
|
||||
{
|
||||
Manager.RemoveParticle(player);
|
||||
Manager.removeGadetType(player, GadgetType.DoubleJump);
|
||||
|
||||
_active.add(player);
|
||||
|
||||
|
@ -9,5 +9,7 @@ public enum GadgetType
|
||||
Costume,
|
||||
DoubleJump,
|
||||
ArrowTrail,
|
||||
Death
|
||||
Death,
|
||||
Hat,
|
||||
Taunt
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ public abstract class ItemGadget extends Gadget
|
||||
|
||||
public void ApplyItem(Player player, boolean inform)
|
||||
{
|
||||
Manager.RemoveItem(player);
|
||||
Manager.removeGadetType(player, GadgetType.Item);
|
||||
|
||||
_active.add(player);
|
||||
|
||||
|
@ -19,7 +19,7 @@ public abstract class MorphGadget extends Gadget
|
||||
|
||||
public void ApplyArmor(Player player)
|
||||
{
|
||||
Manager.RemoveMorph(player);
|
||||
Manager.removeGadetType(player, GadgetType.Morph);
|
||||
|
||||
_active.add(player);
|
||||
|
||||
|
@ -34,7 +34,7 @@ public abstract class OutfitGadget extends Gadget
|
||||
|
||||
public void ApplyArmor(Player player)
|
||||
{
|
||||
Manager.RemoveMorph(player);
|
||||
Manager.removeGadetType(player, GadgetType.Morph);
|
||||
|
||||
Manager.RemoveOutfit(player, _slot);
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
package mineplex.core.gadget.types;
|
||||
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
@ -18,7 +17,7 @@ public abstract class ParticleGadget extends Gadget
|
||||
@Override
|
||||
public void EnableCustom(Player player)
|
||||
{
|
||||
Manager.RemoveParticle(player);
|
||||
Manager.removeGadetType(player, GadgetType.Particle);
|
||||
|
||||
_active.add(player);
|
||||
|
||||
|
@ -23,6 +23,7 @@ import mineplex.core.common.util.UtilPlayer;
|
||||
import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.disguise.DisguiseManager;
|
||||
import mineplex.core.donation.DonationManager;
|
||||
import mineplex.core.mount.types.MountBabyReindeer;
|
||||
import mineplex.core.mount.types.MountCart;
|
||||
import mineplex.core.mount.types.MountDragon;
|
||||
import mineplex.core.mount.types.MountFrost;
|
||||
@ -68,6 +69,7 @@ public class MountManager extends MiniPlugin
|
||||
_types.add(new MountSpider(this));
|
||||
_types.add(new MountZombie(this));
|
||||
_types.add(new MountTitan(this));
|
||||
_types.add(new MountBabyReindeer(this));
|
||||
//_types.add(new MountSheep(this));
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,92 @@
|
||||
package mineplex.core.mount.types;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.entity.Horse;
|
||||
import org.bukkit.entity.Horse.Color;
|
||||
import org.bukkit.entity.Horse.Style;
|
||||
import org.bukkit.entity.Horse.Variant;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.entity.HorseJumpEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||
import org.bukkit.util.Vector;
|
||||
|
||||
import mineplex.core.common.util.C;
|
||||
import mineplex.core.common.util.UtilEnt;
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.mount.HorseMount;
|
||||
import mineplex.core.mount.MountManager;
|
||||
import mineplex.core.mount.SingleEntityMountData;
|
||||
import mineplex.core.recharge.Recharge;
|
||||
import mineplex.core.updater.UpdateType;
|
||||
import mineplex.core.updater.event.UpdateEvent;
|
||||
|
||||
public class MountBabyReindeer extends HorseMount
|
||||
{
|
||||
|
||||
public MountBabyReindeer(MountManager manager)
|
||||
{
|
||||
super(manager, "Baby Rainder", new String[]
|
||||
{
|
||||
C.cWhite + "One of Santa's baby reindeers",
|
||||
C.cWhite + "Still trying to learn how to fly"
|
||||
}, Material.SNOW_BALL, (byte) 0, 10, Color.CREAMY, Style.WHITEFIELD, Variant.HORSE, 0, null);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void EnableCustom(Player player) {
|
||||
super.EnableCustom(player);
|
||||
Horse horse = GetActive().get(player).getEntity();
|
||||
horse.setBaby();
|
||||
horse.setMaxHealth(20);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void fly(UpdateEvent event)
|
||||
{
|
||||
if(event.getType() != UpdateType.TICK) return;
|
||||
|
||||
for(SingleEntityMountData<Horse> horse : GetActive().values())
|
||||
{
|
||||
if(horse.getEntity().getPassenger() != horse.getOwner()) continue;
|
||||
|
||||
if(Recharge.Instance.usable(horse.getOwner(), "Reindeer Fly")) continue;
|
||||
|
||||
horse.getEntity().setVelocity(horse.getOwner().getLocation().getDirection().normalize().add(new Vector(0,0.4,0)));
|
||||
|
||||
horse.getEntity().getWorld().playSound(horse.getEntity().getLocation(), Sound.HORSE_BREATHE, 0.3f, 0.5f);
|
||||
|
||||
UtilParticle.PlayParticleToAll(ParticleType.EXPLODE, horse.getEntity().getLocation(), 0.2f,0.0f,0.2f, 0.0f, 10, ViewDist.NORMAL);
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onClick(PlayerInteractEntityEvent event)
|
||||
{
|
||||
if(!IsActive(event.getPlayer())) return;
|
||||
SingleEntityMountData<Horse>data = getMountData(event.getRightClicked());
|
||||
if(data == null) return;
|
||||
if(data.getOwner() != event.getPlayer()) return;
|
||||
data.getEntity().setPassenger(data.getOwner());
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onJump(HorseJumpEvent event)
|
||||
{
|
||||
SingleEntityMountData<Horse> data = getMountData(event.getEntity());
|
||||
if(data == null) return;
|
||||
|
||||
event.setCancelled(true);
|
||||
if(UtilEnt.isGrounded(event.getEntity()))
|
||||
{
|
||||
if(Recharge.Instance.use(data.getOwner(), "Reindeer Fly", 1000, false, false))
|
||||
{
|
||||
event.getEntity().getWorld().playSound(event.getEntity().getLocation(), Sound.HORSE_ANGRY, 1f, 1f);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -36,6 +36,12 @@ public class MountTitan extends Mount<MountTitanData>
|
||||
@Override
|
||||
public void EnableCustom(Player player)
|
||||
{
|
||||
if(GetActive().size() >= 3)
|
||||
{
|
||||
UtilPlayer.message(player, F.main("Mount", "The maximum amount of simultaneous " + F.elem(GetName()) + " in this lobby has been reached."));
|
||||
return;
|
||||
}
|
||||
|
||||
player.leaveVehicle();
|
||||
player.eject();
|
||||
|
||||
|
@ -1,19 +1,16 @@
|
||||
package mineplex.core.pet;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import mineplex.core.common.util.NautHashMap;
|
||||
import mineplex.core.pet.repository.PetRepository;
|
||||
import mineplex.core.pet.repository.token.PetExtraToken;
|
||||
import mineplex.core.pet.repository.token.PetSalesToken;
|
||||
import mineplex.core.pet.types.Elf;
|
||||
import mineplex.core.pet.types.Pumpkin;
|
||||
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.EntityType;
|
||||
|
||||
import mineplex.core.common.util.NautHashMap;
|
||||
import mineplex.core.pet.repository.PetRepository;
|
||||
import mineplex.core.pet.types.Elf;
|
||||
import mineplex.core.pet.types.PetCoalApparition;
|
||||
import mineplex.core.pet.types.Pumpkin;
|
||||
|
||||
public class PetFactory
|
||||
{
|
||||
private PetRepository _repository;
|
||||
@ -33,6 +30,7 @@ public class PetFactory
|
||||
private void CreatePets()
|
||||
{
|
||||
_pets.put(EntityType.ZOMBIE, new Pumpkin());
|
||||
_pets.put(EntityType.PIG_ZOMBIE, new PetCoalApparition());
|
||||
_pets.put(EntityType.VILLAGER, new Elf());
|
||||
_pets.put(EntityType.PIG, new Pet("Pig", EntityType.PIG, 5000));
|
||||
_pets.put(EntityType.SHEEP, new Pet("Sheep", EntityType.SHEEP, 3000));
|
||||
|
@ -4,11 +4,38 @@ import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.Sound;
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftCreature;
|
||||
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPigZombie;
|
||||
import org.bukkit.entity.Ageable;
|
||||
import org.bukkit.entity.Creature;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.PigZombie;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Skeleton;
|
||||
import org.bukkit.entity.Villager;
|
||||
import org.bukkit.entity.Zombie;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
import org.bukkit.event.entity.EntityTargetEvent;
|
||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import mineplex.core.MiniClientPlugin;
|
||||
import mineplex.core.pet.repository.PetRepository;
|
||||
import mineplex.core.pet.repository.token.ClientPetTokenWrapper;
|
||||
import mineplex.core.updater.event.UpdateEvent;
|
||||
import mineplex.core.updater.UpdateType;
|
||||
import mineplex.core.account.CoreClientManager;
|
||||
import mineplex.core.account.event.ClientWebResponseEvent;
|
||||
import mineplex.core.blockrestore.BlockRestore;
|
||||
@ -17,50 +44,22 @@ import mineplex.core.common.util.NautHashMap;
|
||||
import mineplex.core.common.util.UtilAction;
|
||||
import mineplex.core.common.util.UtilAlg;
|
||||
import mineplex.core.common.util.UtilEnt;
|
||||
import mineplex.core.common.util.UtilParticle;
|
||||
import mineplex.core.common.util.UtilParticle.ParticleType;
|
||||
import mineplex.core.common.util.UtilParticle.ViewDist;
|
||||
import mineplex.core.common.util.UtilServer;
|
||||
import mineplex.core.disguise.DisguiseManager;
|
||||
import mineplex.core.disguise.disguises.DisguiseGuardian;
|
||||
import mineplex.core.disguise.disguises.DisguiseWither;
|
||||
import mineplex.core.donation.DonationManager;
|
||||
import mineplex.core.inventory.InventoryManager;
|
||||
import mineplex.core.pet.repository.PetRepository;
|
||||
import mineplex.core.pet.repository.token.ClientPetTokenWrapper;
|
||||
import mineplex.core.updater.UpdateType;
|
||||
import mineplex.core.updater.event.UpdateEvent;
|
||||
import net.minecraft.server.v1_8_R3.EntityCreature;
|
||||
import net.minecraft.server.v1_8_R3.EntityWither;
|
||||
import net.minecraft.server.v1_8_R3.Navigation;
|
||||
import net.minecraft.server.v1_8_R3.NavigationAbstract;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.block.Block;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import org.bukkit.craftbukkit.v1_8_R3.CraftWorld;
|
||||
import org.bukkit.craftbukkit.v1_8_R3.entity.CraftCreature;
|
||||
import org.bukkit.entity.Ageable;
|
||||
import org.bukkit.entity.Creature;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Guardian;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Skeleton;
|
||||
import org.bukkit.entity.Villager;
|
||||
import org.bukkit.entity.Zombie;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
import org.bukkit.event.entity.EntityTargetEvent;
|
||||
import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
|
||||
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
|
||||
import org.bukkit.event.player.PlayerInteractEntityEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.event.player.PlayerQuitEvent;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
public class PetManager extends MiniClientPlugin<PetClient>
|
||||
{
|
||||
private static Object _petOwnerSynch = new Object();
|
||||
@ -228,6 +227,12 @@ public class PetManager extends MiniClientPlugin<PetClient>
|
||||
pet.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 99999999, 0));
|
||||
UtilEnt.silence(pet, true);
|
||||
}
|
||||
if (pet instanceof PigZombie)
|
||||
{
|
||||
((PigZombie)pet).setBaby(true);
|
||||
pet.getEquipment().setHelmet(new ItemStack(Material.SKULL_ITEM, 1, (short)0, (byte) 1));
|
||||
pet.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 99999999, 0));
|
||||
}
|
||||
else if (pet instanceof Villager)
|
||||
{
|
||||
((Villager) pet).setBaby();
|
||||
@ -342,6 +347,22 @@ public class PetManager extends MiniClientPlugin<PetClient>
|
||||
@EventHandler
|
||||
public void onUpdate(UpdateEvent event)
|
||||
{
|
||||
if (event.getType() == UpdateType.TICK)
|
||||
{
|
||||
for(Creature pet : _activePetOwners.values())
|
||||
{
|
||||
if(pet instanceof PigZombie)
|
||||
{
|
||||
UtilParticle.PlayParticleToAll(ParticleType.LARGE_SMOKE, pet.getLocation(), 0.2f,0.0f,0.2f, 0.0f, 4, ViewDist.NORMAL);
|
||||
if(event.getTick()%3 == 0) pet.getWorld().playSound(pet.getLocation(), Sound.BLAZE_BREATH, 0.1f, 0f);
|
||||
if(!((CraftPigZombie)pet).getHandle().isSilent())
|
||||
{
|
||||
((CraftPigZombie)pet).getHandle().setSilent(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (event.getType() != UpdateType.FAST)
|
||||
return;
|
||||
|
||||
|
@ -0,0 +1,14 @@
|
||||
package mineplex.core.pet.types;
|
||||
|
||||
import org.bukkit.entity.EntityType;
|
||||
|
||||
import mineplex.core.pet.Pet;
|
||||
|
||||
public class PetCoalApparition extends Pet
|
||||
{
|
||||
public PetCoalApparition()
|
||||
{
|
||||
super("Coal Apparition", EntityType.PIG_ZOMBIE, 10);
|
||||
}
|
||||
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
package mineplex.core.updater.event;
|
||||
|
||||
import mineplex.core.updater.UpdateType;
|
||||
import net.minecraft.server.v1_8_R3.MinecraftServer;
|
||||
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
@ -20,6 +21,11 @@ public class UpdateEvent extends Event
|
||||
return _type;
|
||||
}
|
||||
|
||||
public int getTick()
|
||||
{
|
||||
return MinecraftServer.currentTick;
|
||||
}
|
||||
|
||||
public HandlerList getHandlers()
|
||||
{
|
||||
return handlers;
|
||||
|
@ -169,7 +169,7 @@ public class DisguiseCommand extends CommandBase<ArcadeManager> implements Liste
|
||||
|
||||
changeName(caller, args[0], true);
|
||||
|
||||
Plugin.getCosmeticManager().getGadgetManager().RemoveItem(caller);
|
||||
Plugin.getCosmeticManager().getGadgetManager().removeGadetType(caller, GadgetType.Item);
|
||||
|
||||
Bukkit.broadcastMessage(ChatColor.DARK_GRAY + "Quit> " + ChatColor.GRAY + _disguisedPlayersNames.get(caller));
|
||||
UtilPlayer.message(caller, C.cGreen + C.Bold + "Disguise Active: " + ChatColor.RESET + args[0]);
|
||||
|
Loading…
Reference in New Issue
Block a user