You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: player.go
    path of file: ./repos/zinx/zinx_app_demo/mmo_game/core
    
    the code of the file until where you have to start completion: package core

import (
	"fmt"
	"math/rand"
	"sync"
	"time"

	"github.com/aceld/zinx/ziface"
	"github.com/aceld/zinx/zinx_app_demo/mmo_game/pb"
	"github.com/golang/pro
    
func (p *Player) GetSurroundingPlayers() []*Player {
	// Get all pIDs in the current AOI area
	// 得到当前AOI区域的所有pID
	pIDs := WorldMgrObj.AoiMgr.GetPIDsByPos(p.X, p.Z)

	// Put all players corresponding to pIDs into the Player slice
	// 将所有pID对应的Player放到Player切片中
	players := make([]*Player, 0, len(pIDs))
	for _, pID := range pIDs {
		players = append(players, WorldMgrObj.GetPlayerByPID(int32(pID)))
	}

	return players
}