hid: implement WALLOPS
This commit is contained in:
		
							
								
								
									
										20
									
								
								hid/main.go
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								hid/main.go
									
									
									
									
									
								
							@@ -2854,6 +2854,25 @@ func ircHandleLINKS(msg *message, c *client) {
 | 
			
		||||
	c.sendReply(RPL_ENDOFLINKS, mask)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func ircHandleWALLOPS(msg *message, c *client) {
 | 
			
		||||
	if len(msg.params) < 1 {
 | 
			
		||||
		c.sendReply(ERR_NEEDMOREPARAMS, msg.command)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	if 0 == c.mode&ircUserModeOperator {
 | 
			
		||||
		c.sendReply(ERR_NOPRIVILEGES)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Our interpretation: anonymize the sender,
 | 
			
		||||
	// and target all users who want to receive these messages.
 | 
			
		||||
	for _, client := range users {
 | 
			
		||||
		if client == c || 0 != client.mode&ircUserModeRxWallops {
 | 
			
		||||
			client.sendf(":%s WALLOPS :%s", serverName, msg.params[0])
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func ircHandleKILL(msg *message, c *client) {
 | 
			
		||||
	if len(msg.params) < 2 {
 | 
			
		||||
		c.sendReply(ERR_NEEDMOREPARAMS, msg.command)
 | 
			
		||||
@@ -2908,6 +2927,7 @@ var ircHandlers = map[string]*ircCommand{
 | 
			
		||||
	"ADMIN":    {true, ircHandleADMIN, 0, 0},
 | 
			
		||||
	"STATS":    {true, ircHandleSTATS, 0, 0},
 | 
			
		||||
	"LINKS":    {true, ircHandleLINKS, 0, 0},
 | 
			
		||||
	"WALLOPS":  {true, ircHandleWALLOPS, 0, 0},
 | 
			
		||||
 | 
			
		||||
	"MODE":    {true, ircHandleMODE, 0, 0},
 | 
			
		||||
	"PRIVMSG": {true, ircHandlePRIVMSG, 0, 0},
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user