| 1234567891011121314151617181920212223242526272829303132333435363738394041 | package outboundimport (	"math/rand"	v2net "github.com/v2ray/v2ray-core/common/net"	"github.com/v2ray/v2ray-core/proxy/vmess")type Receiver struct {	Address  v2net.Address	Accounts []vmess.User}type ReceiverManager struct {	receivers []*Receiver}func NewReceiverManager(receivers []*Receiver) *ReceiverManager {	return &ReceiverManager{		receivers: receivers,	}}func (this *ReceiverManager) PickReceiver() (v2net.Address, vmess.User) {	receiverLen := len(this.receivers)	receiverIdx := 0	if receiverLen > 1 {		receiverIdx = rand.Intn(receiverLen)	}	receiver := this.receivers[receiverIdx]	userLen := len(receiver.Accounts)	userIdx := 0	if userLen > 1 {		userIdx = rand.Intn(userLen)	}	user := receiver.Accounts[userIdx]	return receiver.Address, user}
 |