mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-10 22:19:31 +01:00
client: Forego the ForceTrailing func, just automagically work it out based on the command name
This commit is contained in:
parent
b257c5955e
commit
c2fedfb177
@ -534,18 +534,16 @@ func (client *Client) SendFromClient(msgid string, from *Client, tags *map[strin
|
|||||||
return client.Send(tags, from.nickMaskString, command, params...)
|
return client.Send(tags, from.nickMaskString, command, params...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
// these are all the output commands that MUST have their last param be a trailing
|
||||||
|
commandsThatMustUseTrailing = map[string]bool{
|
||||||
|
"PRIVMSG": true,
|
||||||
|
"NOTICE": true,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
// Send sends an IRC line to the client.
|
// Send sends an IRC line to the client.
|
||||||
func (client *Client) Send(tags *map[string]ircmsg.TagValue, prefix string, command string, params ...string) error {
|
func (client *Client) Send(tags *map[string]ircmsg.TagValue, prefix string, command string, params ...string) error {
|
||||||
return client.send(false, tags, prefix, command, params...)
|
|
||||||
}
|
|
||||||
|
|
||||||
// SendForceTrailing sends an IRC line to the client, forcing the last param to be a trailing.
|
|
||||||
// This is a hack. However, there are clients that treat special chars differently.
|
|
||||||
func (client *Client) SendForceTrailing(tags *map[string]ircmsg.TagValue, prefix string, command string, params ...string) error {
|
|
||||||
return client.send(true, tags, prefix, command, params...)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (client *Client) send(forceTrailing bool, tags *map[string]ircmsg.TagValue, prefix string, command string, params ...string) error {
|
|
||||||
// attach server-time
|
// attach server-time
|
||||||
if client.capabilities[ServerTime] {
|
if client.capabilities[ServerTime] {
|
||||||
if tags == nil {
|
if tags == nil {
|
||||||
@ -557,7 +555,7 @@ func (client *Client) send(forceTrailing bool, tags *map[string]ircmsg.TagValue,
|
|||||||
|
|
||||||
// force trailing
|
// force trailing
|
||||||
var usedSpaceHack bool
|
var usedSpaceHack bool
|
||||||
if forceTrailing && len(params) > 0 {
|
if commandsThatMustUseTrailing[strings.ToUpper(command)] && len(params) > 0 {
|
||||||
lastParam := params[len(params)-1]
|
lastParam := params[len(params)-1]
|
||||||
if !strings.Contains(lastParam, " ") {
|
if !strings.Contains(lastParam, " ") {
|
||||||
params[len(params)-1] = lastParam + " "
|
params[len(params)-1] = lastParam + " "
|
||||||
|
Loading…
Reference in New Issue
Block a user