Ok so maybe it'll be helpful. This is in mod main class:
@Mod(modid=modInfo.MODID, name=modInfo.MODNAME, version=modInfo.VERSION)
public class LittleFeatures
{
@Instance(modInfo.MODID)
public static LittleFeatures instance;
@EventHandler
public void init(FMLInitializationEvent event)
{
EntitiesList.entities();
}
public static void registerEntity(Class entityClass, String name, int id)
{
EntityRegistry.registerModEntity(entityClass, name, id, instance, 64, 1, true);
}
}
EntitiesList.java:
public class EntitiesList {
public static void entities()
{
LittleFeatures.registerEntity(EntityAutoArmorStand.class, "autoArmorStand", 364545);
}
}
EntityAutoArmorStand.java (i copied all of the EntityArmorStand(minecraft's armor stand), changed variables' names and added this code):
public class EntityAutoArmorStand extends EntityLivingBase
{
private int timer = 0; //for timer
private boolean isActive = true;
public void onLivingUpdate() //cooldown timer, based on ticks
{
if(isActive == false && timer < 60)
{
timer++;
}
else if(timer >= 60 && isActive == false)
{
isActive = true;
timer = 0;
}
}
public void onCollideWithPlayer(EntityPlayer player)
{
if(isActive == true)
{
int playerX = player.getPosition().getX();
int playerY = player.getPosition().getY();
int playerZ = player.getPosition().getZ();
int thisX = this.getPosition().getX();
int thisY = this.getPosition().getY();
int thisZ = this.getPosition().getZ();
if(playerX == thisX && playerY == thisY && playerZ == thisZ && !player.isSpectator() && !player.isInvisible())
{
swapItemsWithPlayer(player, EntityEquipmentSlot.MAINHAND);
swapItemsWithPlayer(player, EntityEquipmentSlot.OFFHAND);
swapItemsWithPlayer(player, EntityEquipmentSlot.HEAD);
swapItemsWithPlayer(player, EntityEquipmentSlot.CHEST);
swapItemsWithPlayer(player, EntityEquipmentSlot.LEGS);
swapItemsWithPlayer(player, EntityEquipmentSlot.FEET);
isActive = false;
}
}
}
private void swapItemsWithPlayer(EntityPlayer player, EntityEquipmentSlot slot)
{
if(player.getItemStackFromSlot(slot) != null && this.getItemStackFromSlot(slot) == null)
{
this.setItemStackToSlot(slot, player.getItemStackFromSlot(slot));
player.setItemStackToSlot(slot, null);
}
else if(player.getItemStackFromSlot(slot) == null && this.getItemStackFromSlot(slot) != null)
{
player.setItemStackToSlot(slot, this.getItemStackFromSlot(slot));
this.setItemStackToSlot(slot, null);
this.playEquipSound(player.getItemStackFromSlot(slot));
}
else if(player.getItemStackFromSlot(slot) != null && this.getItemStackFromSlot(slot) != null)
{
ItemStack playerStack = player.getItemStackFromSlot(slot);
ItemStack thisStack = this.getItemStackFromSlot(slot);
this.setItemStackToSlot(slot, playerStack);
player.setItemStackToSlot(slot, thisStack);
}
}