def METHOD_NAME(wrapper: MessageDispatcher, message: str):
    """Guard a player, preventing them from being killed that night."""
    if wrapper.source in GUARDED:
        wrapper.pm(messages["already_protecting"])
        return
    var = wrapper.game_state
    target = get_target(wrapper, re.split(" +", message)[0], not_self_message="cannot_guard_self")
    if not target:
        return
    target = try_misdirection(var, wrapper.source, target)
    if try_exchange(var, wrapper.source, target):
        return
    add_protection(var, target, wrapper.source, "bodyguard")
    GUARDED[wrapper.source] = target
    wrapper.pm(messages["protecting_target"].format(target))
    target.send(messages["target_protected"])