mirror of
https://github.com/cnaude/PurpleIRC-spigot.git
synced 2024-12-01 14:33:23 +01:00
Add znc command.
This commit is contained in:
parent
a2f07566af
commit
02dd637ec6
@ -100,6 +100,7 @@ public class CommandHandlers implements CommandExecutor {
|
|||||||
commands.put("voice", new Voice(plugin));
|
commands.put("voice", new Voice(plugin));
|
||||||
commands.put("whois", new Whois(plugin));
|
commands.put("whois", new Whois(plugin));
|
||||||
commands.put("help", new Help(plugin));
|
commands.put("help", new Help(plugin));
|
||||||
|
commands.put("znc", new Znc(plugin));
|
||||||
|
|
||||||
commands.put("test", new Test(plugin));
|
commands.put("test", new Test(plugin));
|
||||||
|
|
||||||
|
89
src/main/java/com/cnaude/purpleirc/Commands/Znc.java
Normal file
89
src/main/java/com/cnaude/purpleirc/Commands/Znc.java
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2014 cnaude
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
package com.cnaude.purpleirc.Commands;
|
||||||
|
|
||||||
|
import com.cnaude.purpleirc.PurpleBot;
|
||||||
|
import com.cnaude.purpleirc.PurpleIRC;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @author Chris Naude
|
||||||
|
*/
|
||||||
|
public class Znc implements IRCCommandInterface {
|
||||||
|
|
||||||
|
private final PurpleIRC plugin;
|
||||||
|
private final String usage = "([bot]) [command] ([arguments])";
|
||||||
|
private final String desc = "Send a private message to an IRC user.";
|
||||||
|
private final String name = "znc";
|
||||||
|
private final String fullUsage = ChatColor.WHITE + "Usage: " + ChatColor.GOLD + "/irc " + name + " " + usage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param plugin the PurpleIRC plugin
|
||||||
|
*/
|
||||||
|
public Znc(PurpleIRC plugin) {
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param sender
|
||||||
|
* @param args
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void dispatch(CommandSender sender, String[] args) {
|
||||||
|
if (args.length >= 2) {
|
||||||
|
plugin.logDebug("Dispatching msg command...");
|
||||||
|
int msgIdx = 1;
|
||||||
|
java.util.List<PurpleBot> myBots = new ArrayList<>();
|
||||||
|
if (plugin.ircBots.containsKey(args[1])) {
|
||||||
|
myBots.add(plugin.ircBots.get(args[1]));
|
||||||
|
msgIdx = 2;
|
||||||
|
} else {
|
||||||
|
myBots.addAll(plugin.ircBots.values());
|
||||||
|
}
|
||||||
|
|
||||||
|
for (PurpleBot ircBot : myBots) {
|
||||||
|
String msg = "";
|
||||||
|
for (int i = msgIdx; i < args.length; i++) {
|
||||||
|
msg = msg + " " + args[i];
|
||||||
|
}
|
||||||
|
ircBot.znc(sender, msg.substring(1));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sender.sendMessage(fullUsage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String name() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String desc() {
|
||||||
|
return desc;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String usage() {
|
||||||
|
return usage;
|
||||||
|
}
|
||||||
|
}
|
@ -200,6 +200,7 @@ public final class PurpleBot {
|
|||||||
private final List<String> tailerFiles;
|
private final List<String> tailerFiles;
|
||||||
private String tailerRecipient;
|
private String tailerRecipient;
|
||||||
private boolean tailerCtcp;
|
private boolean tailerCtcp;
|
||||||
|
private CommandSender zncSender;
|
||||||
/**
|
/**
|
||||||
* Map of player names to IRC nicks.
|
* Map of player names to IRC nicks.
|
||||||
*/
|
*/
|
||||||
@ -273,6 +274,7 @@ public final class PurpleBot {
|
|||||||
this.ircPrivateMsgMap = new CaseInsensitiveMap<>();
|
this.ircPrivateMsgMap = new CaseInsensitiveMap<>();
|
||||||
this.tailers = new ArrayList<>();
|
this.tailers = new ArrayList<>();
|
||||||
this.tailerFiles = new ArrayList<>();
|
this.tailerFiles = new ArrayList<>();
|
||||||
|
this.zncSender = plugin.getServer().getConsoleSender();
|
||||||
config = new YamlConfiguration();
|
config = new YamlConfiguration();
|
||||||
goodBot = loadConfig();
|
goodBot = loadConfig();
|
||||||
if (goodBot) {
|
if (goodBot) {
|
||||||
@ -669,6 +671,24 @@ public final class PurpleBot {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void znc(final CommandSender sender, final String message) {
|
||||||
|
zncSender = sender;
|
||||||
|
plugin.getServer().getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
bot.sendRaw().rawLineNow("znc " + message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void zncResponse(String message) {
|
||||||
|
if (zncSender != null) {
|
||||||
|
zncSender.sendMessage(message);
|
||||||
|
} else {
|
||||||
|
plugin.getServer().getConsoleSender().sendMessage(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void asyncIdentify(final String password) {
|
public void asyncIdentify(final String password) {
|
||||||
if (!this.isConnected()) {
|
if (!this.isConnected()) {
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user