Mineplex/GOD DAMN COSMETICS/gadget/gadgets/outfit/OutfitTeam.java
Daniel Waggner 38a20f98c2 Removed Files
These two directories contain code that was removed from the src and dependencies of the compiled files. They were removed due to being either a. unnecessary or b. a royal pain in my booty.
2021-05-23 18:13:37 -07:00

253 lines
6.5 KiB
Java

package mineplex.core.gadget.gadgets.outfit;
import java.util.HashMap;
import mineplex.core.gadget.event.GadgetAppliedEvent;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Color;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.LeatherArmorMeta;
import mineplex.core.common.util.C;
import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilGear;
import mineplex.core.common.util.UtilPlayer;
import mineplex.core.gadget.GadgetManager;
import mineplex.core.gadget.event.GadgetEnableEvent;
import mineplex.core.gadget.types.GadgetType;
import mineplex.core.gadget.types.OutfitGadget;
import mineplex.core.itemstack.ItemStackFactory;
import mineplex.core.recharge.Recharge;
public class OutfitTeam extends OutfitGadget
{
private boolean _enabled = true;
private HashMap<String, Color> _colorSetting = new HashMap<String, Color>();
public OutfitTeam(GadgetManager manager, String name,
int cost, ArmorSlot slot, Material mat, byte data)
{
super(manager, name, new String[] {ChatColor.RESET + "Team up with other players!", ChatColor.RESET + "Equip by typing;", ChatColor.RESET + C.cGreen + "/team <red/yellow/green/blue>"}, cost, slot, mat, data);
setHidden(true);
}
@Override
public void enable(Player player)
{
GadgetEnableEvent gadgetEvent = new GadgetEnableEvent(player, this);
Bukkit.getServer().getPluginManager().callEvent(gadgetEvent);
if (gadgetEvent.isCancelled())
{
return;
}
enableCustom(player, true);
Manager.setActive(player, this);
Bukkit.getServer().getPluginManager().callEvent(new GadgetAppliedEvent(player, this));
}
@Override
public void applyArmor(Player player, boolean message)
{
Manager.removeGadgetType(player, GadgetType.MORPH);
Manager.removeOutfit(player, _slot);
_active.add(player);
if (_slot == ArmorSlot.HELMET) player.getInventory().setHelmet(
ItemStackFactory.Instance.CreateStack(getDisplayMaterial().getId(), getDisplayData(), 1, getName()));
else if (_slot == ArmorSlot.CHEST) player.getInventory().setChestplate(
ItemStackFactory.Instance.CreateStack(getDisplayMaterial().getId(), getDisplayData(), 1, getName()));
else if (_slot == ArmorSlot.LEGS) player.getInventory().setLeggings(
ItemStackFactory.Instance.CreateStack(getDisplayMaterial().getId(), getDisplayData(), 1, getName()));
else if (_slot == ArmorSlot.BOOTS) player.getInventory().setBoots(
ItemStackFactory.Instance.CreateStack(getDisplayMaterial().getId(), getDisplayData(), 1, getName()));
}
@Override
public void removeArmor(Player player, boolean message)
{
if (!_active.remove(player))
return;
if (_slot == ArmorSlot.HELMET) player.getInventory().setHelmet(null);
else if (_slot == ArmorSlot.CHEST) player.getInventory().setChestplate(null);
else if (_slot == ArmorSlot.LEGS) player.getInventory().setLeggings(null);
else if (_slot == ArmorSlot.BOOTS) player.getInventory().setBoots(null);
}
@Override
public void enableCustom(Player player, boolean message)
{
applyArmor(player, message);
colorArmor(player);
}
@Override
public void disableCustom(Player player, boolean message)
{
removeArmor(player, message);
}
@EventHandler(priority=EventPriority.LOWEST)
public void setColor(PlayerCommandPreprocessEvent event)
{
if (!_enabled)
return;
Player player = event.getPlayer();
if (!event.getMessage().toLowerCase().startsWith("/team "))
return;
event.setCancelled(true);
String[] args = event.getMessage().toLowerCase().split(" ");
if (args.length < 2)
{
disable(player);
return;
}
//Will only display the message once
if (getSlot() == ArmorSlot.LEGS)
{
if (!Recharge.Instance.use(player, "Set Team Color", 20000, true, false))
return;
}
else
{
if (!Recharge.Instance.use(player, "Set Team Color " + getSlot(), 20000, false, false))
return;
}
//Color
if (args[1].equals("red"))
{
_colorSetting.put(player.getName(), Color.RED);
if (getSlot() == ArmorSlot.LEGS) //Only Display Once
UtilPlayer.message(player, F.main("Gadget", "You equipped " + F.elem(C.cRed + "Red Team Outfit") + "!"));
}
else if (args[1].equals("yellow"))
{
_colorSetting.put(player.getName(), Color.YELLOW);
if (getSlot() == ArmorSlot.LEGS) //Only Display Once
UtilPlayer.message(player, F.main("Gadget", "You equipped " + F.elem(C.cYellow + "Yellow Team Outfit") + "!"));
}
else if (args[1].equals("green"))
{
_colorSetting.put(player.getName(), Color.LIME);
if (getSlot() == ArmorSlot.LEGS) //Only Display Once
UtilPlayer.message(player, F.main("Gadget", "You equipped " + F.elem(C.cGreen + "Green Team Outfit") + "!"));
}
else if (args[1].equals("blue"))
{
_colorSetting.put(player.getName(), Color.AQUA);
if (getSlot() == ArmorSlot.LEGS) //Only Display Once
UtilPlayer.message(player, F.main("Gadget", "You equipped " + F.elem(C.cAqua + "Blue Team Outfit") + "!"));
}
else
return;
colorArmor(player);
enable(player);
}
private void colorArmor(Player player)
{
if (!_colorSetting.containsKey(player.getName()))
return;
//Get Item
ItemStack stack;
if (getSlot() == ArmorSlot.HELMET)
{
stack = player.getInventory().getHelmet();
if (!UtilGear.isMat(stack, getDisplayMaterial()))
{
disable(player);
return;
}
}
else if (getSlot() == ArmorSlot.CHEST)
{
stack = player.getInventory().getChestplate();
if (!UtilGear.isMat(stack, getDisplayMaterial()))
{
disable(player);
return;
}
}
else if (getSlot() == ArmorSlot.LEGS)
{
stack = player.getInventory().getLeggings();
if (!UtilGear.isMat(stack, getDisplayMaterial()))
{
disable(player);
return;
}
}
else if (getSlot() == ArmorSlot.BOOTS)
{
stack = player.getInventory().getBoots();
if (!UtilGear.isMat(stack, getDisplayMaterial()))
{
disable(player);
return;
}
}
else
{
return;
}
//Set!
LeatherArmorMeta meta = (LeatherArmorMeta)stack.getItemMeta();
meta.setColor(_colorSetting.get(player.getName()));
stack.setItemMeta(meta);
}
@EventHandler
public void playerQuit(PlayerQuitEvent event)
{
_colorSetting.remove(event.getPlayer().getName());
}
public Color getTeamColor(Player player)
{
return _colorSetting.get(player.getName());
}
public void setEnabled(boolean var)
{
_enabled = var;
}
}