Improved dealing with ignored nicks.

This commit is contained in:
Erik C. Thauvin 2019-04-20 05:30:44 -07:00
parent 57a02f9ffb
commit a43ef4f0e3

View file

@ -85,8 +85,10 @@ import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections; import java.util.Collections;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Properties; import java.util.Properties;
import java.util.Set;
import java.util.StringTokenizer; import java.util.StringTokenizer;
/** /**
@ -170,7 +172,7 @@ public class Mobibot extends PircBot {
// The history/backlogs array. // The history/backlogs array.
private final List<String> history = new ArrayList<>(0); private final List<String> history = new ArrayList<>(0);
// The ignored nicks array. // The ignored nicks array.
private final List<String> ignoredNicks = new ArrayList<>(0); private final Set<String> ignoredNicks = new HashSet<>(0);
// The main channel. // The main channel.
private final String ircChannel; private final String ircChannel;
// The IRC port. // The IRC port.
@ -785,20 +787,16 @@ public class Mobibot extends PircBot {
if (!isOp(sender)) { if (!isOp(sender)) {
final String nick = sender.toLowerCase(); final String nick = sender.toLowerCase();
final boolean isMe = args.toLowerCase().startsWith(Commands.IGNORE_ME_KEYWORD); final boolean isMe = args.toLowerCase().startsWith(Commands.IGNORE_ME_KEYWORD);
if (ignoredNicks.contains(nick)) {
if (isMe) { if (isMe) {
ignoredNicks.remove(nick); if (ignoredNicks.remove(nick)) {
send(sender, "You are no longer ignored."); send(sender, "You are no longer ignored.");
} else { } else {
send(sender, "You are currently ignored."); ignoredNicks.add(nick);
send(sender, "You are now ignored.");
} }
} else { } else {
if (isMe) { if (ignoredNicks.contains(nick)) {
ignoredNicks.add(nick); send(sender, "You are currently ignored.");
send(sender, "You are now ignored.");
} else { } else {
send(sender, "You are not currently ignored."); send(sender, "You are not currently ignored.");
} }
@ -816,9 +814,7 @@ public class Mobibot extends PircBot {
ignore = nick; ignore = nick;
} }
if (ignoredNicks.contains(ignore)) { if (!ignoredNicks.remove(ignore)) {
ignoredNicks.remove(ignore);
} else {
ignoredNicks.add(ignore); ignoredNicks.add(ignore);
} }
} }