encap("*", "SVSMODE", u.getUID(), u.getNickTS(), modes);
}
+ public static void svsmode(User u, final String modes, final String extarg)
+ {
+ encap("*", "SVSMODE", u.getUID(), u.getNickTS(), modes, extarg);
+ }
+
public static void chgident(User u, final String host)
{
encap("*", "CHGIDENT", u.getUID(), host);
private static final Logger log = LoggerFactory.getLogger(User.class);
private String nick, user, host, vhost, name, identnick, modes, UID, ip,
- certfp, authflags, su;
+ certfp, authflags, su, snomask;
private String cloakedIp, cloakedHost;
private int nickTS, conTS;
private Server server;
this.certfp = "";
this.authflags = "";
this.su = "";
+
+ /*
+ * i'm not sure if this is just how plexus handles it
+ * or if it's irc protocol for empty snomasks.
+ *
+ * -!- Mode change [-s] for user kristina
+ * -!- + Server notice mask
+ */
+ this.snomask = "+";
+
oldNicks = new ArrayList<String>();
chans = new Hashtable<String, ArrayList<Integer>>();
chanList = new HashSet<Channel>();
return this.ip.equals("255.255.255.255") || this.ip.equals("0");
}
+ public void setSnomask(String s)
+ {
+ /* see comment in ctor */
+ if (s.isEmpty())
+ snomask = "+";
+ else
+ snomask = s;
+ }
+
+ public String getSnomask()
+ {
+ return snomask;
+ }
+
public void onQuit()
{
for (Iterator<Channel> it = chanList.iterator(); it.hasNext();)
import net.rizon.acid.core.Server;
import net.rizon.acid.core.User;
import net.rizon.acid.util.Util;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class Encap extends Message
{
+ private static final Logger log = LoggerFactory.getLogger(Encap.class);
+
public Encap()
{
super("ENCAP");
user.setCertFP(params[3]);
}
+ else if (params[1].equals("SNOMASK"))
+ {
+ User user = User.findUser(params[2]);
+ if (user == null)
+ {
+ log.warn("SNOMASK: Unable to find user {}", params[2]);
+ return;
+ }
+
+ user.setSnomask(params[3]);
+ log.debug("Snomask for {} changed to {}", user.getNick(), user.getSnomask());
+ }
else if (params[1].equals("AUTHFLAGS"))
{
User user = User.findUser(params[2]);