From cce7c3519817ca8c8802a59983b0a98eb4fa86a1 Mon Sep 17 00:00:00 2001 From: nemoola <144327005+nemoola@users.noreply.github.com> Date: Sat, 2 Mar 2024 00:19:20 +0900 Subject: [PATCH] Undo structs.DisplayName() and structs_test.go --- structs.go | 9 +++++++++ structs_test.go | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 structs_test.go diff --git a/structs.go b/structs.go index ae653d0d7..0a0d38d15 100644 --- a/structs.go +++ b/structs.go @@ -1557,6 +1557,15 @@ func (m *Member) AvatarURL(size string) string { } +// DisplayName returns the member's guild nickname if they have one, +// otherwise it returns their discord display name. +func (m *Member) DisplayName() string { + if m.Nick != "" { + return m.Nick + } + return m.User.GlobalName +} + // ClientStatus stores the online, offline, idle, or dnd status of each device of a Guild member. type ClientStatus struct { Desktop Status `json:"desktop"` diff --git a/structs_test.go b/structs_test.go new file mode 100644 index 000000000..cde552067 --- /dev/null +++ b/structs_test.go @@ -0,0 +1,36 @@ +// Discordgo - Discord bindings for Go +// Available at https://github.com/bwmarrin/discordgo + +// Copyright 2015-2016 Bruce Marriner . All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package discordgo + +import ( + "testing" +) + +func TestMember_DisplayName(t *testing.T) { + user := &User{ + GlobalName: "Global", + } + t.Run("no server nickname set", func(t *testing.T) { + m := &Member{ + Nick: "", + User: user, + } + if dn := m.DisplayName(); dn != user.GlobalName { + t.Errorf("Member.DisplayName() = %v, want %v", dn, user.GlobalName) + } + }) + t.Run("server nickname set", func(t *testing.T) { + m := &Member{ + Nick: "Server", + User: user, + } + if dn := m.DisplayName(); dn != m.Nick { + t.Errorf("Member.DisplayName() = %v, want %v", dn, m.Nick) + } + }) +}