Finish ChickenTaunt

This commit is contained in:
Sam 2018-06-01 01:23:57 +01:00 committed by Alexander Meech
parent 1a36305586
commit 0f8765d0c5
1 changed files with 36 additions and 16 deletions

View File

@ -13,6 +13,8 @@ import org.bukkit.Sound;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import com.mojang.authlib.GameProfile;
import mineplex.core.common.util.C; import mineplex.core.common.util.C;
import mineplex.core.common.util.F; import mineplex.core.common.util.F;
import mineplex.core.common.util.UtilItem; import mineplex.core.common.util.UtilItem;
@ -20,7 +22,7 @@ import mineplex.core.common.util.UtilParticle;
import mineplex.core.common.util.UtilParticle.ParticleType; import mineplex.core.common.util.UtilParticle.ParticleType;
import mineplex.core.common.util.UtilParticle.ViewDist; import mineplex.core.common.util.UtilParticle.ViewDist;
import mineplex.core.disguise.disguises.DisguiseBase; import mineplex.core.disguise.disguises.DisguiseBase;
import mineplex.core.disguise.disguises.DisguiseChicken; import mineplex.core.disguise.disguises.DisguisePlayer;
import mineplex.core.gadget.GadgetManager; import mineplex.core.gadget.GadgetManager;
import mineplex.core.gadget.types.TauntGadget; import mineplex.core.gadget.types.TauntGadget;
import mineplex.core.gadget.util.CostConstants; import mineplex.core.gadget.util.CostConstants;
@ -32,24 +34,27 @@ import mineplex.core.updater.UpdateType;
public class ChickenTaunt extends TauntGadget public class ChickenTaunt extends TauntGadget
{ {
private static final int COOLDOWN = 3000, PVP_COOLDOWN = 10000; private static final int COOLDOWN = 30000, PVP_COOLDOWN = 10000;
private static final String CHICKEN_SKIN = "MHF_Chicken";
private final Map<UUID, DisguiseBase> _disguises = new HashMap<>(); private final Map<UUID, DisguiseBase> _disguises = new HashMap<>();
private GameProfile _cachedProfile;
public ChickenTaunt(GadgetManager manager) public ChickenTaunt(GadgetManager manager)
{ {
super(manager, "Chicken Taunt", new String[] super(manager, "Chicken Taunt", new String[]
{ {
C.cGray + "Baw Baw Bawk! It seems that", C.cGray + "Baw Baw Bawk! It seems that",
C.cGray + "everyone is too afraid to fight you", C.cGray + "everyone is too afraid to fight you",
C.cGray + "what a shame.", C.cGray + "what a shame.",
"", "",
C.cWhite + "Use /taunt in game to use this taunt.", C.cWhite + "Use /taunt in game to use this taunt.",
C.cRed + "Cannot be used while in PvP!" C.cRed + "Cannot be used while in PvP!"
}, CostConstants.POWERPLAY_BONUS, Material.GLASS, (byte) 0); }, CostConstants.POWERPLAY_BONUS, Material.GLASS, (byte) 0);
setDisplayItem(new ItemBuilder(Material.SKULL_ITEM, (byte) 3) setDisplayItem(new ItemBuilder(Material.SKULL_ITEM, (byte) 3)
.setPlayerHead("MHF_Chicken") .setPlayerHead(CHICKEN_SKIN)
.build()); .build());
setPPCYearMonth(YearMonth.of(2018, Month.JUNE)); setPPCYearMonth(YearMonth.of(2018, Month.JUNE));
setCanPlayWithPvp(false); setCanPlayWithPvp(false);
@ -75,11 +80,26 @@ public class ChickenTaunt extends TauntGadget
if (!Manager.getDisguiseManager().isDisguised(player)) if (!Manager.getDisguiseManager().isDisguised(player))
{ {
DisguiseChicken disguise = new DisguiseChicken(player); DisguisePlayer disguise;
disguise.setName(player.getName());
disguise.setCustomNameVisible(true); if (_cachedProfile == null)
Manager.getDisguiseManager().disguise(disguise); {
_disguises.put(player.getUniqueId(), disguise); disguise = new DisguisePlayer(player, player.getName(), CHICKEN_SKIN);
disguise.showInTabList(true, 0);
disguise.initialize(() ->
{
_cachedProfile = disguise.getProfile();
Manager.getDisguiseManager().disguise(disguise);
_disguises.put(player.getUniqueId(), disguise);
});
}
else
{
disguise = new DisguisePlayer(player, _cachedProfile);
disguise.showInTabList(true, 0);
Manager.getDisguiseManager().disguise(disguise);
_disguises.put(player.getUniqueId(), disguise);
}
} }
return true; return true;