def METHOD_NAME(self):
    # get human reply
    reply = Message(
        {
            'id': self.getID(),
            'label_candidates': self.fixedCands_txt,
            'episode_done': False,
        }
    )
    reply_text = self.get_reply()
    # check if human reply is offensive
    self.self_offensive = self.check_offensive(reply_text)
    while self.self_offensive:
        print(OFFENSIVE_USER_REPLY)
        reply_text = self.get_reply()
        # check if human reply is offensive
        self.self_offensive = self.check_offensive(reply_text)
    # check for episode done
    if '[DONE]' in reply_text or self.opt.get('single_turn', False):
        raise StopIteration
    # set reply text
    reply['text'] = reply_text
    # check if finished
    if '[EXIT]' in reply_text:
        self.finished = True
        raise StopIteration
    return reply