@Override
  public void syncEntity(Entity e) {
    if (e == null) {
      return;
    }

    Controller c = e.getController();
    if (c != null) {
      EntityProtocol ep = c.getType().getEntityProtocol(VanillaPlugin.VANILLA_PROTOCOL_ID);
      if (ep != null) {
        Message[] sync = ep.getUpdateMessage(e);
        if (sync != null) {
          session.sendAll(false, sync);
        }
      }
    }
    super.syncEntity(e);
  }
  @Override
  public void destroyEntity(Entity e) {
    if (e == null) {
      return;
    }

    Controller c = e.getController();
    if (c != null) {
      EntityProtocol ep = c.getType().getEntityProtocol(VanillaPlugin.VANILLA_PROTOCOL_ID);
      if (ep != null) {
        Message[] death = ep.getDestroyMessage(e);
        if (death != null) {
          session.sendAll(false, death);
        }
      }
    }
    super.destroyEntity(e);
  }