Added disguise to Pet Manager for eventual wither disguised pet.

This commit is contained in:
Jonathan Williams 2014-12-14 02:30:39 -05:00
parent 718e02047e
commit 5b67e2182a
6 changed files with 26 additions and 76 deletions

View File

@ -40,7 +40,8 @@ public class PetFactory
_pets.put(EntityType.CHICKEN, new Pet("Chicken", EntityType.CHICKEN, 7000));
_pets.put(EntityType.WOLF, new Pet("Dog", EntityType.WOLF, 8000));
_pets.put(EntityType.OCELOT, new Pet("Cat", EntityType.OCELOT, 6000));
_pets.put(EntityType.MUSHROOM_COW, new Pet("Mooshroom", EntityType.MUSHROOM_COW, 5000));
_pets.put(EntityType.MUSHROOM_COW, new Pet("Mooshroom", EntityType.MUSHROOM_COW, 5000));
//_pets.put(EntityType.WITHER, new Pet("Widder", EntityType.SHEEP, 5));
List<PetSalesToken> petTokens = new ArrayList<PetSalesToken>();

View File

@ -1,6 +1,5 @@
package mineplex.core.pet;
import java.lang.reflect.Field;
import java.util.Iterator;
import java.util.Map.Entry;
@ -15,35 +14,25 @@ import mineplex.core.blockrestore.BlockRestore;
import mineplex.core.common.util.NautHashMap;
import mineplex.core.common.util.UtilEnt;
import mineplex.core.common.util.UtilServer;
import mineplex.core.disguise.DisguiseManager;
import mineplex.core.donation.DonationManager;
import net.minecraft.server.v1_7_R4.EntityCreature;
import net.minecraft.server.v1_7_R4.EntityHuman;
import net.minecraft.server.v1_7_R4.EntityInsentient;
import net.minecraft.server.v1_7_R4.EntitySnowman;
import net.minecraft.server.v1_7_R4.Navigation;
import net.minecraft.server.v1_7_R4.PathfinderGoalLookAtPlayer;
import net.minecraft.server.v1_7_R4.PathfinderGoalRandomLookaround;
import net.minecraft.server.v1_7_R4.PathfinderGoalSelector;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.craftbukkit.libs.com.google.gson.Gson;
import org.bukkit.craftbukkit.v1_7_R4.CraftWorld;
import org.bukkit.craftbukkit.v1_7_R4.entity.CraftCreature;
import org.bukkit.craftbukkit.v1_7_R4.entity.CraftSnowman;
import org.bukkit.entity.Ageable;
import org.bukkit.entity.Creature;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.entity.Snowman;
import org.bukkit.entity.Villager;
import org.bukkit.entity.Zombie;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.block.EntityBlockFormEvent;
import org.bukkit.event.entity.EntityChangeBlockEvent;
import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
@ -59,6 +48,7 @@ public class PetManager extends MiniClientPlugin<PetClient>
private static Object _petOwnerSynch = new Object();
private static Object _petRenameSynch = new Object();
private DisguiseManager _disguiseManager;
private mineplex.core.creature.Creature _creatureModule;
private PetRepository _repository;
private PetFactory _petFactory;
@ -66,18 +56,16 @@ public class PetManager extends MiniClientPlugin<PetClient>
private NautHashMap<String, Creature> _activePetOwners;
private NautHashMap<String, Integer> _failedAttempts;
private Field _goalSelector;
private Field _targetSelector;
private NautHashMap<String, EntityType> _petOwnerQueue = new NautHashMap<String, EntityType>();
private NautHashMap<String, String> _petRenameQueue = new NautHashMap<String, String>();
public PetManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, mineplex.core.creature.Creature creatureModule, BlockRestore restore, String webAddress)
public PetManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, DisguiseManager disguiseManager, mineplex.core.creature.Creature creatureModule, BlockRestore restore, String webAddress)
{
super("Pet Manager", plugin);
_creatureModule = creatureModule;
_disguiseManager = disguiseManager;
_repository = new PetRepository(webAddress);
_petFactory = new PetFactory(_repository);
_blockRestore = restore;
@ -163,11 +151,21 @@ public class PetManager extends MiniClientPlugin<PetClient>
pet.addPotionEffect(new PotionEffect(PotionEffectType.INVISIBILITY, 99999999, 0));
UtilEnt.silence(pet, true);
}
if (pet instanceof Villager)
else if (pet instanceof Villager)
{
((Villager) pet).setBaby();
((Villager) pet).setAgeLock(true);
}
/*
else if (pet instanceof Sheep)
{
DisguiseWither disguise = new DisguiseWither(pet);
disguise.s(350);
_disguiseManager.disguise(disguise);
UtilEnt.silence(pet, true);
}
*/
_activePetOwners.put(player.getName(), pet);
_failedAttempts.put(player.getName(), 0);
@ -178,7 +176,7 @@ public class PetManager extends MiniClientPlugin<PetClient>
((Ageable)pet).setAgeLock(true);
}
ClearPetGoals(pet);
UtilEnt.Vegetate(pet);
}
public Creature GetPet(Player player)
@ -324,43 +322,6 @@ public class PetManager extends MiniClientPlugin<PetClient>
}
}
}
private void ClearPetGoals(Creature pet)
{
try
{
_goalSelector = EntityInsentient.class.getDeclaredField("goalSelector");
_goalSelector.setAccessible(true);
_targetSelector = EntityInsentient.class.getDeclaredField("targetSelector");
_targetSelector.setAccessible(true);
EntityCreature creature = ((CraftCreature)pet).getHandle();
PathfinderGoalSelector goalSelector = new PathfinderGoalSelector(((CraftWorld)pet.getWorld()).getHandle().methodProfiler);
goalSelector.a(0, new PathfinderGoalLookAtPlayer(creature, EntityHuman.class, 6.0F));
goalSelector.a(1, new PathfinderGoalRandomLookaround(creature));
_goalSelector.set(creature, goalSelector);
_targetSelector.set(creature, new PathfinderGoalSelector(((CraftWorld)pet.getWorld()).getHandle().methodProfiler));
}
catch (IllegalArgumentException e)
{
e.printStackTrace();
}
catch (IllegalAccessException e)
{
e.printStackTrace();
}
catch (NoSuchFieldException e)
{
e.printStackTrace();
}
catch (SecurityException e)
{
e.printStackTrace();
}
}
@EventHandler
public void OnClientWebResponse(ClientWebResponseEvent event)
@ -401,16 +362,4 @@ public class PetManager extends MiniClientPlugin<PetClient>
for (Player player : UtilServer.getPlayers())
RemovePet(player, true);
}
// @EventHandler
// public void snowmanTrailClean(EntityBlockFormEvent event)
// {
// if (event.isCancelled())
// return;
//
// if (event.getEntity() instanceof Snowman)
// {
// _blockRestore.Add(event.getBlock(), 78, (byte)0, 0, (byte)0, 6000);
// }
// }
}

