func registerInterfaceProvider(eh EventInterfaceProvider) {
	if _, ok := registeredInterfaceProviders[eh.Type()]; ok {
		return
	}
	registeredInterfaceProviders[eh.Type()] = eh
	return
}
registerInterfaceProvider registers a provider so that DiscordGo can
access it's New() method.
package discordgo
type EventHandler interface {
	Type() string
	Handle(*Session, interface{})
}
type EventInterfaceProvider interface {
	Type() string
	New() interface{}
}
const interfaceEventType = "__INTERFACE__"
type interfaceEventHandler func(*Session, interface{})
func (eh interfaceEventHandler) Type() string {
	return interfaceEventType
}
func (eh interfaceEventHandler) Handle(s *Session, i interface{}) {
	eh(s, i)
}
var registeredInterfaceProviders = map[string]EventInterfaceProvider{}