func DeleteOwnReaction(client httd.Deleter, channelID, messageID Snowflake, emoji interface{}) (err error) {
	if channelID.Empty() {
		err = errors.New("channelID must be set to target the correct channel")
		return
	}
	if messageID.Empty() {
		err = errors.New("messageID must be set to target the specific channel message")
		return
	}
	if emoji == nil {
		err = errors.New("emoji must be set in order to create a message reaction")
		return
	}

	emojiCode := ""
	if _, ok := emoji.(*Emoji); ok {
		emojiCode = emoji.(*Emoji).ID.String()
	} else if _, ok := emoji.(string); ok {
		emojiCode = emoji.(string) // unicode
	} else {
		return errors.New("emoji type can only be a unicode string or a *Emoji struct")
	}

	resp, _, err := client.Delete(&httd.Request{
		Ratelimiter: ratelimitChannelMessagesDelete(channelID),
		Endpoint:    endpoint.ChannelMessageReactionMe(channelID, messageID, emojiCode),
	})
	if err != nil {
		return
	}

	if resp.StatusCode != http.StatusNoContent {
		msg := "unexpected http response code. Got " + resp.Status + ", wants " + http.StatusText(http.StatusNoContent)
		err = errors.New(msg)
	}
	return
}
// DeleteOwnReaction [DELETE]   Delete a reaction the current user has made for the message. Returns a 204
//                              empty response on success.
// Endpoint                     /channels/{channel.id}/messages/{message.id}/reactions/{emoji}/@me
// Rate limiter [MAJOR]         /channels/{channel.id}/messages [DELETE] TODO: I have no idea what the key is
// Discord documentation        https://discordapp.com/developers/docs/resources/channel#delete-own-reaction
// Reviewed                     2018-06-07
// Comment                      emoji either unicode (string) or *Emoji with an snowflake Snowflake if it's custom
DeleteOwnReaction [DELETE]   Delete a reaction the current user has made for the message. Returns a 204
empty response on success.
// DeleteOwnReaction [ DELETE ] Delete a reaction the current user has made for the message . Returns a 204 // empty response on success . // Endpoint / channels / { channel . id } / messages / { message . id } / reactions / { emoji } / @me // Rate limiter [ MAJOR ] / channels / { channel . id } / messages [ DELETE ] TODO : I have no idea what the key is // Discord documentation https : // discordapp . com / developers / docs / resources / channel#delete - own - reaction // Reviewed 2018 - 06 - 07 // Comment emoji either unicode ( string ) or * Emoji with an snowflake Snowflake if it ' s custom
func DeleteOwnReaction(client httd.Deleter, channelID, messageID Snowflake, emoji interface{}) (err error) {
	if channelID.Empty() {
		err = errors.New("channelID must be set to target the correct channel")
		return
	}
	if messageID.Empty() {
		err = errors.New("messageID must be set to target the specific channel message")
		return
	}
	if emoji == nil {
		err = errors.New("emoji must be set in order to create a message reaction")
		return
	}
	emojiCode := ""
	if _, ok := emoji.(*Emoji); ok {
		emojiCode = emoji.(*Emoji).ID.String()
	} else if _, ok := emoji.(string); ok {
		emojiCode = emoji.(string) 
	} else {
		return errors.New("emoji type can only be a unicode string or a *Emoji struct")
	}
	resp, _, err := client.Delete(&httd.Request{
		Ratelimiter: ratelimitChannelMessagesDelete(channelID),
		Endpoint:    endpoint.ChannelMessageReactionMe(channelID, messageID, emojiCode),
	})
	if err != nil {
		return
	}
	if resp.StatusCode != http.StatusNoContent {
		msg := "unexpected http response code. Got " + resp.Status + ", wants " + http.StatusText(http.StatusNoContent)
		err = errors.New(msg)
	}
	return
}
func DeleteOwnReaction ( client httd . Deleter , channelID , messageID Snowflake , emoji interface { } ) ( err error ) { if channelID . Empty ( ) { err = errors . New ( " " ) return } if messageID . Empty ( ) { err = errors . New ( " " ) return } if emoji == nil { err = errors . New ( " " ) return } emojiCode := " " if _ , ok := emoji . ( * Emoji ) ; ok { emojiCode = emoji . ( * Emoji ) . ID . String ( ) } else if _ , ok := emoji . ( string ) ; ok { emojiCode = emoji . ( string ) } else { return errors . New ( " " ) } resp , _ , err := client . Delete ( & httd . Request { Ratelimiter : ratelimitChannelMessagesDelete ( channelID ) , Endpoint : endpoint . ChannelMessageReactionMe ( channelID , messageID , emojiCode ) , } ) if err != nil { return } if resp . StatusCode != http . StatusNoContent { msg := " " + resp . Status + " " + http . StatusText ( http . StatusNoContent ) err = errors . New ( msg ) } return }
DeleteOwnReaction [DELETE]   Delete a reaction the current user has made for the message.
DeleteOwnReaction [ DELETE ] Delete a reaction the current user has made for the message .
// unicode