1
0
Fork 0
mirror of https://github.com/diamondburned/arikawa.git synced 2025-02-12 14:33:26 +00:00

Added some helper functions

This commit is contained in:
diamondburned (Forefront) 2020-01-20 17:06:51 -08:00
parent 075980582e
commit c7d33f5dcc
2 changed files with 63 additions and 3 deletions

View file

@ -31,15 +31,23 @@ func (t *Timestamp) UnmarshalJSON(v []byte) error {
}
func (t Timestamp) MarshalJSON() ([]byte, error) {
if time.Time(t).IsZero() {
if !t.Valid() {
return []byte("null"), nil
}
return []byte(`"` + time.Time(t).Format(TimestampFormat) + `"`), nil
return []byte(`"` + t.Format(TimestampFormat) + `"`), nil
}
func (t Timestamp) Valid() bool {
return !time.Time(t).IsZero()
return !t.Time().IsZero()
}
func (t Timestamp) Format(fmt string) string {
return t.Time().Format(fmt)
}
func (t Timestamp) Time() time.Time {
return time.Time(t)
}
//

View file

@ -76,6 +76,58 @@ func (s *State) Unhook() {
s.unhooker()
}
//// Helper methods
func (s *State) AuthorDisplayName(message discord.Message) string {
if !message.GuildID.Valid() {
return message.Author.Username
}
n, err := s.MemberDisplayName(message.GuildID, message.Author.ID)
if err != nil {
return message.Author.Username
}
return n
}
func (s *State) MemberDisplayName(
guildID, userID discord.Snowflake) (string, error) {
member, err := s.Member(guildID, userID)
if err != nil {
return "", err
}
if member.Nick == "" {
return member.User.Username, nil
}
return member.Nick, nil
}
func (s *State) AuthorColor(message discord.Message) discord.Color {
if !message.GuildID.Valid() {
return discord.DefaultMemberColor
}
return s.MemberColor(message.GuildID, message.Author.ID)
}
func (s *State) MemberColor(guildID, userID discord.Snowflake) discord.Color {
member, err := s.Member(guildID, userID)
if err != nil {
return discord.DefaultMemberColor
}
guild, err := s.Guild(guildID)
if err != nil {
return discord.DefaultMemberColor
}
return discord.MemberColor(*guild, *member)
}
////
func (s *State) Permissions(