Move player position persistence into a plugin