From 4cc380a1ff539ec2b6716ec0449bad21b79c2c18 Mon Sep 17 00:00:00 2001
From: jenzur <www.unlozehq@gmail.com>
Date: Fri, 3 Jul 2020 22:50:21 +0200
Subject: [PATCH] completed switch to UDP featuring ingame chat support again

---
 .../src/main/java/DataLayer/DataMapper.java   | 28 ----------------
 .../main/java/FunctionLayer/Datahandler.java  | 32 +++++++++++++++----
 .../PresentationLayer/DiscordHandler.java     | 14 +++-----
 3 files changed, 30 insertions(+), 44 deletions(-)

diff --git a/ArtificialAutism/src/main/java/DataLayer/DataMapper.java b/ArtificialAutism/src/main/java/DataLayer/DataMapper.java
index ecf22d42..b19734f4 100644
--- a/ArtificialAutism/src/main/java/DataLayer/DataMapper.java
+++ b/ArtificialAutism/src/main/java/DataLayer/DataMapper.java
@@ -105,34 +105,6 @@ public class DataMapper {
         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) {
         if (rs != null) {
             try {
diff --git a/ArtificialAutism/src/main/java/FunctionLayer/Datahandler.java b/ArtificialAutism/src/main/java/FunctionLayer/Datahandler.java
index 84a8fc04..3f6e821c 100644
--- a/ArtificialAutism/src/main/java/FunctionLayer/Datahandler.java
+++ b/ArtificialAutism/src/main/java/FunctionLayer/Datahandler.java
@@ -21,7 +21,12 @@ import edu.stanford.nlp.tagger.maxent.MaxentTagger;
 import edu.stanford.nlp.trees.GrammaticalStructureFactory;
 import edu.stanford.nlp.trees.TreebankLanguagePack;
 import java.io.IOException;
+import java.io.UnsupportedEncodingException;
 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.util.AbstractMap;
 import java.util.ArrayList;
@@ -790,15 +795,30 @@ public class Datahandler {
         return stringCache.values().size() - (stringCache.values().size() / 10);
     }
 
-    public void update_autismo_mysql() {
-        String update_string = DataMapper.check_autismo_mysql();
-        if (!update_string.isEmpty()) {
-            try {
-                String getResponseMsg = getResponseMsg(update_string);
-                DataMapper.update_autismo_mysql(getResponseMsg, update_string);
+    public void update_autismo_socket_msg() {
+        try {
+            try (DatagramSocket serverSocket = new DatagramSocket(48477)) {
+                byte[] receiveData = new byte[4096];
+                InetAddress IPAddress = InetAddress.getByName("151.80.230.149");
+                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) {
                 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);
         }
     }
 
diff --git a/ArtificialAutism/src/main/java/PresentationLayer/DiscordHandler.java b/ArtificialAutism/src/main/java/PresentationLayer/DiscordHandler.java
index 87dd4079..51ab633f 100644
--- a/ArtificialAutism/src/main/java/PresentationLayer/DiscordHandler.java
+++ b/ArtificialAutism/src/main/java/PresentationLayer/DiscordHandler.java
@@ -31,17 +31,11 @@ import org.javacord.api.DiscordApiBuilder;
  * @author install1
  */
 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) {
         System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "15");
         try {
             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
             System.out.println("finished initiating MYSQL");
         } catch (SQLException | IOException ex) {
@@ -56,13 +50,13 @@ public class DiscordHandler {
         Datahandler.instance.updateStringCache();
         String token = "NTI5NzAxNTk5NjAyMjc4NDAx.Dw0vDg.7-aMjVWdQMYPl8qVNyvTCPS5F_A";
         DiscordApi api = new DiscordApiBuilder().setToken(token).login().join();
-        Timer timer = new Timer();
-        timer.scheduleAtFixedRate(new update_autismo_ingame_msgs(), 700, 700);
+        new Thread(() -> {
+            Datahandler.instance.update_autismo_socket_msg();
+        }).start();
         api.addMessageCreateListener(event -> {
             if (!FunctionLayer.DoStuff.isOccupied()) {
                 FunctionLayer.DoStuff.doStuff(event, api);
             }
         });
     }
-
 }