use of org.pircbotx.Channel in project downlords-faf-client by FAForever.
the class ChatUser method fromIrcUser.
public static ChatUser fromIrcUser(User user, Color color) {
String username = user.getNick() != null ? user.getNick() : user.getLogin();
Set<String> moderatorInChannels = new HashSet<>();
for (Channel channel : user.getChannels()) {
ImmutableSortedSet<UserLevel> userLevels = user.getUserLevels(channel);
for (UserLevel userLevel : userLevels) {
switch(userLevel) {
case OP:
case HALFOP:
case SUPEROP:
case OWNER:
moderatorInChannels.add(channel.getName());
break;
default:
}
}
}
return new ChatUser(username, moderatorInChannels, color);
}
use of org.pircbotx.Channel in project LanteaBot by PC-Logix.
the class TimedBans method initHook.
@Override
protected void initHook() {
command_timed = new Command("timed", Permissions.MOD) {
@Override
public CommandChainStateObject onExecuteSuccess(Command command, String nick, String target, GenericMessageEvent event, String params) {
Helper.sendMessage(target, trySubCommandsMessage(params), nick);
return new CommandChainStateObject();
}
};
command_ban = new Command("ban", new CommandArgumentParser(1, new CommandArgument(ArgumentTypes.STRING, "Nick"), new CommandArgument(ArgumentTypes.STRING, "Time"), new CommandArgument(ArgumentTypes.STRING, "Reason"))) {
@Override
public CommandChainStateObject onExecuteSuccess(Command command, String nick, String target, GenericMessageEvent event, ArrayList<String> params) throws Exception {
String subject = this.argumentParser.getArgument("Nick");
String time = this.argumentParser.getArgument("Time");
if (time == null)
time = "1h";
String reason = this.argumentParser.getArgument("Reason");
if (reason == null)
reason = "";
String result = setTimedEvent("ban", nick, target, subject, time, reason, null);
if (result != null)
Helper.sendMessage(target, result, nick);
return new CommandChainStateObject();
}
};
command_ban.setHelpText("Issue a timed ban.");
command_quiet = new Command("quiet", new CommandArgumentParser(1, new CommandArgument(ArgumentTypes.STRING, "Nick"), new CommandArgument(ArgumentTypes.STRING, "Time"), new CommandArgument(ArgumentTypes.STRING, "Reason"))) {
@Override
public CommandChainStateObject onExecuteSuccess(Command command, String nick, String target, GenericMessageEvent event, ArrayList<String> params) throws Exception {
String time = this.argumentParser.getArgument("Time");
if (time == null)
time = "1h";
String reason = this.argumentParser.getArgument("Reason");
if (reason == null)
reason = "";
String result = setTimedEvent("quiet", nick, target, this.argumentParser.getArgument("Nick"), time, reason, null);
if (result != null)
Helper.sendMessage(target, result, nick);
return new CommandChainStateObject();
}
};
command_quiet.setHelpText("Issue a timed quiet.");
command_list = new Command("list") {
@Override
public CommandChainStateObject onExecuteSuccess(Command command, String nick, String target, GenericMessageEvent event, String params) throws Exception {
PreparedStatement getTimedBans = Database.getPreparedStatement("getTimedBansForChannel");
getTimedBans.setString(1, target);
ResultSet results = getTimedBans.executeQuery();
int count = 0;
while (results.next()) {
count++;
// IRCBot.getInstance();
if (results.getString(7).equals("ban")) {
Date date = new Date(results.getLong(4));
DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
format.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
String formatted = format.format(date);
Helper.sendMessage(target, "Timed ban of " + results.getString(2) + " Expires at " + formatted + " UTC. Placed by: " + results.getString(5));
} else {
Date date = new Date(results.getLong(4));
DateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
format.setTimeZone(TimeZone.getTimeZone("Etc/UTC"));
String formatted = format.format(date);
Helper.sendMessage(target, "Timed quiet of " + results.getString(2) + " Expires at " + formatted + " UTC. Placed by: " + results.getString(5));
}
}
if (count == 0)
Helper.sendMessage(target, "There are no bans or quiets at the moment. Why not add a few?");
return new CommandChainStateObject();
}
};
command_list.setHelpText("List timed bans and quiets.");
command_timed.registerSubCommand(command_ban);
command_timed.registerSubCommand(command_quiet);
command_timed.registerSubCommand(command_list);
command_quiet.registerSubCommand(command_list);
command_ban.registerSubCommand(command_list);
command_timed.registerAlias("tquiet", "quiet");
command_timed.registerAlias("tempquiet", "quiet");
command_timed.registerAlias("timedquiet", "quiet");
command_timed.registerAlias("tban", "ban");
command_timed.registerAlias("tempban", "ban");
command_timed.registerAlias("timedban", "ban");
command_timed.registerAlias("tlist", "list");
IRCBot.registerCommand(command_timed);
Database.addStatement("CREATE TABLE IF NOT EXISTS TimedBans(channel, username, hostmask, expires, placedby, reason, type)");
Database.addUpdateQuery(1, "ALTER TABLE TimedBans ADD type");
Database.addPreparedStatement("addTimedBan", "INSERT INTO TimedBans(channel, username, hostmask, expires, placedby, reason, type) VALUES (?,?,?,?,?,?,?);");
Database.addPreparedStatement("getTimedBans", "SELECT channel, username, hostmask, expires, placedby, reason, type FROM TimedBans WHERE expires <= ?;");
Database.addPreparedStatement("getTimedBansForChannel", "SELECT channel, username, hostmask, expires, placedby, reason, type FROM TimedBans WHERE channel <= ?;");
Database.addPreparedStatement("delTimedBan", "DELETE FROM TimedBans WHERE expires = ? AND username = ? AND channel = ? AND type = ?;");
ScheduledExecutorService ses = Executors.newSingleThreadScheduledExecutor();
ses.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
try {
IRCBot.getInstance();
if (IRCBot.bot != null) {
long epoch = System.currentTimeMillis();
PreparedStatement getTimedBans = Database.getPreparedStatement("getTimedBans");
getTimedBans.setLong(1, epoch);
ResultSet results = getTimedBans.executeQuery();
if (results.next()) {
IRCBot.getInstance();
for (Channel chan : IRCBot.bot.getUserBot().getChannels()) {
if (chan.getName().equals(results.getString(1))) {
if (results.getString(7).equals("ban")) {
Helper.sendMessage("chanserv", "unban " + results.getString(1) + " " + results.getString(3));
} else {
Helper.sendMessage("chanserv", "unquiet " + results.getString(1) + " " + results.getString(3));
}
PreparedStatement delTimedBan = Database.getPreparedStatement("delTimedBan");
delTimedBan.setLong(1, results.getLong(4));
delTimedBan.setString(2, results.getString(2));
delTimedBan.setString(3, results.getString(1));
delTimedBan.setString(4, results.getString(7));
delTimedBan.execute();
}
}
}
}
return;
} catch (Exception e) {
e.printStackTrace();
}
}
}, 0, 1, TimeUnit.SECONDS);
}
use of org.pircbotx.Channel in project LanteaBot by PC-Logix.
the class Announcements method initHook.
@Override
protected void initHook() {
initCommands();
local_command_announce.registerSubCommand(local_command_add);
local_command_announce.registerSubCommand(local_command_list);
local_command_announce.registerSubCommand(local_command_remove);
local_command_announce.registerSubCommand(local_command_reload);
IRCBot.registerCommand(local_command_announce);
Database.addStatement("CREATE TABLE IF NOT EXISTS Announcements(channel, schedule, lastran, title, message)");
Database.addPreparedStatement("addAnnounce", "INSERT INTO Announcements(channel, schedule, message) VALUES (?,?,?);");
Database.addPreparedStatement("getAnnounce", "SELECT schedule, title, message FROM Announcements WHERE channel = ?;");
Database.addPreparedStatement("getAllAnnounce", "SELECT schedule, title, message, channel FROM Announcements;");
Database.addPreparedStatement("delAnnounce", "DELETE FROM Announcements WHERE title = ? AND channel = ?;");
Database.addUpdateQuery(8, "ALTER TABLE Announcements ADD lastran INTEGER DEFAULT 0 NULL");
ScheduledExecutorService ses = Executors.newSingleThreadScheduledExecutor();
ses.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
try {
if (IRCBot.bot != null) {
long epoch = System.currentTimeMillis();
PreparedStatement getAllAnnounce = Database.getPreparedStatement("getAllAnnounce");
// getTimedBans.setString(1, epoch);
ResultSet results = getAllAnnounce.executeQuery();
if (results.next()) {
IRCBot.getInstance();
for (Channel chan : IRCBot.bot.getUserBot().getChannels()) {
if (chan.getName().equals(results.getString(1))) {
PreparedStatement getAnnounce = Database.getPreparedStatement("getAnnounce");
getAnnounce.setString(1, chan.getName());
ResultSet res = getAnnounce.executeQuery();
}
}
}
}
return;
} catch (Exception e) {
e.printStackTrace();
}
}
}, 0, 1, TimeUnit.SECONDS);
}
Aggregations