@Override
  public <T> void watch(int i, T t0) {

    if (i == ENTITY_FLAGS_ID) {
      byte newFlags = ((Number) t0).byteValue();
      if ((newFlags & SNEAK_FLAG) == SNEAK_FLAG) {
        _isDismountPressed = true;

        if (!_canDismount) return;
      } else {
        _isDismountPressed = false;
      }
    } else if (i == ARROW_STICK_ID) {
      if (!_canArrowsStick && ((Number) t0).byteValue() != 0) return;
    }
    _watcher.watch(i, t0);
  }
 @Override
 public void removeArrows() {
   _watcher.watch(ARROW_STICK_ID, (byte) 0);
 }