Example #1
0
func InvokeUserInit(componentList []string, user *User, p netfw.IPeer, param ...interface{}) error {

	// 防止重复注册
	user.Ev.Clear()

	var err error

	for _, cname := range componentList {

		// 在加载列表里没有的组件, 就不参与初始化了
		if !p.HasComponent(cname) {

			continue
		}

		ie, ok := p.GetComponent(cname).(IUserEvent)

		if !ok {
			continue
		}

		if err = ie.OnUserInit(user, param...); err != nil {
			return err
		}
	}

	return nil
}