projects-jenz/ArtificialAutism/src/main/java/PresentationLayer/DiscordHandler.java

110 lines
4.6 KiB
Java

/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
ps ax | grep EventNotfierDiscordBot-1.0
kill $pid (number)
nohup screen -d -m -S nonroot java -Xmx6048M -jar /home/javatests/ArtificialAutism-1.0.jar
nohup screen -d -m -S nonroot java -Xmx6800M -jar /home/javatests/ArtificialAutism-1.0.jar
screen -ls (number1)
screen -X -S (number1) quit
*/
package PresentationLayer;
import FunctionLayer.CustomError;
import FunctionLayer.Datahandler;
import FunctionLayer.MessageResponseHandler;
import FunctionLayer.PipelineJMWESingleton;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.javacord.api.DiscordApi;
import org.javacord.api.DiscordApiBuilder;
import org.javacord.api.entity.user.User;
/**
*
* @author install1
*/
public class DiscordHandler {
private static String MostRecentMsg = "";
public static void main(String[] args) {
System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "25");
try {
Datahandler.instance.initiateMYSQL();
System.out.println("finished initiating MYSQL");
} catch (SQLException | IOException ex) {
Logger.getLogger(DiscordHandler.class.getName()).log(Level.SEVERE, null, ex);
}
PipelineJMWESingleton.getINSTANCE();
Datahandler.instance.instantiateExecutor();
Datahandler.instance.instantiateAnnotationMapJMWE();
Datahandler.instance.shiftReduceParserInitiate();
Datahandler.instance.instantiateAnnotationMap();
System.out.println("FINISHED ALL ANNOTATIONS");
//Datahandler.instance.addHLstatsMessages();
//Datahandler.instance.updateStringCache();
String token = "NTI5NzAxNTk5NjAyMjc4NDAx.Dw0vDg.7-aMjVWdQMYPl8qVNyvTCPS5F_A";
DiscordApi api = new DiscordApiBuilder().setToken(token).login().join();
api.addMessageCreateListener(event -> {
if (!event.getMessage().getAuthor().isYourself()) {
StringBuilder sb = new StringBuilder();
String strtest = event.getServerTextChannel().get().getCategory().toString();
strtest = strtest.substring(9, strtest.length() - 1);
boolean channelpermissionsDenied = false;
switch (strtest) {
case "Public Area": {
break;
}
case "Information Area": {
break;
}
default: {
channelpermissionsDenied = true;
break;
}
}
if (!channelpermissionsDenied) {
List<User> userlist = event.getMessage().getMentionedUsers();
String strresult = event.getMessage().toString();
if (userlist != null) {
for (User user : userlist) {
strresult = strresult.replace(user.getIdAsString(), "");
}
}
MessageResponseHandler.getMessage(strresult);
}
if (event.getMessage().getMentionedUsers().contains(api.getYourself())
|| event.getServerTextChannel().get().toString().contains("general-autism")) {
String ResponseStr;
try {
String person = event.getMessageAuthor().getName();
ResponseStr = MessageResponseHandler.selectReponseMessage(event.getMessage().toString(), MostRecentMsg, person);
if (!ResponseStr.isEmpty()) {
System.out.print("\nResponseStr3: " + ResponseStr + "\n");
event.getChannel().sendMessage(ResponseStr);
MostRecentMsg = ResponseStr;
}
} catch (CustomError ex) {
Logger.getLogger(DiscordHandler.class.getName()).log(Level.SEVERE, null, ex);
}
}
new Thread(() -> {
try {
Datahandler.instance.checkIfUpdateStrings(false);
} catch (CustomError ex) {
Logger.getLogger(DiscordHandler.class.getName()).log(Level.SEVERE, null, ex);
}
}).start();
}
});
}
}