View File

@ -66,7 +66,7 @@ public class Clans extends JavaPlugin
PreferencesManager preferenceManager = new PreferencesManager(this, _clientManager, _donationManager);
new MessageManager(this, _clientManager, preferenceManager);
ServerStatusManager serverStatusManager = new ServerStatusManager(this, new LagMeter(this, _clientManager));
ServerStatusManager serverStatusManager = new ServerStatusManager(this, _clientManager, new LagMeter(this, _clientManager));
new Spawn(this, serverStatusManager.getCurrentServerName());
Teleport teleport = new Teleport(this);
Portal portal = new Portal(this, serverStatusManager.getCurrentServerName());

View File

@ -85,21 +85,21 @@ public class Hub extends JavaPlugin implements IRelation
new ServerConfiguration(this);
//Other Modules
PacketHandler packetHandler = new PacketHandler(this);
DisguiseManager disguiseManager = new DisguiseManager(this, packetHandler);
PreferencesManager preferenceManager = new PreferencesManager(this, clientManager, donationManager);
preferenceManager.GiveItem = true;
new MessageManager(this, clientManager, preferenceManager);
Creature creature = new Creature(this);
NpcManager npcManager = new NpcManager(this, creature);
PetManager petManager = new PetManager(this, clientManager, donationManager, creature, blockRestore, webServerAddress);
PetManager petManager = new PetManager(this, clientManager, donationManager, disguiseManager, creature, blockRestore, webServerAddress);
PollManager pollManager = new PollManager(this, clientManager, donationManager);
//Main Modules
ServerStatusManager serverStatusManager = new ServerStatusManager(this, new LagMeter(this, clientManager));
ServerStatusManager serverStatusManager = new ServerStatusManager(this, clientManager, new LagMeter(this, clientManager));
PartyManager partyManager = new PartyManager(this, clientManager, preferenceManager);
Portal portal = new Portal(this, serverStatusManager.getCurrentServerName());
AntiHack.Initialize(this, punish, portal, preferenceManager, clientManager);
PacketHandler packetHandler = new PacketHandler(this);
DisguiseManager disguiseManager = new DisguiseManager(this, packetHandler);
StatsManager statsManager = new StatsManager(this, clientManager);
AchievementManager achievementManager = new AchievementManager(statsManager, clientManager, donationManager);
HubManager hubManager = new HubManager(this, blockRestore, clientManager, donationManager, new ConditionManager(this), disguiseManager, new TaskManager(this, webServerAddress), portal, partyManager, preferenceManager, petManager, pollManager, statsManager, achievementManager, new HologramManager(this));

