2022-06-19 02:25:21 +02:00
|
|
|
import {PluginInputHandler} from "./index";
|
2016-10-09 21:14:02 +02:00
|
|
|
|
2022-06-19 02:25:21 +02:00
|
|
|
const commands = ["notice"];
|
2016-03-14 05:21:42 +01:00
|
|
|
|
2022-06-19 02:25:21 +02:00
|
|
|
const input: PluginInputHandler = function (network, chan, cmd, args) {
|
2016-03-14 05:21:42 +01:00
|
|
|
if (!args[1]) {
|
2014-09-13 23:29:45 +02:00
|
|
|
return;
|
|
|
|
}
|
2016-01-17 22:18:43 +01:00
|
|
|
|
2019-07-31 23:16:00 +02:00
|
|
|
let targetName = args[0];
|
2018-01-11 12:33:36 +01:00
|
|
|
let message = args.slice(1).join(" ");
|
|
|
|
|
2019-07-31 23:16:00 +02:00
|
|
|
network.irc.notice(targetName, message);
|
2016-01-17 22:18:43 +01:00
|
|
|
|
2023-05-30 22:09:23 +02:00
|
|
|
// If the IRCd does not support echo-message, simulate the message
|
|
|
|
// being sent back to us.
|
2016-04-22 18:38:13 +02:00
|
|
|
if (!network.irc.network.cap.isEnabled("echo-message")) {
|
2019-07-31 23:16:00 +02:00
|
|
|
let targetGroup;
|
|
|
|
const parsedTarget = network.irc.network.extractTargetGroup(targetName);
|
|
|
|
|
|
|
|
if (parsedTarget) {
|
|
|
|
targetName = parsedTarget.target;
|
|
|
|
targetGroup = parsedTarget.target_group;
|
|
|
|
}
|
|
|
|
|
|
|
|
const targetChan = network.getChannel(targetName);
|
|
|
|
|
|
|
|
if (typeof targetChan === "undefined") {
|
|
|
|
message = "{to " + args[0] + "} " + message;
|
|
|
|
}
|
|
|
|
|
2018-01-11 12:33:36 +01:00
|
|
|
network.irc.emit("notice", {
|
|
|
|
nick: network.irc.user.nick,
|
2019-07-31 23:16:00 +02:00
|
|
|
target: targetName,
|
|
|
|
group: targetGroup,
|
2017-11-15 07:35:15 +01:00
|
|
|
message: message,
|
2016-04-22 18:38:13 +02:00
|
|
|
});
|
|
|
|
}
|
2016-03-06 10:24:56 +01:00
|
|
|
|
|
|
|
return true;
|
2014-09-13 23:29:45 +02:00
|
|
|
};
|
2022-06-19 02:25:21 +02:00
|
|
|
|
|
|
|
export default {
|
|
|
|
commands,
|
|
|
|
input,
|
|
|
|
};
|