From b097009fd37f8627001c3fb8955cc969693f741e Mon Sep 17 00:00:00 2001 From: James Quinley Date: Fri, 2 Sep 2022 19:15:01 -0700 Subject: [PATCH] This build adds a killswitch for the 5th, this can be enabled and disabled at will, when enabled it fully blocks login requests from the game, which prevents it's usage. The client will display "Login Failed" due to it being supplied with a fake "Malformed Request" error that is a way to prevent any further attempts. --- .../delegationServices.java | 271 ++++++++++-------- .../DelegationServices/status.java | 1 + 2 files changed, 148 insertions(+), 124 deletions(-) diff --git a/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java b/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java index c0fd2aa..08974af 100644 --- a/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java +++ b/src/main/java/com/jamesquinley/DelegationServices/delegationServices.java @@ -29,6 +29,7 @@ public class delegationServices { static MongoCollection RGFilter; public static void connectionInit (Boolean beta) { + //TODO Send Server Version As Standard. if (beta == true) { scReadconnectionString = new ConnectionString("mongodb+srv://serverClientBeta:Unz6c3I0wjrUVBIf@delegationrequest.qnvfa.mongodb.net/mDelegationRequest?retryWrites=true&w=majority"); @@ -913,136 +914,158 @@ public class delegationServices { } } if (requesttype == 18) { - //TOKEN LOGIN FOR GAME, DOES NOT SEND EMAIL, LAUNCHER WILL NOT USE THIS. - System.out.println("Game Login"); - int CTOKEN = (int) Lrequest.get("Token"); - Document accountServer; - int TKN; - String Password; - String Fname; - String Path; - String UserName; - String Email; - String Uid; - System.out.println("VarInit"); - try { - accountServer = accountS.find(eq("Token", CTOKEN)).first(); - System.out.println("PollServer"); - TKN = (int) accountServer.get("Token"); - System.out.println("TokenPulled"); - if (accountServer.get("Status").equals(true)) { - if (TKN == CTOKEN) { - System.out.println("TokenGood"); - TKN = (int) accountServer.get("Token"); - Password = (String) accountServer.get("Password"); - Fname = (String) accountServer.get("FName"); - Path = (String) accountServer.get("Path"); - Email = (String) accountServer.get("Email"); - // Uid = (String) accountServer.get("Uid"); - UserName = (String) accountServer.get("User"); - System.out.println("GotAccount"); - BasicDBObject searchQuery = new BasicDBObject(); - searchQuery.append("clientid", ClientID); - Filter = RGFilter.find(eq("rgkey", "UAROCKS")).first(); - String apiV = (String) Filter.get("gameAPI"); - String MOTD = (String) Filter.get("motd"); - System.out.println("ApiGrabbed"); + if ((Boolean)Filter.get("gameActive") == true) + { + //Deprecated, a killswitch has been added under rgcon in the field "gameActive" + //TOKEN LOGIN FOR GAME, DOES NOT SEND EMAIL, LAUNCHER WILL NOT USE THIS. + System.out.println("Game Login"); + int CTOKEN = (int) Lrequest.get("Token"); + Document accountServer; + int TKN; + String Password; + String Fname; + String Path; + String UserName; + String Email; + String Uid; + System.out.println("VarInit"); + try { + accountServer = accountS.find(eq("Token", CTOKEN)).first(); + System.out.println("PollServer"); + TKN = (int) accountServer.get("Token"); + System.out.println("TokenPulled"); + if (accountServer.get("Status").equals(true)) { + if (TKN == CTOKEN) { + System.out.println("TokenGood"); + TKN = (int) accountServer.get("Token"); + Password = (String) accountServer.get("Password"); + Fname = (String) accountServer.get("FName"); + Path = (String) accountServer.get("Path"); + Email = (String) accountServer.get("Email"); + // Uid = (String) accountServer.get("Uid"); + UserName = (String) accountServer.get("User"); + System.out.println("GotAccount"); + BasicDBObject searchQuery = new BasicDBObject(); + searchQuery.append("clientid", ClientID); + Filter = RGFilter.find(eq("rgkey", "UAROCKS")).first(); + String apiV = (String) Filter.get("gameAPI"); + String MOTD = (String) Filter.get("motd"); + System.out.println("ApiGrabbed"); - System.out.println("initBasicDBObject"); - BasicDBObject updateQuery = new BasicDBObject(); - BasicDBObject updateQuery2 = new BasicDBObject(); - BasicDBObject updateQuery3 = new BasicDBObject(); - BasicDBObject updateQuery4 = new BasicDBObject(); - BasicDBObject updateQuery5 = new BasicDBObject(); - BasicDBObject updateQuery6 = new BasicDBObject(); - BasicDBObject updateQuery7 = new BasicDBObject(); - BasicDBObject updateQuery8 = new BasicDBObject(); - BasicDBObject updateQuery9 = new BasicDBObject(); - BasicDBObject updateQuery10 = new BasicDBObject(); - // BasicDBObject updateQuery11 = new BasicDBObject(); - updateQuery.append("$set", - new BasicDBObject().append("type", 8)); - updateQuery2.append("$set", - new BasicDBObject().append("Fname", Fname)); - updateQuery3.append("$set", - new BasicDBObject().append("Path", Path)); - updateQuery4.append("$set", - new BasicDBObject().append("User", UserName)); - updateQuery5.append("$set", - new BasicDBObject().append("Password", Password)); - updateQuery7.append("$set", - new BasicDBObject().append("Email", Email)); - updateQuery6.append("$set", - new BasicDBObject().append("status", true)); - updateQuery8.append("$set", - new BasicDBObject().append("Token", TKN)); - updateQuery9.append("$set", - new BasicDBObject().append("api", apiV)); - updateQuery10.append("$set", - new BasicDBObject().append("motd", MOTD)); - System.out.println("Sending Info To Forwarding Server"); - dCollection.updateOne(searchQuery, updateQuery); - dCollection.updateOne(searchQuery, updateQuery10); - dCollection.updateOne(searchQuery, updateQuery2); - dCollection.updateOne(searchQuery, updateQuery3); - dCollection.updateOne(searchQuery, updateQuery4); - dCollection.updateOne(searchQuery, updateQuery5); - dCollection.updateOne(searchQuery, updateQuery8); - dCollection.updateOne(searchQuery, updateQuery7); - dCollection.updateOne(searchQuery, updateQuery9); - dCollection.updateOne(searchQuery, updateQuery6); - //delegationTimer.trigger(); - System.out.println("Pushed"); - delegationTimer.DeleteTargetRequest(ClientID); - } else { - System.out.println("Login Failure"); - BasicDBObject searchQuery = new BasicDBObject(); - searchQuery.append("clientid", ClientID); + System.out.println("initBasicDBObject"); + BasicDBObject updateQuery = new BasicDBObject(); + BasicDBObject updateQuery2 = new BasicDBObject(); + BasicDBObject updateQuery3 = new BasicDBObject(); + BasicDBObject updateQuery4 = new BasicDBObject(); + BasicDBObject updateQuery5 = new BasicDBObject(); + BasicDBObject updateQuery6 = new BasicDBObject(); + BasicDBObject updateQuery7 = new BasicDBObject(); + BasicDBObject updateQuery8 = new BasicDBObject(); + BasicDBObject updateQuery9 = new BasicDBObject(); + BasicDBObject updateQuery10 = new BasicDBObject(); + // BasicDBObject updateQuery11 = new BasicDBObject(); + updateQuery.append("$set", + new BasicDBObject().append("type", 8)); + updateQuery2.append("$set", + new BasicDBObject().append("Fname", Fname)); + updateQuery3.append("$set", + new BasicDBObject().append("Path", Path)); + updateQuery4.append("$set", + new BasicDBObject().append("User", UserName)); + updateQuery5.append("$set", + new BasicDBObject().append("Password", Password)); + updateQuery7.append("$set", + new BasicDBObject().append("Email", Email)); + updateQuery6.append("$set", + new BasicDBObject().append("status", true)); + updateQuery8.append("$set", + new BasicDBObject().append("Token", TKN)); + updateQuery9.append("$set", + new BasicDBObject().append("api", apiV)); + updateQuery10.append("$set", + new BasicDBObject().append("motd", MOTD)); + System.out.println("Sending Info To Forwarding Server"); + dCollection.updateOne(searchQuery, updateQuery); + dCollection.updateOne(searchQuery, updateQuery10); + dCollection.updateOne(searchQuery, updateQuery2); + dCollection.updateOne(searchQuery, updateQuery3); + dCollection.updateOne(searchQuery, updateQuery4); + dCollection.updateOne(searchQuery, updateQuery5); + dCollection.updateOne(searchQuery, updateQuery8); + dCollection.updateOne(searchQuery, updateQuery7); + dCollection.updateOne(searchQuery, updateQuery9); + dCollection.updateOne(searchQuery, updateQuery6); + //delegationTimer.trigger(); + System.out.println("Pushed"); + delegationTimer.DeleteTargetRequest(ClientID); + } else { + System.out.println("Login Failure"); + BasicDBObject searchQuery = new BasicDBObject(); + searchQuery.append("clientid", ClientID); - BasicDBObject updateQuery = new BasicDBObject(); - BasicDBObject updateQuery1 = new BasicDBObject(); - updateQuery.append("$set", - new BasicDBObject().append("type", 9)); - updateQuery1.append("$set", - new BasicDBObject().append("status", true)); - dCollection.updateOne(searchQuery, updateQuery); - dCollection.updateOne(searchQuery, updateQuery1); - //delegationTimer.trigger(); - delegationTimer.DeleteTargetRequest(ClientID); + BasicDBObject updateQuery = new BasicDBObject(); + BasicDBObject updateQuery1 = new BasicDBObject(); + updateQuery.append("$set", + new BasicDBObject().append("type", 9)); + updateQuery1.append("$set", + new BasicDBObject().append("status", true)); + dCollection.updateOne(searchQuery, updateQuery); + dCollection.updateOne(searchQuery, updateQuery1); + //delegationTimer.trigger(); + delegationTimer.DeleteTargetRequest(ClientID); - } - } else { - System.out.println("Banned Account"); - BasicDBObject searchQuery = new BasicDBObject(); - searchQuery.append("clientid", ClientID); + } + } else { + System.out.println("Banned Account"); + BasicDBObject searchQuery = new BasicDBObject(); + searchQuery.append("clientid", ClientID); - BasicDBObject updateQuery = new BasicDBObject(); - BasicDBObject updateQuery1 = new BasicDBObject(); - updateQuery.append("$set", - new BasicDBObject().append("type", 11)); - updateQuery1.append("$set", - new BasicDBObject().append("status", true)); - dCollection.updateOne(searchQuery, updateQuery); - dCollection.updateOne(searchQuery, updateQuery1); - delegationTimer.DeleteTargetRequest(ClientID); - } - } catch (MongoCommandException ERC) { - System.out.println("Mongodb Error " + ERC); - BasicDBObject searchQuery = new BasicDBObject(); - searchQuery.append("clientid", ClientID); + BasicDBObject updateQuery = new BasicDBObject(); + BasicDBObject updateQuery1 = new BasicDBObject(); + updateQuery.append("$set", + new BasicDBObject().append("type", 11)); + updateQuery1.append("$set", + new BasicDBObject().append("status", true)); + dCollection.updateOne(searchQuery, updateQuery); + dCollection.updateOne(searchQuery, updateQuery1); + delegationTimer.DeleteTargetRequest(ClientID); + } + } catch (MongoCommandException ERC) { + System.out.println("Mongodb Error " + ERC); + BasicDBObject searchQuery = new BasicDBObject(); + searchQuery.append("clientid", ClientID); + + BasicDBObject updateQuery = new BasicDBObject(); + BasicDBObject updateQuery1 = new BasicDBObject(); + updateQuery.append("$set", + new BasicDBObject().append("type", 7)); + updateQuery1.append("$set", + new BasicDBObject().append("status", true)); + dCollection.updateOne(searchQuery, updateQuery); + dCollection.updateOne(searchQuery, updateQuery1); + delegationTimer.DeleteTargetRequest(ClientID); + //delegationTimer.trigger(); + } + } + else + { + System.out.println("Login rejected, game client EOS has been reached."); + BasicDBObject searchQuery = new BasicDBObject(); + searchQuery.append("clientid", ClientID); + + BasicDBObject updateQuery = new BasicDBObject(); + BasicDBObject updateQuery1 = new BasicDBObject(); + updateQuery.append("$set", + new BasicDBObject().append("type", 7)); + updateQuery1.append("$set", + new BasicDBObject().append("status", true)); + dCollection.updateOne(searchQuery, updateQuery); + dCollection.updateOne(searchQuery, updateQuery1); + //delegationTimer.trigger(); + delegationTimer.DeleteTargetRequest(ClientID); + } - BasicDBObject updateQuery = new BasicDBObject(); - BasicDBObject updateQuery1 = new BasicDBObject(); - updateQuery.append("$set", - new BasicDBObject().append("type", 7)); - updateQuery1.append("$set", - new BasicDBObject().append("status", true)); - dCollection.updateOne(searchQuery, updateQuery); - dCollection.updateOne(searchQuery, updateQuery1); - delegationTimer.DeleteTargetRequest(ClientID); - //delegationTimer.trigger(); - } } if (requesttype == 10) { System.out.println("Account Creation Request"); diff --git a/src/main/java/com/jamesquinley/DelegationServices/status.java b/src/main/java/com/jamesquinley/DelegationServices/status.java index a3f26d7..8498f76 100644 --- a/src/main/java/com/jamesquinley/DelegationServices/status.java +++ b/src/main/java/com/jamesquinley/DelegationServices/status.java @@ -2,5 +2,6 @@ package com.jamesquinley.DelegationServices; public class status { public static boolean betaServer = false; + public static String serverVersion = "1.1"; //Beta server has been discontinued, the database that the server depended on has been shut down. }