public static void handleItemOnObject(final Player player, WorldObject object, Item item) {
		player.getControlerManager().startControler("WGuildControler", new Object[] { });
		if(isArmour(item.getId())) {
			if(player.getY() != 3533) {
				player.getPackets().sendGameMessage("You cannot add the armour from this side.");
				return;
			}
			int npcId = 0;
			int armourSlot = 0;
			switch(getArmour(item)) {
			case "bronze":
				npcId = 4278;
				armourSlot = 1;
				break;
			case "iron":
				npcId = 4279;
				armourSlot = 0;
				break;
			case "steel":
				npcId = 4280;
				armourSlot = 2;
				break;
			case "mithril":
				npcId = 4282;
				armourSlot = 3;
				break;
			case "adamant":
				npcId = 4283;
				armourSlot = 4;
				break;
			case "rune":
				npcId = 4284;
				armourSlot = 5;
				break;
			}
			final int finalNpc = npcId;
			if(!contains(player, ARMOURS[armourSlot])) {
				player.getPackets().sendGameMessage("You do not have all the required armour pieces.");
				return;
			}
			player.setNextAnimation(new Animation(827));
			player.getPackets().sendGameMessage("You place the armour on the animator and it starts to glow");
			deleteItems(player, ARMOURS[armourSlot]);
			WorldTasksManager.schedule(new WorldTask() {
				@Override
				public void run() {
					player.addWalkSteps(player.getX(), player.getY()+5);
					stop();
				}
			}, 3);
			WorldTasksManager.schedule(new WorldTask() {
				@Override
				public void run() {
					animatedArmour = new AnimatedArmour(finalNpc, new WorldTile(player.getX(), player.getY()-5, player.getPlane()), -1, true, true);
					animatedArmour.setNextForceTalk(new ForceTalk("I'm ALIVE!"));
					animatedArmour.addWalkSteps(animatedArmour.getX(), animatedArmour.getY()+4);
					animatedArmour.setTarget(player);
					((AnimatedArmour) animatedArmour).setPlayerCon(player);
					animatedArmour.setAttackedBy(player);
					player.getHintIconsManager().addHintIcon(animatedArmour, 0, -1, false);
					stop();
				}
			}, 6);
		}
	}