Skip to content
This repository has been archived by the owner on Jul 27, 2019. It is now read-only.

Commit

Permalink
Add sender option for custom commands. #102
Browse files Browse the repository at this point in the history
  • Loading branch information
cnaude committed Jan 26, 2015
1 parent 5bf7807 commit 0bd62d9
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 20 deletions.
10 changes: 2 additions & 8 deletions src/main/java/com/cnaude/purpleirc/CommandQueueWatcher.java
Expand Up @@ -54,14 +54,8 @@ private void queueAndSend() {
IRCCommand ircCommand = queue.poll();
if (ircCommand != null) {
try {
if (plugin.getServer().getVersion().contains("MC: 1.8")
&& plugin.getServer().getPluginCommand(ircCommand.getGameCommand()) == null) {
plugin.logDebug("Dispatching command as ConsoleSender: " + ircCommand.getGameCommand());
plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), ircCommand.getGameCommand());
} else {
plugin.logDebug("Dispatching command as IRCCommandSender: " + ircCommand.getGameCommand());
plugin.getServer().dispatchCommand(ircCommand.getIRCCommandSender(), ircCommand.getGameCommand());
}
plugin.logDebug("Dispatching command as IRCCommandSender: " + ircCommand.getGameCommand());
plugin.getServer().dispatchCommand(ircCommand.getIRCCommandSender(), ircCommand.getGameCommand());
} catch (CommandException ce) {
plugin.logError("Error running command: " + ce.getMessage());
}
Expand Down
10 changes: 6 additions & 4 deletions src/main/java/com/cnaude/purpleirc/IRCCommandSender.java
Expand Up @@ -36,6 +36,7 @@ public class IRCCommandSender implements CommandSender {
private final String target;
private final PurpleIRC plugin;
private final boolean ctcpResponse;
private final String name;

/**
*
Expand Down Expand Up @@ -64,20 +65,21 @@ private void addMessageToQueue(String message) {
plugin.colorConverter.gameColorsToIrc(message), ctcpResponse));
}

/**
/**
*
* @param ircBot
* @param target
* @param plugin
* @param ctcpResponse
* @param name
*/
public IRCCommandSender(PurpleBot ircBot, String target, PurpleIRC plugin, boolean ctcpResponse) {
public IRCCommandSender(PurpleBot ircBot, String target, PurpleIRC plugin, boolean ctcpResponse, String name) {
super();
this.target = target;
this.ircBot = ircBot;
this.plugin = plugin;
this.ctcpResponse = ctcpResponse;

this.name = name;
}

/**
Expand All @@ -95,7 +97,7 @@ public Server getServer() {
*/
@Override
public String getName() {
return "CONSOLE";
return name;
}

/**
Expand Down
15 changes: 8 additions & 7 deletions src/main/java/com/cnaude/purpleirc/PurpleBot.java
Expand Up @@ -858,6 +858,7 @@ private void loadConfig() {
optionPair.put("private", config.getString(commandKey + "private", "false"));
optionPair.put("ctcp", config.getString(commandKey + "ctcp", "false"));
optionPair.put("game_command", config.getString(commandKey + "game_command", ""));
optionPair.put("sender", config.getString(commandKey + "sender", "CONSOLE"));
extraCommands.addAll(config.getStringList(commandKey + "extra_commands"));
plugin.logDebug("extra_commands: " + extraCommands.toString());
optionPair.put("private_listen", config.getString(commandKey + "private_listen", "true"));
Expand Down Expand Up @@ -1964,15 +1965,15 @@ public void sendUserList(CommandSender sender, Channel channel) {
}
List<String> channelUsers = new ArrayList<>();
for (User user : channel.getUsers()) {
String nick = user.getNick();
nick = getNickPrefix(user, channel) + nick;
String n = user.getNick();
n = getNickPrefix(user, channel) + n;
if (user.isAway()) {
nick = nick + ChatColor.GRAY + " | Away";
n = n + ChatColor.GRAY + " | Away";
}
if (nick.equals(bot.getNick())) {
nick = ChatColor.DARK_PURPLE + nick;
if (n.equals(bot.getNick())) {
n = ChatColor.DARK_PURPLE + n;
}
channelUsers.add(nick);
channelUsers.add(n);
}
Collections.sort(channelUsers, Collator.getInstance());
for (String userName : channelUsers) {
Expand Down Expand Up @@ -2939,7 +2940,7 @@ public void joinNotice(Channel channel, User user) {
}
String myMessage = ChatColor.translateAlternateColorCodes('&', plugin.colorConverter.gameColorsToIrc(joinNoticeMessage.replace("%NAME%", user.getNick())));
if (joinNoticeMessage.startsWith("/")) {
plugin.commandQueue.add(new IRCCommand(new IRCCommandSender(this, target, plugin, joinNoticeCtcp), myMessage.trim().substring(1)));
plugin.commandQueue.add(new IRCCommand(new IRCCommandSender(this, target, plugin, joinNoticeCtcp, "CONSOLE"), myMessage.trim().substring(1)));
} else {
if (joinNoticeCtcp) {
asyncCTCPMessage(target, myMessage);
Expand Down
Expand Up @@ -97,6 +97,7 @@ public void processMessage(PurpleBot ircBot, User user, Channel channel, String
String perm = (String) ircBot.commandMap.get(myChannel).get(command).get("perm");
boolean privateCommand = Boolean.parseBoolean(ircBot.commandMap.get(myChannel).get(command).get("private"));
boolean ctcpResponse = Boolean.parseBoolean(ircBot.commandMap.get(myChannel).get(command).get("ctcp"));
String senderName = ircBot.commandMap.get(myChannel).get(command).get("sender").replace("%NICK%", user.getNick());

if (privateCommand || privateMessage) {
target = user.getNick();
Expand Down Expand Up @@ -179,7 +180,7 @@ public void processMessage(PurpleBot ircBot, User user, Channel channel, String
}
plugin.logDebug("GM: \"" + gameCommand.trim() + "\"");
try {
plugin.commandQueue.add(new IRCCommand(new IRCCommandSender(ircBot, target, plugin, ctcpResponse), gameCommand.trim()));
plugin.commandQueue.add(new IRCCommand(new IRCCommandSender(ircBot, target, plugin, ctcpResponse, senderName), gameCommand.trim()));
} catch (Exception ex) {
plugin.logError(ex.getMessage());
}
Expand Down

0 comments on commit 0bd62d9

Please sign in to comment.