public void copyDataTo(String playername) {
    try {
      if(!playername.equalsIgnoreCase(this.player)) {
        Player to = Bukkit.getPlayerExact(playername);
        Player from = Bukkit.getPlayerExact(this.player);
        if(from != null) {
          from.saveData();
        }
        Files.copy(this.file, new File(this.file.getParentFile(), playername + ".dat"));
        if(to != null) {
          to.teleport(from == null ? getLocation() : from.getLocation());
          to.loadData();
        }
      }
      else {
        Player player = Bukkit.getPlayerExact(this.player);
        if(player != null) {
          player.saveData();
        }
      }
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }