package org.reunionemu.jreunion.server;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.reunionemu.jreunion.game.Item;
import org.reunionemu.jreunion.game.Pet;
import org.reunionemu.jreunion.game.Player;
import org.reunionemu.jreunion.game.Quest;
import org.reunionemu.jreunion.game.Pet.PetStatus;
public class PetManager {
private java.util.List<Pet> petList = new Vector<Pet>();
public PetManager(){
}
public void loadPets(){
petList = DatabaseUtils.getDinamicInstance().loadPets();
if(petList != null){
LoggerFactory.getLogger(this.getClass()).info("Loaded "+petList.size()+" pets");
}
}
public Pet getPet(int petid){
for(Pet pet : petList){
if(pet.getId() == petid){
return pet;
}
}
return null;
}
public Pet getPet(Player owner){
for(Pet pet : petList){
if(pet.getId() == owner.getPetId()){
return pet;
}
}
return null;
}
public synchronized boolean addPet(Pet pet){
if(pet!=null && !petList.contains(pet)){
petList.add(pet);
return true;
}
return false;
}
public synchronized boolean removePet(Pet pet){
if(pet == null){
return false;
}
while(petList.contains(pet)){
petList.remove(pet);
}
return true;
}
public boolean isEmpty(){
return petList.isEmpty();
}
public int geNumberOfPets(){
return petList.size();
}
public int getEggType(int race){
switch(race){
case 0: return 614;
case 1: return 615;
case 2: return 616;
case 3: return 617;
case 4: return 1161;
default: return -1;
}
}
public Iterator<Pet> getListIterator(){
return petList.iterator();
}
public java.util.List<Pet> getList(){
return petList;
}
public void buyEgg(Pet pet, int tab){
if(pet == null)
return;
Player player = pet.getOwner();
Item<?> egg = Server.getInstance().getWorld().getItemManager().create(getEggType(player.getRace().value()));
player.getPosition().getLocalMap().createEntityId(egg);
player.pickItem(egg, tab);
pet.sendStatus(PetStatus.STATE);
player.setLime(player.getLime() - 1000000);
player.setPet(pet);
player.save();
player.setPetId(pet.getId());
addPet(pet);
LoggerFactory.getLogger(this.getClass()).info("Player: "+player+" bought Pet Egg: "+pet);
}
}