47 lines
731 B
Go
47 lines
731 B
Go
package entity
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"golang.org/x/term"
|
|
)
|
|
|
|
type ServerClient struct{}
|
|
|
|
func NewServerClient() *ServerClient {
|
|
return &ServerClient{}
|
|
}
|
|
|
|
func (c *ServerClient) Send(msg string) error {
|
|
fmt.Println(msg)
|
|
return nil
|
|
}
|
|
|
|
func (c *ServerClient) Username() string {
|
|
return "server"
|
|
}
|
|
|
|
type TerminalClient struct {
|
|
terminal *term.Terminal
|
|
username string
|
|
}
|
|
|
|
func NewTerminalClient(term *term.Terminal, username string) *TerminalClient {
|
|
return &TerminalClient{
|
|
terminal: term,
|
|
username: username,
|
|
}
|
|
}
|
|
|
|
func (c *TerminalClient) Send(msg string) error {
|
|
_, err := fmt.Fprintf(c.terminal, "%s\n", msg)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (c *TerminalClient) Username() string {
|
|
return c.username
|
|
}
|