diff --git a/client.go b/client.go index f49db57..7cced1d 100644 --- a/client.go +++ b/client.go @@ -12,13 +12,18 @@ import ( const MSG_BUFFER int = 10 const HELP_TEXT string = `-> Available commands: - /about - /exit - /help - /list - /uptime - /nick $NAME - /whois $NAME + /about - About this chat + /exit - Exit the chat + /help - Show this help text + /list - List the users that are currently connected + /me $ACTION - Show yourself doing an action + /nick $NAME - Rename yourself to a new name + /whois $NAME - Display information about another connected user +` +const OP_HELP_TEXT string = `-> Available operator commands: + /ban $NAME - Banish a user from the chat + /op $NAME - Promote a user to server operator + /silence $NAME - Revoke a user's ability to speak ` const ABOUT_TEXT string = `-> ssh-chat is made by @shazow. @@ -30,6 +35,7 @@ const ABOUT_TEXT string = `-> ssh-chat is made by @shazow. For more, visit shazow.net or follow at twitter.com/shazow ` + type Client struct { Server *Server Conn *ssh.ServerConn @@ -132,6 +138,9 @@ func (c *Client) handleShell(channel ssh.Channel) { channel.Close() case "/help": c.WriteLines(strings.Split(HELP_TEXT, "\n")) + if c.Server.IsOp(c) { + c.WriteLines(strings.Split(OP_HELP_TEXT, "\n")) + } case "/about": c.WriteLines(strings.Split(ABOUT_TEXT, "\n")) case "/uptime": @@ -231,7 +240,7 @@ func (c *Client) handleShell(channel ssh.Channel) { } msg := fmt.Sprintf("%s: %s", c.ColoredName(), line) - if c.IsSilenced() || len(msg) > 1000 { + if c.IsSilenced() || len(msg) > 1000 || len(line) < 1 { c.Msg <- fmt.Sprintf("-> Message rejected.") continue }