Skip to content

Commit af8ee46

Browse files
committed
refactor: Add message.Author.ID(), remove a bunch of type assertions
1 parent 7603720 commit af8ee46

File tree

7 files changed

+23
-23
lines changed

7 files changed

+23
-23
lines changed

chat/command.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ func InitCommands(c *Commands) {
111111
c.Add(Command{
112112
Prefix: "/help",
113113
Handler: func(room *Room, msg message.CommandMsg) error {
114-
op := room.IsOp(msg.From().(Member))
114+
op := room.IsOp(msg.From())
115115
room.Send(message.NewSystemMsg(room.commands.Help(op), msg.From()))
116116
return nil
117117
},
@@ -150,7 +150,7 @@ func InitCommands(c *Commands) {
150150
if len(args) != 1 {
151151
return ErrMissingArg
152152
}
153-
member, ok := room.MemberByID(msg.From().(Member).ID())
153+
member, ok := room.MemberByID(msg.From().ID())
154154
if !ok {
155155
return ErrMissingMember
156156
}
@@ -253,7 +253,7 @@ func InitCommands(c *Commands) {
253253
PrefixHelp: "[USER]",
254254
Help: "Hide messages from USER, /unignore USER to stop hiding.",
255255
Handler: func(room *Room, msg message.CommandMsg) error {
256-
from, ok := room.Member(msg.From().(Member))
256+
from, ok := room.Member(msg.From())
257257
if !ok {
258258
return ErrMissingMember
259259
}
@@ -278,7 +278,7 @@ func InitCommands(c *Commands) {
278278
return nil
279279
}
280280

281-
if id == msg.From().(Member).ID() {
281+
if id == msg.From().ID() {
282282
return errors.New("cannot ignore self")
283283
}
284284
target, ok := room.MemberByID(id)
@@ -302,7 +302,7 @@ func InitCommands(c *Commands) {
302302
Prefix: "/unignore",
303303
PrefixHelp: "USER",
304304
Handler: func(room *Room, msg message.CommandMsg) error {
305-
from, ok := room.Member(msg.From().(Member))
305+
from, ok := room.Member(msg.From())
306306
if !ok {
307307
return ErrMissingMember
308308
}

chat/member.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ type roomMember struct {
1616
type Member interface {
1717
message.Author
1818

19-
ID() string
2019
SetName(string)
2120

2221
Config() message.UserConfig

chat/message/message.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
)
88

99
type Author interface {
10+
ID() string
1011
Name() string
1112
Color() int
1213
}

chat/message/screen.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func HandledScreen(name string, handler func(Message) error) *handledScreen {
3939

4040
func Screen(name string) *baseScreen {
4141
return &baseScreen{
42-
User: NewUser(name),
42+
user: NewUser(name),
4343
}
4444
}
4545

@@ -71,7 +71,7 @@ func (u *pipedScreen) Send(m Message) error {
7171
// User container that knows about writing to an IO screen.
7272
type baseScreen struct {
7373
sync.Mutex
74-
*User
74+
*user
7575
}
7676

7777
func (u *baseScreen) Config() UserConfig {

chat/message/user.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@ import (
88
const reHighlight = `\b(%s)\b`
99

1010
// User definition, implemented set Item interface and io.Writer
11-
type User struct {
11+
type user struct {
1212
joined time.Time
1313

1414
name string
1515
config UserConfig
1616
replyTo Author // Set when user gets a /msg, for replying.
1717
}
1818

19-
func NewUser(name string) *User {
20-
u := User{
19+
func NewUser(name string) *user {
20+
u := user{
2121
name: name,
2222
config: DefaultUserConfig,
2323
joined: time.Now(),
@@ -27,18 +27,18 @@ func NewUser(name string) *User {
2727
return &u
2828
}
2929

30-
func (u *User) Name() string {
30+
func (u *user) Name() string {
3131
return u.name
3232
}
3333

34-
func (u *User) Color() int {
34+
func (u *user) Color() int {
3535
return u.config.Seed
3636
}
3737

38-
func (u *User) ID() string {
38+
func (u *user) ID() string {
3939
return SanitizeName(u.name)
4040
}
4141

42-
func (u *User) Joined() time.Time {
42+
func (u *user) Joined() time.Time {
4343
return u.joined
4444
}

chat/room.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ func (r *Room) HandleMsg(m message.Message) {
9292
roomMember := item.Value().(*roomMember)
9393
user := roomMember.Member
9494

95-
if fromMsg != nil && fromMsg.From() != nil && roomMember.Ignored.In(fromMsg.From().(Member).ID()) {
95+
if fromMsg != nil && fromMsg.From() != nil && roomMember.Ignored.In(fromMsg.From().ID()) {
9696
// Skip because ignored
9797
return
9898
}
@@ -182,7 +182,7 @@ func (r *Room) Rename(oldID string, u Member) error {
182182

183183
// Member returns a corresponding Member object to a User if the Member is
184184
// present in this room.
185-
func (r *Room) Member(u Member) (*roomMember, bool) {
185+
func (r *Room) Member(u message.Author) (*roomMember, bool) {
186186
m, ok := r.MemberByID(u.ID())
187187
if !ok {
188188
return nil, false
@@ -204,7 +204,7 @@ func (r *Room) MemberByID(id string) (*roomMember, bool) {
204204
}
205205

206206
// IsOp returns whether a user is an operator in this room.
207-
func (r *Room) IsOp(u Member) bool {
207+
func (r *Room) IsOp(u message.Author) bool {
208208
return r.Ops.In(u.ID())
209209
}
210210

host.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ func (h *Host) InitCommands(c *chat.Commands) {
341341
}
342342

343343
var whois string
344-
switch room.IsOp(msg.From().(chat.Member)) {
344+
switch room.IsOp(msg.From()) {
345345
case true:
346346
whois = whoisAdmin(target)
347347
case false:
@@ -377,7 +377,7 @@ func (h *Host) InitCommands(c *chat.Commands) {
377377
PrefixHelp: "USER [DURATION]",
378378
Help: "Set USER as admin.",
379379
Handler: func(room *chat.Room, msg message.CommandMsg) error {
380-
if !room.IsOp(msg.From().(chat.Member)) {
380+
if !room.IsOp(msg.From()) {
381381
return errors.New("must be op")
382382
}
383383

@@ -423,7 +423,7 @@ func (h *Host) InitCommands(c *chat.Commands) {
423423
Help: "Ban USER from the server.",
424424
Handler: func(room *chat.Room, msg message.CommandMsg) error {
425425
// TODO: Would be nice to specify what to ban. Key? Ip? etc.
426-
if !room.IsOp(msg.From().(chat.Member)) {
426+
if !room.IsOp(msg.From()) {
427427
return errors.New("must be op")
428428
}
429429

@@ -463,7 +463,7 @@ func (h *Host) InitCommands(c *chat.Commands) {
463463
PrefixHelp: "USER",
464464
Help: "Kick USER from the server.",
465465
Handler: func(room *chat.Room, msg message.CommandMsg) error {
466-
if !room.IsOp(msg.From().(chat.Member)) {
466+
if !room.IsOp(msg.From()) {
467467
return errors.New("must be op")
468468
}
469469

@@ -501,7 +501,7 @@ func (h *Host) InitCommands(c *chat.Commands) {
501501
room.Send(message.NewSystemMsg(motd, user))
502502
return nil
503503
}
504-
if !room.IsOp(user.(chat.Member)) {
504+
if !room.IsOp(user) {
505505
return errors.New("must be OP to modify the MOTD")
506506
}
507507

0 commit comments

Comments
 (0)