Compare commits

...

2 Commits

Author SHA1 Message Date
Dmitry Isaenko c7e2912045 Fix bugs #3 2020-11-02 01:28:08 +03:00
Dmitry Isaenko d6ccf25775 Fix bugs #2 2020-11-01 20:25:03 +03:00
4 changed files with 31 additions and 32 deletions

View File

@ -85,7 +85,7 @@ public class CTCPHelper {
if (notFoundMessage == null)
continue;
System.out.println(serverReplied + " PRIVMSG " + channelOrUser + " :" + notFoundMessage + whoNotFound);
//System.out.println(serverReplied + " PRIVMSG " + channelOrUser + " :" + notFoundMessage + whoNotFound);
StreamProvider.writeToStream(serverReplied, "PRIVMSG " + channelOrUser + " :" + notFoundMessage + whoNotFound);
}
}

View File

@ -12,12 +12,11 @@ public class StreamProvider {
public static synchronized void writeToStream(String server, String message){
try {
if (message.matches("(^.+?\\s)INNA")) {
SystemConsumer.getSystemConsumer(server).add("INNA "+message);
return;
}
srvStreamMap.get(server).write(message+"\n");
srvStreamMap.get(server).flush();
if (message.startsWith("PRIVMSG")) {
SystemConsumer.getSystemConsumer(server).add("INNA "+message);
}
} catch (IOException e){
System.out.println("Internal issue: StreamProvider->writeToStream() caused I/O exception:\n\t"+e.getMessage());
}

View File

@ -66,29 +66,30 @@ public class SystemConsumer implements Runnable{
String data = systemQueue.take();
String[] dataStrings = data.split(" :?",3);
//TODO: handle mode change
switch (dataStrings[1]){
case "PRIVMSG":
if (dataStrings[2].indexOf("\u0001") < dataStrings[2].lastIndexOf("\u0001")) {
String sender = simplifyNick(dataStrings[0]);
String message = dataStrings[2].substring(dataStrings[2].indexOf(":") + 1);
systemCTCP.replyCTCP(sender, message);
if (dataStrings[0].equals("INNA")){
String[] splitter;
if (dataStrings.length > 2){ // Don't touch 'cuz it's important
splitter = dataStrings[2].split(" ", 2);
if (splitter.length == 2){
handleSpecial(dataStrings[1], splitter[0], splitter[1]);
}
else {
commander.receiver(dataStrings[0], dataStrings[2].replaceAll("^.+?:", "").trim());
writerWorker.log(dataStrings[1]+" "+dataStrings[0]+" :", dataStrings[2].replaceAll("^.+?:", "").trim());
}
break;
case "INNA":
String[] splitter;
if (dataStrings.length > 2){ // Don't touch 'cuz it's important
splitter = dataStrings[2].split(" ", 2);
if (splitter.length == 2){
handleSpecial(dataStrings[0], splitter[0], splitter[1]);
}
}
break;
default:
handleNumeric(dataStrings[0], dataStrings[1], dataStrings[2]);
}
continue;
}
if ("PRIVMSG".equals(dataStrings[1])) {
if (dataStrings[2].indexOf("\u0001") < dataStrings[2].lastIndexOf("\u0001")) {
String sender = simplifyNick(dataStrings[0]);
String message = dataStrings[2].substring(dataStrings[2].indexOf(":") + 1);
systemCTCP.replyCTCP(sender, message);
}
else {
commander.receiver(dataStrings[0], dataStrings[2].replaceAll("^.+?:", "").trim());
writerWorker.log(dataStrings[1] + " " + dataStrings[0] + " :", dataStrings[2].replaceAll("^.+?:", "").trim());
}
}
else {
handleNumeric(dataStrings[0], dataStrings[1], dataStrings[2]);
}
}
}
@ -107,8 +108,7 @@ public class SystemConsumer implements Runnable{
IrcChannel ircChannel = channels.get(channelName);
if (ircChannel == null)
return;
String ircFormatterMessage = event+" "+nick+" "+channelName+" "+message;
String ircFormatterMessage = nick+" "+event+" "+channelName+" "+message;
ircChannel.getChannelQueue().add(ircFormatterMessage);
}
//todo: handle nickserv messages somehow
@ -123,7 +123,7 @@ public class SystemConsumer implements Runnable{
+ " [nickname already in use and will be changed]");
break;
case "353":
writerWorker.log("catch/handled:", eventNum+" [RPL_NAMREPLY]");
writerWorker.log("handled:", eventNum+" [RPL_NAMREPLY]");
String channelName = message.substring(nick.length()+3).replaceAll("\\s.*$", "");
IrcChannel ircChannel = channels.get(channelName);
@ -151,7 +151,7 @@ public class SystemConsumer implements Runnable{
Thread newIrcChannelThread = new Thread(consumer);
newIrcChannelThread.start();
channelThreads.add(newIrcChannelThread);
//proxyAList.get(message).add(eventNum+" "+sender+" "+message); // Add message to array linked
newIrcChannel.getChannelQueue().add(sender+" "+eventNum+" "+message);
writerWorker.log("joined channel ", message);
}
break;

View File

@ -87,7 +87,7 @@ public class WorkerSystem{
if (consistent)
logToFile(message);
else
System.out.println(message);
System.out.print(message);
}
private void logToFile(String message){
try {