Adds full telemetry support via 71 and 72.

This commit is contained in:
James Quinley 2022-11-19 11:53:00 -08:00
parent d43bcad257
commit 540e518464

View File

@ -100,6 +100,7 @@ public class delegationServices {
Document Filter;
int ClientID = 0;
Document Lrequest = dCollection.find(eq("status", false)).first();
if ((boolean) Lrequest.get("status") == true) {
@ -182,7 +183,7 @@ public class delegationServices {
System.out.println("Delegation Has Started");
if (requesttype == 0 || requesttype == 1 || requesttype == 2 || requesttype == 3 || requesttype == 4 || requesttype == 5 || requesttype == 6 || requesttype == 7 || requesttype == 8 || requesttype == 9 || requesttype == 10 || requesttype == 11 || requesttype == 12 || requesttype == 14 || requesttype == 20 || requesttype == 21 || requesttype == 41 || requesttype == 18 || requesttype == 47 || requesttype == 48 || requesttype == 54 || requesttype == 57 || requesttype == 61 || requesttype == 63 || requesttype == 65 || requesttype == 66 || requesttype == 67 || requesttype == 68) {
if (requesttype == 0 || requesttype == 1 || requesttype == 2 || requesttype == 3 || requesttype == 4 || requesttype == 5 || requesttype == 6 || requesttype == 7 || requesttype == 8 || requesttype == 9 || requesttype == 10 || requesttype == 11 || requesttype == 12 || requesttype == 14 || requesttype == 20 || requesttype == 21 || requesttype == 41 || requesttype == 18 || requesttype == 47 || requesttype == 48 || requesttype == 54 || requesttype == 57 || requesttype == 61 || requesttype == 63 || requesttype == 65 || requesttype == 66 || requesttype == 67 || requesttype == 68 || requesttype == 71 || requesttype == 72) {
if (requesttype == 47) {
System.out.println("Self Updater download Request");
BasicDBObject searchQuery = new BasicDBObject();
@ -901,9 +902,9 @@ public class delegationServices {
//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");
String CTOKEN = (String) Lrequest.get("Token");
Document accountServer;
int TKN;
String TKN;
String Password;
String Fname;
String Path;
@ -914,12 +915,12 @@ public class delegationServices {
try {
accountServer = accountS.find(eq("Token", CTOKEN)).first();
System.out.println("PollServer");
TKN = (int) accountServer.get("Token");
TKN = (String) accountServer.get("Token");
System.out.println("TokenPulled");
if (accountServer.get("Status").equals(true)) {
if (TKN == CTOKEN) {
if (TKN.equals(CTOKEN)) {
System.out.println("TokenGood");
TKN = (int) accountServer.get("Token");
TKN = (String) accountServer.get("Token");
Password = (String) accountServer.get("Password");
Fname = (String) accountServer.get("FName");
Path = (String) accountServer.get("Path");
@ -1514,6 +1515,86 @@ public class delegationServices {
dCollection.updateOne(searchQuery, updateQuery);
delegationServices.TargetDelete(ClientID);
}
if (requesttype == 71) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("clientid", ClientID);
System.out.println("Collecting Telemetry Data");
File homedir = new File(System.getProperty("user.home"));
String applicationName = Lrequest.get("applicationName").toString();
String telemetryType = Lrequest.get("TelemetryType").toString();
String telemetryDetails = Lrequest.get("TelemetryDetails").toString();
String UUID = Lrequest.get("UUID").toString();
String timeCurrent = LocalDateTime.now().toString(); //ISO-8601: yyyy-MM-ddTHH:mm:ss.S
try {
File myObj = new File(homedir + "/ocs/telemetry/" + applicationName + UUID + timeCurrent + ".txt");
if (myObj.createNewFile()) {
System.out.println("Log File created: " + myObj.getName());
FileWriter writer = new FileWriter(homedir + "/ocs/logs/" + applicationName + UUID + timeCurrent + ".txt", true);
writer.write("This bug report is for: " + applicationName);
writer.write("\r\n");
writer.write("Type of telemetry: " + telemetryType);
writer.write("\r\n");
writer.write("More bug details: " + telemetryDetails);
writer.write("\r\n");
writer.write("This is auto generated by the Obsidian Core backend services");
writer.write("\r\n");
writer.write("Submission Time (Local To Server): " + timeCurrent);
writer.close();
} else {
System.out.println("Log already exists.");
}
} catch (IOException e) {
System.out.println("An error occurred when attempting to log.");
}
BasicDBObject updateQuery = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
delegationServices.TargetDelete(ClientID);
}
if (requesttype == 72) {
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.append("clientid", ClientID);
System.out.println("Collecting Error Data");
File homedir = new File(System.getProperty("user.home"));
String applicationName = Lrequest.get("applicationName").toString();
String telemetryType = Lrequest.get("telemetryType").toString();
String telemetryDetails = Lrequest.get("telemetryDetails").toString();
String telemetryLog = Lrequest.get("telemetryLog").toString();
String UUID = Lrequest.get("UUID").toString();
String timeCurrent = LocalDateTime.now().toString(); //ISO-8601: yyyy-MM-ddTHH:mm:ss.S
try {
File myObj = new File(homedir + "/ocs/logs/" + applicationName + UUID + timeCurrent + ".txt");
if (myObj.createNewFile()) {
System.out.println("Log File created: " + myObj.getName());
FileWriter writer = new FileWriter(homedir + "/ocs/telemetry/" + applicationName + UUID + timeCurrent + ".txt", true);
writer.write("This bug report is for: " + applicationName);
writer.write("\r\n");
writer.write("The telemetry type is: " + telemetryType);
writer.write("\r\n");
writer.write("More telemetry details: " + telemetryDetails);
writer.write("\r\n");
writer.write("This is auto generated by the Obsidian Core backend services");
writer.write("\r\n");
writer.write("Submission Time (Local To Server): " + timeCurrent);
writer.write("\r\n");
writer.write("Full log file:");
writer.write("\r\n");
writer.write(telemetryLog);
writer.close();
} else {
System.out.println("Log already exists.");
}
} catch (IOException e) {
System.out.println("An error occurred while attempting to log.");
}
BasicDBObject updateQuery = new BasicDBObject();
updateQuery.append("$set",
new BasicDBObject().append("status", true));
dCollection.updateOne(searchQuery, updateQuery);
delegationServices.TargetDelete(ClientID);
}
if (requesttype == 68) {
System.out.println("Verifying OTK");
String userKey = (String) Lrequest.get("otk");