completed switch to UDP featuring ingame chat support again

This commit is contained in:
jenzur 2020-07-03 22:50:21 +02:00
parent 91bb936ebb
commit 4cc380a1ff
3 changed files with 30 additions and 44 deletions

View File

@ -105,34 +105,6 @@ public class DataMapper {
return hlStatsMessages; return hlStatsMessages;
} }
public static String check_autismo_mysql() {
String target = "";
try (Connection l_cCon = DBCPDataSourceAutismo.getConnection()) {
String l_sSQL = "SELECT chatmessage FROM unloze_css_autism_bot.chatting c WHERE c.responsemessage = '' LIMIT 1";
try (PreparedStatement l_pStatement = l_cCon.prepareStatement(l_sSQL)) {
try (ResultSet l_rsSearch = l_pStatement.executeQuery()) {
while (l_rsSearch.next()) {
target = l_rsSearch.getString(1);
}
}
}
} catch (SQLException ex) {
Logger.getLogger(DataMapper.class.getName()).log(Level.SEVERE, null, ex);
}
return target;
}
public static void update_autismo_mysql(String responseMsg, String update_string) {
try (Connection l_cCon = DBCPDataSourceAutismo.getConnection()) {
String l_sSQL = "UPDATE unloze_css_autism_bot.`chatting` SET `responsemessage` = '" + responseMsg + "' WHERE `chatmessage` = '" + update_string + "'";
try (PreparedStatement l_pStatement = l_cCon.prepareStatement(l_sSQL)) {
l_pStatement.execute();
}
} catch (SQLException ex) {
Logger.getLogger(DataMapper.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void CloseConnections(PreparedStatement ps, ResultSet rs, Connection con) { public static void CloseConnections(PreparedStatement ps, ResultSet rs, Connection con) {
if (rs != null) { if (rs != null) {
try { try {

View File

@ -21,7 +21,12 @@ import edu.stanford.nlp.tagger.maxent.MaxentTagger;
import edu.stanford.nlp.trees.GrammaticalStructureFactory; import edu.stanford.nlp.trees.GrammaticalStructureFactory;
import edu.stanford.nlp.trees.TreebankLanguagePack; import edu.stanford.nlp.trees.TreebankLanguagePack;
import java.io.IOException; import java.io.IOException;
import java.io.UnsupportedEncodingException;
import static java.lang.Math.random; import static java.lang.Math.random;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.AbstractMap; import java.util.AbstractMap;
import java.util.ArrayList; import java.util.ArrayList;
@ -790,15 +795,30 @@ public class Datahandler {
return stringCache.values().size() - (stringCache.values().size() / 10); return stringCache.values().size() - (stringCache.values().size() / 10);
} }
public void update_autismo_mysql() { public void update_autismo_socket_msg() {
String update_string = DataMapper.check_autismo_mysql(); try {
if (!update_string.isEmpty()) { try (DatagramSocket serverSocket = new DatagramSocket(48477)) {
try { byte[] receiveData = new byte[4096];
String getResponseMsg = getResponseMsg(update_string); InetAddress IPAddress = InetAddress.getByName("151.80.230.149");
DataMapper.update_autismo_mysql(getResponseMsg, update_string); DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
while (true) {
serverSocket.receive(receivePacket);
String sentence = new String(receivePacket.getData(), 0, receivePacket.getLength());
sentence = sentence.replace("clientmessage:", "");
String getResponseMsg = getResponseMsg(sentence);
byte[] sendData = getResponseMsg.getBytes("UTF-8");
DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 48477);
serverSocket.send(sendPacket);
}
} catch (CustomError ex) { } catch (CustomError ex) {
Logger.getLogger(Datahandler.class.getName()).log(Level.SEVERE, null, ex); Logger.getLogger(Datahandler.class.getName()).log(Level.SEVERE, null, ex);
} }
} catch (SocketException ex) {
Logger.getLogger(Datahandler.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(Datahandler.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Datahandler.class.getName()).log(Level.SEVERE, null, ex);
} }
} }

View File

@ -31,17 +31,11 @@ import org.javacord.api.DiscordApiBuilder;
* @author install1 * @author install1
*/ */
public class DiscordHandler { public class DiscordHandler {
public static class update_autismo_ingame_msgs extends TimerTask {
@Override
public void run() {
Datahandler.instance.update_autismo_mysql();
}
}
public static void main(String[] args) { public static void main(String[] args) {
System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "15"); System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "15");
try { try {
Datahandler.instance.initiateMYSQL(); Datahandler.instance.initiateMYSQL();
//nohup screen -d -m -S nonroot java -Xmx6900M -jar /home/javatests/ArtificialAutism-1.0.jar
//uncomment db fetch when ready, just keep the comment for future reference //uncomment db fetch when ready, just keep the comment for future reference
System.out.println("finished initiating MYSQL"); System.out.println("finished initiating MYSQL");
} catch (SQLException | IOException ex) { } catch (SQLException | IOException ex) {
@ -56,13 +50,13 @@ public class DiscordHandler {
Datahandler.instance.updateStringCache(); Datahandler.instance.updateStringCache();
String token = "NTI5NzAxNTk5NjAyMjc4NDAx.Dw0vDg.7-aMjVWdQMYPl8qVNyvTCPS5F_A"; String token = "NTI5NzAxNTk5NjAyMjc4NDAx.Dw0vDg.7-aMjVWdQMYPl8qVNyvTCPS5F_A";
DiscordApi api = new DiscordApiBuilder().setToken(token).login().join(); DiscordApi api = new DiscordApiBuilder().setToken(token).login().join();
Timer timer = new Timer(); new Thread(() -> {
timer.scheduleAtFixedRate(new update_autismo_ingame_msgs(), 700, 700); Datahandler.instance.update_autismo_socket_msg();
}).start();
api.addMessageCreateListener(event -> { api.addMessageCreateListener(event -> {
if (!FunctionLayer.DoStuff.isOccupied()) { if (!FunctionLayer.DoStuff.isOccupied()) {
FunctionLayer.DoStuff.doStuff(event, api); FunctionLayer.DoStuff.doStuff(event, api);
} }
}); });
} }
} }