View File

@ -48,7 +48,7 @@ public class StaffServer extends JavaPlugin
new Punish(this, webServerAddress, clientManager);
new NpcManager(this, new Creature(this));
ServerStatusManager serverStatusManager = new ServerStatusManager(this, new LagMeter(this, clientManager));
ServerStatusManager serverStatusManager = new ServerStatusManager(this, clientManager, new LagMeter(this, clientManager));
PreferencesManager preferenceManager = new PreferencesManager(this, clientManager, donationManager);
preferenceManager.GiveItem = false;

View File

@ -90,7 +90,7 @@ public class Arcade extends JavaPlugin
new MessageManager(this, _clientManager, preferenceManager);
Creature creature = new Creature(this);
ServerStatusManager serverStatusManager = new ServerStatusManager(this, new LagMeter(this, _clientManager));
ServerStatusManager serverStatusManager = new ServerStatusManager(this, _clientManager, new LagMeter(this, _clientManager));
new Spawn(this, serverStatusManager.getCurrentServerName());
Teleport teleport = new Teleport(this);
Portal portal = new Portal(this, serverStatusManager.getCurrentServerName());
@ -112,7 +112,7 @@ public class Arcade extends JavaPlugin
//Inventory
InventoryManager inventoryManager = new InventoryManager(this, _clientManager);
PetManager petManager = new PetManager(this, _clientManager, _donationManager, creature, blockRestore, webServerAddress);
PetManager petManager = new PetManager(this, _clientManager, _donationManager, disguiseManager, creature, blockRestore, webServerAddress);
MountManager mountManager = new MountManager(this, _clientManager, _donationManager, blockRestore, disguiseManager);
GadgetManager gadgetManager = new GadgetManager(this, _clientManager, _donationManager, inventoryManager, mountManager, petManager, preferenceManager, disguiseManager, blockRestore, projectileManager);
CosmeticManager cosmeticManager = new CosmeticManager(this, _clientManager, _donationManager, inventoryManager, gadgetManager, mountManager, petManager, null);