mirror of
https://github.com/ergochat/ergo.git
synced 2025-12-20 10:10:08 -08:00
minimal channel mode command
This commit is contained in:
parent
a0eed1d687
commit
d8951e1b48
4 changed files with 68 additions and 11 deletions
|
|
@ -348,11 +348,7 @@ func NewPrivMsgCommand(args []string) (EditableCommand, error) {
|
|||
}
|
||||
|
||||
func (m *PrivMsgCommand) TargetIsChannel() bool {
|
||||
switch m.target[0] {
|
||||
case '&', '#', '+', '!':
|
||||
return true
|
||||
}
|
||||
return false
|
||||
return IsChannel(m.target)
|
||||
}
|
||||
|
||||
// TOPIC [newtopic]
|
||||
|
|
@ -428,11 +424,22 @@ func stringToRunes(str string) <-chan rune {
|
|||
return runes
|
||||
}
|
||||
|
||||
func NewModeCommand(args []string) (EditableCommand, error) {
|
||||
if len(args) == 0 {
|
||||
return nil, NotEnoughArgsError
|
||||
}
|
||||
type ChannelModeCommand struct {
|
||||
BaseCommand
|
||||
channel string
|
||||
}
|
||||
|
||||
// MODE <channel> *( ( "-" / "+" ) *<modes> *<modeparams> )
|
||||
func NewChannelModeCommand(args []string) (EditableCommand, error) {
|
||||
cmd := &ChannelModeCommand{
|
||||
channel: args[0],
|
||||
}
|
||||
// TODO implement channel mode changes
|
||||
return cmd, nil
|
||||
}
|
||||
|
||||
// MODE <nickname> *( ( "+" / "-" ) *( "i" / "w" / "o" / "O" / "r" ) )
|
||||
func NewUserModeCommand(args []string) (EditableCommand, error) {
|
||||
cmd := &ModeCommand{
|
||||
nickname: args[0],
|
||||
changes: make([]ModeChange,
|
||||
|
|
@ -460,12 +467,25 @@ func NewModeCommand(args []string) (EditableCommand, error) {
|
|||
return cmd, nil
|
||||
}
|
||||
|
||||
func NewModeCommand(args []string) (EditableCommand, error) {
|
||||
if len(args) == 0 {
|
||||
return nil, NotEnoughArgsError
|
||||
}
|
||||
|
||||
if IsChannel(args[0]) {
|
||||
return NewChannelModeCommand(args)
|
||||
} else {
|
||||
return NewUserModeCommand(args)
|
||||
}
|
||||
}
|
||||
|
||||
type WhoisCommand struct {
|
||||
BaseCommand
|
||||
target string
|
||||
masks []string
|
||||
}
|
||||
|
||||
// [ <target> ] <mask> *( "," <mask> )
|
||||
func NewWhoisCommand(args []string) (EditableCommand, error) {
|
||||
if len(args) < 1 {
|
||||
return nil, NotEnoughArgsError
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue